From 3b6de6ba269a5005f40f310e2dfae683cafe1780 Mon Sep 17 00:00:00 2001 From: Bill Smith Date: Tue, 18 Sep 2018 14:53:37 -0700 Subject: [PATCH 01/13] [SHIBUI-812] Added application.yml which contains default filter attributes as well as a placeholder for new custom attributes. Added CustomAttributesConfiguration and supporting code to allow for reading from the application.yml. Updated ModelRepresentationConversions to support multiple release attributes. Updated unit tests to attempt to fix the negative refresh delay issue. Again. Added spring-boot-configuration-processor to backend build to support @ConfigurationProperties. --- backend/build.gradle | 6 +++- .../admin/ui/ShibbolethUiApplication.java | 1 + .../CoreShibUiConfiguration.java | 7 +++++ .../CustomAttributesConfiguration.java | 26 +++++++++++++++++ .../controller/ConfigurationController.java | 24 ++++++++++++++++ .../util/ModelRepresentationConversions.java | 11 +++----- backend/src/main/resources/application.yml | 28 +++++++++++++++++++ .../admin/ui/util/TestObjectGenerator.groovy | 2 ++ backend/src/test/resources/conf/278.2.xml | 4 ++- backend/src/test/resources/conf/278.xml | 4 ++- backend/src/test/resources/conf/532.xml | 4 ++- 11 files changed, 106 insertions(+), 11 deletions(-) create mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomAttributesConfiguration.java create mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/ConfigurationController.java create mode 100644 backend/src/main/resources/application.yml diff --git a/backend/build.gradle b/backend/build.gradle index 167bd3994..e8ec167ce 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -112,6 +112,10 @@ dependencies { //JSON schema generator testCompile 'com.kjetland:mbknor-jackson-jsonschema_2.12:1.0.29' testCompile 'javax.validation:validation-api:2.0.1.Final' + + //Configuration Annotation Processor + //This could go in the spring boot section above, but I wasn't sure about the compileOnly vs compile + compileOnly "org.springframework.boot:spring-boot-configuration-processor" } def generatedSrcDir = new File(buildDir, 'generated/src/main/java') @@ -217,4 +221,4 @@ docker { noCache true files tasks.bootWar.outputs buildArgs(['JAR_FILE': 'shibui.war']) -} \ No newline at end of file +} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java index 1fc74cf9d..1a55dea6f 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui; +import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomAttributesConfiguration; import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CoreShibUiConfiguration.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CoreShibUiConfiguration.java index c9b6493fa..8e87d9434 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CoreShibUiConfiguration.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CoreShibUiConfiguration.java @@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ResourceBundleMessageSource; @@ -41,6 +42,7 @@ import javax.servlet.http.HttpServletRequest; @Configuration +@EnableConfigurationProperties(CustomAttributesConfiguration.class) public class CoreShibUiConfiguration { private static final Logger logger = LoggerFactory.getLogger(CoreShibUiConfiguration.class); @@ -168,4 +170,9 @@ public DirectoryService directoryService() { public LuceneUtility luceneUtility(DirectoryService directoryService) { return new LuceneUtility(directoryService); } + + @Bean + public CustomAttributesConfiguration customAttributesConfiguration() { + return new CustomAttributesConfiguration(); + } } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomAttributesConfiguration.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomAttributesConfiguration.java new file mode 100644 index 000000000..de15bd815 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomAttributesConfiguration.java @@ -0,0 +1,26 @@ +package edu.internet2.tier.shibboleth.admin.ui.configuration; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * @author Bill Smith (wsmith@unicon.net) + */ +@Configuration +@ConfigurationProperties(prefix="custom") +public class CustomAttributesConfiguration { + + private List> attributes = new ArrayList<>(); + + public List> getAttributes() { + return attributes; + } + + public void setAttributes(List> attributes) { + this.attributes = attributes; + } +} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/ConfigurationController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/ConfigurationController.java new file mode 100644 index 000000000..4a0388428 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/ConfigurationController.java @@ -0,0 +1,24 @@ +package edu.internet2.tier.shibboleth.admin.ui.controller; + +import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomAttributesConfiguration; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @author Bill Smith (wsmith@unicon.net) + */ +@Controller +@RequestMapping(value = "/api") +public class ConfigurationController { + + @Autowired + CustomAttributesConfiguration customAttributesConfiguration; + + @GetMapping(value = "/customAttributes") + public ResponseEntity getCustomAttributes() { + return ResponseEntity.ok(customAttributesConfiguration.getAttributes()); + } +} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/ModelRepresentationConversions.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/ModelRepresentationConversions.java index 27fd92445..e68225b5a 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/ModelRepresentationConversions.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/ModelRepresentationConversions.java @@ -47,14 +47,11 @@ public static List getAttributeReleaseListFromAttributeList(List attribute.getName().equals(MDDCConstants.RELEASE_ATTRIBUTES)) .collect(Collectors.toList()); - if (releaseAttributes.size() != 1) { - // TODO: What do we do if there is more than one? - } - if (releaseAttributes.size() == 0) { - return new ArrayList<>(); - } else { - return getStringListOfAttributeValues(releaseAttributes.get(0).getAttributeValues()); + List attributeValues = new ArrayList<>(); + for (Attribute attribute : releaseAttributes) { + attributeValues.addAll(getStringListOfAttributeValues(attribute.getAttributeValues())); } + return attributeValues; } public static boolean getBooleanValueOfAttribute(Attribute attribute) { diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml new file mode 100644 index 000000000..b7ee1eabd --- /dev/null +++ b/backend/src/main/resources/application.yml @@ -0,0 +1,28 @@ +custom: + attributes: + # Default attributes + - name: eduPersonPrincipalName + displayName: eduPersonPrincipalName (EPPN) + - name: uid + displayName: uid + - name: mail + displayName: mail + - name: surname + displayName: surname + - name: givenName + displayName: givenName + - name: eduPersonAffiliation + displayName: eduPersonAffiliation + - name: eduPersonScopedAffiliation + displayName: eduPersonScopedAffiliation + - name: eduPersonPrimaryAffiliation + displayName: eduPersonPrimaryAffiliation + - name: eduPersonEntitlement + displayName: eduPersonEntitlement + - name: eduPersonAssurance + displayName: eduPersonAssurance + - name: eduPersonUniqueId + displayName: eduPersonUniqueId + - name: employeeNumber + displayName: employeeNumber + # Custom attributes diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy index 13dc8a554..8cace3792 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy @@ -475,6 +475,8 @@ class TestObjectGenerator { it.metadataURL = 'https://idp.unicon.net/idp/shibboleth' it.reloadableMetadataResolverAttributes = new ReloadableMetadataResolverAttributes().with { + it.minRefreshDelay = 'PT0M' + it.maxRefreshDelay = 'P1D' it } it diff --git a/backend/src/test/resources/conf/278.2.xml b/backend/src/test/resources/conf/278.2.xml index 5a34f756b..200e8ab9f 100644 --- a/backend/src/test/resources/conf/278.2.xml +++ b/backend/src/test/resources/conf/278.2.xml @@ -39,7 +39,9 @@ + metadataURL="https://idp.unicon.net/idp/shibboleth" + minRefreshDelay='PT0M' + maxRefreshDelay='P1D'> diff --git a/backend/src/test/resources/conf/278.xml b/backend/src/test/resources/conf/278.xml index a337f72d7..deec8e9bf 100644 --- a/backend/src/test/resources/conf/278.xml +++ b/backend/src/test/resources/conf/278.xml @@ -32,7 +32,9 @@ + metadataURL="https://idp.unicon.net/idp/shibboleth" + minRefreshDelay='PT0M' + maxRefreshDelay='P1D'> diff --git a/backend/src/test/resources/conf/532.xml b/backend/src/test/resources/conf/532.xml index 85fead908..360a4c832 100644 --- a/backend/src/test/resources/conf/532.xml +++ b/backend/src/test/resources/conf/532.xml @@ -8,5 +8,7 @@ + metadataURL="https://idp.unicon.net/idp/shibboleth" + minRefreshDelay='PT0M' + maxRefreshDelay='P1D' /> From 739924a29fdfff35a56708548fbdb7527c2b2754 Mon Sep 17 00:00:00 2001 From: Bill Smith Date: Wed, 19 Sep 2018 11:16:45 -0700 Subject: [PATCH 02/13] [SHIBUI-812] Replaced usage of HashMap in declaration with generic. --- .../ui/configuration/CustomAttributesConfiguration.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomAttributesConfiguration.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomAttributesConfiguration.java index de15bd815..aa12be6b2 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomAttributesConfiguration.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomAttributesConfiguration.java @@ -4,8 +4,8 @@ import org.springframework.context.annotation.Configuration; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author Bill Smith (wsmith@unicon.net) @@ -14,13 +14,13 @@ @ConfigurationProperties(prefix="custom") public class CustomAttributesConfiguration { - private List> attributes = new ArrayList<>(); + private List> attributes = new ArrayList<>(); - public List> getAttributes() { + public List> getAttributes() { return attributes; } - public void setAttributes(List> attributes) { + public void setAttributes(List> attributes) { this.attributes = attributes; } } From b2d9580e981b2f04c033f25debd5d773eb3cdbd7 Mon Sep 17 00:00:00 2001 From: Bill Smith Date: Wed, 19 Sep 2018 11:22:44 -0700 Subject: [PATCH 03/13] [SHIBUI-812] Just a little gradle cleanup. --- backend/build.gradle | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/build.gradle b/backend/build.gradle index e8ec167ce..0eb96b365 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -77,6 +77,9 @@ dependencies { // TODO: figure out what this should really be runtimeOnly 'org.springframework.boot:spring-boot-starter-tomcat' + //Spring Configuration Annotation Processor - makes IntelliJ happy about @ConfigurationProperties + compileOnly "org.springframework.boot:spring-boot-configuration-processor" + // lucene deps ['core', 'analyzers-common', 'queryparser'].each { compile "org.apache.lucene:lucene-${it}:${project.'lucene.version'}" @@ -112,10 +115,6 @@ dependencies { //JSON schema generator testCompile 'com.kjetland:mbknor-jackson-jsonschema_2.12:1.0.29' testCompile 'javax.validation:validation-api:2.0.1.Final' - - //Configuration Annotation Processor - //This could go in the spring boot section above, but I wasn't sure about the compileOnly vs compile - compileOnly "org.springframework.boot:spring-boot-configuration-processor" } def generatedSrcDir = new File(buildDir, 'generated/src/main/java') From 9651c732bfca7c3898792b47b8b37b48a8a7ec17 Mon Sep 17 00:00:00 2001 From: Bill Smith Date: Thu, 20 Sep 2018 10:02:34 -0700 Subject: [PATCH 04/13] [SHIBUI-812] Removed unused import. --- .../tier/shibboleth/admin/ui/ShibbolethUiApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java index 1a55dea6f..1fc74cf9d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java @@ -1,6 +1,5 @@ package edu.internet2.tier.shibboleth.admin.ui; -import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomAttributesConfiguration; import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; From 56bf45c629bd207d931c2cffd6df0ec396b62918 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 24 Sep 2018 08:57:39 -0700 Subject: [PATCH 05/13] SHIBUI-812 Implemented dynamic attribute release list --- ui/src/app/metadata/domain/domain.module.ts | 4 +++- .../domain/service/list-values.service.ts | 24 +++++++------------ .../widget/check/checklist.component.html | 10 ++++---- .../widget/check/checklist.component.ts | 12 ++++++++++ .../filter/entity-attributes.schema.json | 16 +------------ 5 files changed, 29 insertions(+), 37 deletions(-) diff --git a/ui/src/app/metadata/domain/domain.module.ts b/ui/src/app/metadata/domain/domain.module.ts index c51bbb260..43ceee433 100644 --- a/ui/src/app/metadata/domain/domain.module.ts +++ b/ui/src/app/metadata/domain/domain.module.ts @@ -13,6 +13,7 @@ import { MetadataProviderService } from './service/provider.service'; import { EntityEffects } from './effect/entity.effect'; import { PreviewDialogComponent } from './component/preview-dialog.component'; import { MetadataFilterService } from './service/filter.service'; +import { AttributesService } from './service/attributes.service'; export const COMPONENTS = [ PreviewDialogComponent @@ -44,7 +45,8 @@ export class DomainModule { ProviderStatusEmitter, ProviderValueEmitter, MetadataProviderService, - MetadataFilterService + MetadataFilterService, + AttributesService ] }; } diff --git a/ui/src/app/metadata/domain/service/list-values.service.ts b/ui/src/app/metadata/domain/service/list-values.service.ts index 644a2be7b..dff88ea7e 100644 --- a/ui/src/app/metadata/domain/service/list-values.service.ts +++ b/ui/src/app/metadata/domain/service/list-values.service.ts @@ -2,10 +2,14 @@ import { Injectable } from '@angular/core'; import { Observable, of } from 'rxjs'; import { debounceTime, distinctUntilChanged, combineLatest } from 'rxjs/operators'; +import { AttributesService } from './attributes.service'; +import { ReleaseAttribute } from '../model/properties/release-attribute'; @Injectable() export class ListValuesService { - constructor() {} + constructor( + private attributes: AttributesService + ) {} readonly nameIdFormats: Observable = of([ 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified', @@ -20,21 +24,9 @@ export class ListValuesService { 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport' ]); - readonly attributesToRelease: Observable<{ key: string, label: string }[]> = of([ - { key: 'eduPersonPrincipalName', label: 'eduPersonPrincipalName (EPPN)' }, - { key: 'uid', label: 'uid' }, - { key: 'mail', label: 'mail' }, - { key: 'surname', label: 'surname' }, - { key: 'givenName', label: 'givenName' }, - { key: 'displayName', label: 'displayName' }, - { key: 'eduPersonAffiliation', label: 'eduPersonAffiliation' }, - { key: 'eduPersonScopedAffiliation', label: 'eduPersonScopedAffiliation' }, - { key: 'eduPersonPrimaryAffiliation', label: 'eduPersonPrimaryAffiliation' }, - { key: 'eduPersonEntitlement', label: 'eduPersonEntitlement' }, - { key: 'eduPersonAssurance', label: 'eduPersonAssurance' }, - { key: 'eduPersonUniqueId', label: 'eduPersonUniqueId' }, - { key: 'employeeNumber', label: 'employeeNumber' } - ]); + get attributesToRelease(): Observable { + return this.attributes.query(); + } searchStringList = (list: Observable): Function => (text$: Observable) => diff --git a/ui/src/app/schema-form/widget/check/checklist.component.html b/ui/src/app/schema-form/widget/check/checklist.component.html index ec85c8459..9a6a7a71e 100644 --- a/ui/src/app/schema-form/widget/check/checklist.component.html +++ b/ui/src/app/schema-form/widget/check/checklist.component.html @@ -8,8 +8,8 @@ - - {{ attr.label }} + + {{ attr.label | translate }}
@@ -18,13 +18,13 @@ (change)="onCheck(attr.key)" [checked]="checked[attr.key]" id="input-{{ i }}" - [attr.name]="attr.label" - [attr.aria-label]="attr.label" + [attr.name]="attr.label | translate" + [attr.aria-label]="attr.label | translate" role="checkbox" aria-checked="false" />
diff --git a/ui/src/app/schema-form/widget/check/checklist.component.ts b/ui/src/app/schema-form/widget/check/checklist.component.ts index aca5b12b5..16dd3224a 100644 --- a/ui/src/app/schema-form/widget/check/checklist.component.ts +++ b/ui/src/app/schema-form/widget/check/checklist.component.ts @@ -1,6 +1,8 @@ import { Component, AfterViewInit } from '@angular/core'; import { ArrayWidget } from 'ngx-schema-form'; +import { AttributesService } from '../../../metadata/domain/service/attributes.service'; +import { Observable, of } from 'rxjs'; /* istanbul ignore next */ @Component({ @@ -10,6 +12,12 @@ import { ArrayWidget } from 'ngx-schema-form'; export class ChecklistComponent extends ArrayWidget implements AfterViewInit { checked: any = {}; + constructor( + private attributes: AttributesService + ) { + super(); + } + ngAfterViewInit(): void { super.ngAfterViewInit(); this.formProperty.value.forEach(val => this.checked[val] = true); @@ -19,6 +27,10 @@ export class ChecklistComponent extends ArrayWidget implements AfterViewInit { this.formProperty.setValue(Object.keys(this.checked), false); } + get data(): Observable<{ key: string, label: string }[]> { + return this.schema.widget.data ? of(this.schema.widget.data) : this.attributes.query(this.schema.widget.dataUrl); + } + onCheck(value) { if (!this.checked[value]) { this.checked[value] = true; diff --git a/ui/src/assets/schema/filter/entity-attributes.schema.json b/ui/src/assets/schema/filter/entity-attributes.schema.json index e3fdc5bde..307756c63 100644 --- a/ui/src/assets/schema/filter/entity-attributes.schema.json +++ b/ui/src/assets/schema/filter/entity-attributes.schema.json @@ -182,21 +182,7 @@ "description": "Attribute release table - select the attributes you want to release (default unchecked)", "widget": { "id": "checklist", - "data": [ - { "key": "eduPersonPrincipalName", "label": "eduPersonPrincipalName (EPPN)" }, - { "key": "uid", "label": "uid" }, - { "key": "mail", "label": "mail" }, - { "key": "surname", "label": "surname" }, - { "key": "givenName", "label": "givenName" }, - { "key": "displayName", "label": "displayName" }, - { "key": "eduPersonAffiliation", "label": "eduPersonAffiliation" }, - { "key": "eduPersonScopedAffiliation", "label": "eduPersonScopedAffiliation" }, - { "key": "eduPersonPrimaryAffiliation", "label": "eduPersonPrimaryAffiliation" }, - { "key": "eduPersonEntitlement", "label": "eduPersonEntitlement" }, - { "key": "eduPersonAssurance", "label": "eduPersonAssurance" }, - { "key": "eduPersonUniqueId", "label": "eduPersonUniqueId" }, - { "key": "employeeNumber", "label": "employeeNumber" } - ] + "dataUrl": "/customAttributes" }, "items": { "type": "string" From e7c339f55394ad3c183ad0ce79db65c077d0983d Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 24 Sep 2018 09:22:44 -0700 Subject: [PATCH 06/13] SHIBUI-812 Integrated attribute release into backend --- backend/src/main/resources/application.yml | 24 ++++++------ .../resources/i18n/messages_en.properties | 15 +++++++- .../resources/i18n/messages_es.properties | 13 +++++++ .../attribute-release-form.component.html | 6 +-- .../model/properties/release-attribute.ts | 4 ++ .../domain/service/attributes.service.ts | 38 +++++++++++++++++++ 6 files changed, 84 insertions(+), 16 deletions(-) create mode 100644 ui/src/app/metadata/domain/model/properties/release-attribute.ts create mode 100644 ui/src/app/metadata/domain/service/attributes.service.ts diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index b7ee1eabd..563d01073 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -2,27 +2,27 @@ custom: attributes: # Default attributes - name: eduPersonPrincipalName - displayName: eduPersonPrincipalName (EPPN) + displayName: label.attribute-eduPersonPrincipalName - name: uid - displayName: uid + displayName: label.attribute-uid - name: mail - displayName: mail + displayName: label.attribute-mail - name: surname - displayName: surname + displayName: label.attribute-surname - name: givenName - displayName: givenName + displayName: label.attribute-givenName - name: eduPersonAffiliation - displayName: eduPersonAffiliation + displayName: label.attribute-eduPersonAffiliation - name: eduPersonScopedAffiliation - displayName: eduPersonScopedAffiliation + displayName: label.attribute-eduPersonScopedAffiliation - name: eduPersonPrimaryAffiliation - displayName: eduPersonPrimaryAffiliation + displayName: label.attribute-eduPersonPrimaryAffiliation - name: eduPersonEntitlement - displayName: eduPersonEntitlement + displayName: label.attribute-eduPersonEntitlement - name: eduPersonAssurance - displayName: eduPersonAssurance + displayName: label.attribute-eduPersonAssurance - name: eduPersonUniqueId - displayName: eduPersonUniqueId + displayName: label.attribute-eduPersonUniqueId - name: employeeNumber - displayName: employeeNumber + displayName: label.attribute-employeeNumber # Custom attributes diff --git a/backend/src/main/resources/i18n/messages_en.properties b/backend/src/main/resources/i18n/messages_en.properties index 2c6a755ab..607e2a38b 100644 --- a/backend/src/main/resources/i18n/messages_en.properties +++ b/backend/src/main/resources/i18n/messages_en.properties @@ -8,7 +8,7 @@ action.clear=Clear action.delete=Delete action.remove=Remove action.save=Save -action.toggle=Toggle { label } +action.toggle=Toggle action.add-contact=Add Contact action.add-contacts=Add Contacts action.use-mine=Use My Changes @@ -284,6 +284,19 @@ label.retained-roles=Retained Roles label.remove-roleless-entity-descriptors=Remove Roleless Entity Descriptors? label.remove-empty-entities-descriptors=Remove Empty Entities Descriptors? +label.attribute-eduPersonPrincipalName=eduPersonPrincipalName (EPPN) +label.attribute-uid=uid +label.attribute-mail=mail +label.attribute-surname=surname +label.attribute-givenName=givenName +label.attribute-eduPersonAffiliation=eduPersonAffiliation +label.attribute-eduPersonScopedAffiliation=eduPersonScopedAffiliation +label.attribute-eduPersonPrimaryAffiliation=eduPersonPrimaryAffiliation +label.attribute-eduPersonEntitlement=eduPersonEntitlement +label.attribute-eduPersonAssurance=eduPersonAssurance +label.attribute-eduPersonUniqueId=eduPersonUniqueId +label.attribute-employeeNumber=employeeNumber + message.must-be-unique=Must be unique. message.conflict=Conflict diff --git a/backend/src/main/resources/i18n/messages_es.properties b/backend/src/main/resources/i18n/messages_es.properties index f90cad6a4..9fa3c547e 100644 --- a/backend/src/main/resources/i18n/messages_es.properties +++ b/backend/src/main/resources/i18n/messages_es.properties @@ -284,6 +284,19 @@ label.retained-roles=(es) Retained Roles label.remove-roleless-entity-descriptors=(es) Remove Roleless Entity Descriptors? label.remove-empty-entities-descriptors=(es) Remove Empty Entities Descriptors? +label.attribute-eduPersonPrincipalName=(es) eduPersonPrincipalName (EPPN) +label.attribute-uid=(es) uid +label.attribute-mail=(es) mail +label.attribute-surname=(es) surname +label.attribute-givenName=(es) givenName +label.attribute-eduPersonAffiliation=(es) eduPersonAffiliation +label.attribute-eduPersonScopedAffiliation=(es) eduPersonScopedAffiliation +label.attribute-eduPersonPrimaryAffiliation=(es) eduPersonPrimaryAffiliation +label.attribute-eduPersonEntitlement=(es) eduPersonEntitlement +label.attribute-eduPersonAssurance=(es) eduPersonAssurance +label.attribute-eduPersonUniqueId=(es) eduPersonUniqueId +label.attribute-employeeNumber=(es) employeeNumber + message.must-be-unique=(es) Must be unique. message.conflict=(es) Conflict diff --git a/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.html b/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.html index f6e70f5c2..9ee740517 100644 --- a/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.html +++ b/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.html @@ -10,7 +10,7 @@ - {{ attr.label }} + {{ attr.label }}
@@ -19,8 +19,8 @@ (change)="onCheck($event, attr.key)" [checked]="isChecked(attr.key)" id="input-{{ i }}" - [attr.name]="attr.label" - [attr.aria-label]="attr.label" + [attr.name]="attr.label | translate" + [attr.aria-label]="attr.label | translate" role="checkbox" aria-checked="false"/> diff --git a/ui/src/app/metadata/domain/model/properties/release-attribute.ts b/ui/src/app/metadata/domain/model/properties/release-attribute.ts new file mode 100644 index 000000000..7edc37b6a --- /dev/null +++ b/ui/src/app/metadata/domain/model/properties/release-attribute.ts @@ -0,0 +1,4 @@ +export interface ReleaseAttribute { + key: string; + label: string; +} diff --git a/ui/src/app/metadata/domain/service/attributes.service.ts b/ui/src/app/metadata/domain/service/attributes.service.ts new file mode 100644 index 000000000..c6b671e01 --- /dev/null +++ b/ui/src/app/metadata/domain/service/attributes.service.ts @@ -0,0 +1,38 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable, throwError } from 'rxjs'; +import { catchError, shareReplay, map } from 'rxjs/operators'; +import { ReleaseAttribute } from '../model/properties/release-attribute'; + +const CACHE_SIZE = 1; + +@Injectable() +export class AttributesService { + + readonly endpoint = '/customAttributes'; + readonly base = '/api'; + + private cache$: Observable; + + constructor( + private http: HttpClient + ) { } + + query(path: string = this.endpoint): Observable { + if (!this.cache$) { + this.cache$ = this.requestAttributes(path).pipe( + shareReplay(CACHE_SIZE) + ); + } + + return this.cache$; + } + + requestAttributes(path: string): Observable { + return this.http.get(`${this.base}${path}`, {}) + .pipe( + map(attrs => attrs.map((attr: any) => ({ key: attr.name, label: attr.displayName }))), + catchError(err => throwError([])) + ); + } +} From 6b425dece8e2ab9d031e147c53e6b8b7c0c0d46b Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 24 Sep 2018 09:54:46 -0700 Subject: [PATCH 07/13] SHIBUI-812 Fixed tests --- .../attribute-release-form.component.spec.ts | 3 +- .../descriptor-info-form.component.spec.ts | 3 +- .../forms/finish-form.component.spec.ts | 3 +- .../forms/key-info-form.component.spec.ts | 3 +- .../forms/logout-form.component.spec.ts | 3 +- .../forms/metadata-ui-form.component.spec.ts | 3 +- .../organization-info-form.component.spec.ts | 3 +- .../relying-party-form.component.spec.ts | 3 +- .../domain/service/attributes.service.spec.ts | 0 .../service/list-values.service.spec.ts | 3 ++ ui/src/testing/attributes.stub.ts | 16 +++++++ ui/src/testing/list-values.stub.ts | 47 +++++++++++++++++++ 12 files changed, 82 insertions(+), 8 deletions(-) create mode 100644 ui/src/app/metadata/domain/service/attributes.service.spec.ts create mode 100644 ui/src/testing/attributes.stub.ts create mode 100644 ui/src/testing/list-values.stub.ts diff --git a/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.spec.ts index 2c67eae1c..c05e6bad3 100644 --- a/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.spec.ts @@ -8,6 +8,7 @@ import { AttributeReleaseFormComponent } from './attribute-release-form.componen import { ListValuesService } from '../../../domain/service/list-values.service'; import * as stubs from '../../../../../testing/resolver.stub'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; describe('Attribute Release Form Component', () => { let fixture: ComponentFixture; @@ -19,7 +20,7 @@ describe('Attribute Release Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, diff --git a/ui/src/app/metadata/domain/component/forms/descriptor-info-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/descriptor-info-form.component.spec.ts index 7527f5e3c..d902432fd 100644 --- a/ui/src/app/metadata/domain/component/forms/descriptor-info-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/descriptor-info-form.component.spec.ts @@ -11,6 +11,7 @@ import { DescriptorInfoFormComponent } from './descriptor-info-form.component'; import * as stubs from '../../../../../testing/resolver.stub'; import { SharedModule } from '../../../../shared/shared.module'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -48,7 +49,7 @@ describe('Descriptor Info Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, diff --git a/ui/src/app/metadata/domain/component/forms/finish-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/finish-form.component.spec.ts index 0d3ea08a4..882590b2b 100644 --- a/ui/src/app/metadata/domain/component/forms/finish-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/finish-form.component.spec.ts @@ -14,6 +14,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -42,7 +43,7 @@ describe('Finished Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService, + { provide: ListValuesService, useClass: MockListValueService }, { provide: Router, useClass: RouterStub }, { provide: ActivatedRoute, useClass: ActivatedRouteStub } ], diff --git a/ui/src/app/metadata/domain/component/forms/key-info-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/key-info-form.component.spec.ts index fd6ccd5db..0b6751cc3 100644 --- a/ui/src/app/metadata/domain/component/forms/key-info-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/key-info-form.component.spec.ts @@ -11,6 +11,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -43,7 +44,7 @@ describe('Security (Key) Info Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, diff --git a/ui/src/app/metadata/domain/component/forms/logout-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/logout-form.component.spec.ts index 83f1fafe4..89d8b9b09 100644 --- a/ui/src/app/metadata/domain/component/forms/logout-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/logout-form.component.spec.ts @@ -12,6 +12,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -41,7 +42,7 @@ describe('Logout Endpoints Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, diff --git a/ui/src/app/metadata/domain/component/forms/metadata-ui-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/metadata-ui-form.component.spec.ts index b74dc94db..3c86d3b13 100644 --- a/ui/src/app/metadata/domain/component/forms/metadata-ui-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/metadata-ui-form.component.spec.ts @@ -11,6 +11,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -39,7 +40,7 @@ describe('Metadata UI Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, diff --git a/ui/src/app/metadata/domain/component/forms/organization-info-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/organization-info-form.component.spec.ts index 57708fbad..e5a4d30e4 100644 --- a/ui/src/app/metadata/domain/component/forms/organization-info-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/organization-info-form.component.spec.ts @@ -7,6 +7,7 @@ import { ListValuesService } from '../../../domain/service/list-values.service'; import { OrganizationInfoFormComponent } from './organization-info-form.component'; import * as stubs from '../../../../../testing/resolver.stub'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; describe('Organization Info Form Component', () => { let fixture: ComponentFixture; @@ -18,7 +19,7 @@ describe('Organization Info Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, diff --git a/ui/src/app/metadata/domain/component/forms/relying-party-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/relying-party-form.component.spec.ts index 0849591c6..274bbc3e0 100644 --- a/ui/src/app/metadata/domain/component/forms/relying-party-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/relying-party-form.component.spec.ts @@ -10,6 +10,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { SharedModule } from '../../../../shared/shared.module'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ @@ -48,7 +49,7 @@ describe('Relying Party Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, diff --git a/ui/src/app/metadata/domain/service/attributes.service.spec.ts b/ui/src/app/metadata/domain/service/attributes.service.spec.ts new file mode 100644 index 000000000..e69de29bb diff --git a/ui/src/app/metadata/domain/service/list-values.service.spec.ts b/ui/src/app/metadata/domain/service/list-values.service.spec.ts index e90c51a76..2c26ba912 100644 --- a/ui/src/app/metadata/domain/service/list-values.service.spec.ts +++ b/ui/src/app/metadata/domain/service/list-values.service.spec.ts @@ -2,6 +2,8 @@ import { TestBed, async, inject } from '@angular/core/testing'; import { EntityValidators } from './entity-validators.service'; import { Observable, of } from 'rxjs'; import { ListValuesService } from './list-values.service'; +import { AttributesService } from './attributes.service'; +import { MockAttributeService } from '../../../../testing/attributes.stub'; describe(`ListValuesService`, () => { let service: ListValuesService; @@ -9,6 +11,7 @@ describe(`ListValuesService`, () => { TestBed.configureTestingModule({ imports: [], providers: [ + { provide: AttributesService, useClass: MockAttributeService }, ListValuesService ] }); diff --git a/ui/src/testing/attributes.stub.ts b/ui/src/testing/attributes.stub.ts new file mode 100644 index 000000000..200bf8ade --- /dev/null +++ b/ui/src/testing/attributes.stub.ts @@ -0,0 +1,16 @@ +import { Observable, of } from 'rxjs'; +import { Injectable } from '@angular/core'; +import { ReleaseAttribute } from '../app/metadata/domain/model/properties/release-attribute'; + +@Injectable() +export class MockAttributeService { + + readonly path = '/customAttributes'; + readonly base = '/api'; + + constructor() { } + + query(path: string = this.path): Observable { + return of([]); + } +} diff --git a/ui/src/testing/list-values.stub.ts b/ui/src/testing/list-values.stub.ts new file mode 100644 index 000000000..3e9ecf152 --- /dev/null +++ b/ui/src/testing/list-values.stub.ts @@ -0,0 +1,47 @@ +import { Observable, of } from 'rxjs'; +import { Injectable } from '@angular/core'; +import { ReleaseAttribute } from '../app/metadata/domain/model/properties/release-attribute'; +import { debounceTime, distinctUntilChanged, combineLatest } from 'rxjs/operators'; + +@Injectable() +export class MockListValueService { + + constructor() { } + + readonly nameIdFormats: Observable = of([ + 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified', + 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress', + 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', + 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient' + ]); + + readonly authenticationMethods: Observable = of([ + 'https://refeds.org/profile/mfa', + 'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken', + 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport' + ]); + + get attributesToRelease(): Observable { + return of([]); + } + + searchStringList = (list: Observable): Function => + (text$: Observable) => + text$.pipe( + debounceTime(100), + distinctUntilChanged(), + combineLatest( + list, + (term, formats) => formats.filter( + v => v.toLowerCase().match(term.toLowerCase()) + ) + .slice(0, 4)) + ) + + get searchFormats(): Function { + return this.searchStringList(this.nameIdFormats); + } + get searchAuthenticationMethods(): Function { + return this.searchStringList(this.authenticationMethods); + } +} From cfe5669c3ed489aeac2b0887c4849aa624950349 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 24 Sep 2018 12:22:07 -0700 Subject: [PATCH 08/13] SHIBUI-814 Removed LOCALE_ID --- ui/package.json | 3 - ui/src/app/app.module.ts | 3 +- ui/src/locale/en.xlf | 2256 -------------------------------------- ui/src/locale/es.xlf | 2148 ------------------------------------ 4 files changed, 1 insertion(+), 4409 deletions(-) delete mode 100644 ui/src/locale/en.xlf delete mode 100644 ui/src/locale/es.xlf diff --git a/ui/package.json b/ui/package.json index 7865053ba..d89f39898 100644 --- a/ui/package.json +++ b/ui/package.json @@ -5,9 +5,6 @@ "scripts": { "ng": "ng", "start": "ng serve --proxy-config proxy.conf.json", - "start:en": "ng serve --proxy-config proxy.conf.json --i18nFile=./src/locale/en.xlf --i18nFormat=xlf --locale=en --aot", - "start:es": "ng serve --proxy-config proxy.conf.json --i18nFile=./src/locale/es.xlf --i18nFormat=xlf --locale=es --aot", - "start:prod": "ng serve --proxy-config proxy.conf.json --i18nFile=./src/locale/en.xlf --i18nFormat=xlf --locale=en --aot --environment=prod", "build": "ng build", "test": "ng test --code-coverage", "lint": "ng lint", diff --git a/ui/src/app/app.module.ts b/ui/src/app/app.module.ts index 4448e7f37..6d54d350a 100644 --- a/ui/src/app/app.module.ts +++ b/ui/src/app/app.module.ts @@ -1,5 +1,5 @@ import { BrowserModule } from '@angular/platform-browser'; -import { NgModule, LOCALE_ID } from '@angular/core'; +import { NgModule } from '@angular/core'; import { StoreModule } from '@ngrx/store'; import { EffectsModule } from '@ngrx/effects'; import { StoreDevtoolsModule } from '@ngrx/store-devtools'; @@ -58,7 +58,6 @@ import { I18nModule } from './i18n/i18n.module'; AppRoutingModule ], providers: [ - { provide: LOCALE_ID, useValue: getCurrentLocale(null) }, NavigatorService, { provide: RouterStateSerializer, useClass: CustomRouterStateSerializer }, { diff --git a/ui/src/locale/en.xlf b/ui/src/locale/en.xlf deleted file mode 100644 index 85b0d0d86..000000000 --- a/ui/src/locale/en.xlf +++ /dev/null @@ -1,2256 +0,0 @@ - - - - - - Metadata Source Management - Metadata Source Management - - app/app.component.ts - 7 - - - - Manage Sources - Manage Sources - - app/app.component.ts - 17 - - - - Add New - Add New - - app/app.component.ts - 23 - - - - Metadata Source - Metadata Source - - app/app.component.ts - 40 - - - - Filter - Filter - - app/app.component.ts - 32 - - - - New Filter - New Filter - - app/metadata-filter/container/new-filter.component.ts - 8 - - - - Logout - Logout - - app/app.component.ts - 29 - - - - Links to Shibboleth resources: - Links to Shibboleth resources: - - app/app.component.ts - 42 - - - - Home Page - Home Page - - app/app.component.ts - 43 - - - - Wiki - Wiki - - app/app.component.ts - 44 - - - - Issue Tracker - Issue Tracker - - app/app.component.ts - 45 - - - - Mailing List - Mailing List - - app/app.component.ts - 46 - - - - Copyright - Copyright - - app/app.component.ts - 48 - - - - Service Provider Name (Dashboard Display Only) - Service Provider Name (Dashboard Display Only) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 7 - - - app/metadata-provider/component/forms/finish-form.component.ts - 29 - - - app/metadata-provider/container/upload-provider.component.ts - 24 - - - app/metadata-provider/container/blank-provider.component.ts - 22 - - - - Service Provider Name (Dashboard Display Only) popover - Service Provider Name (Dashboard Display Only) popover - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 10 - - - - Service Provider Entity ID - Service Provider Entity ID - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 21 - - - app/metadata-provider/component/forms/finish-form.component.ts - 31 - - - app/metadata-provider/container/blank-provider.component.ts - 34 - - - - Service Provider Entity ID popover - Service Provider Entity ID popover - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 24 - - - - Enable this service? - Enable this service? - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 36 - - - app/metadata-provider/component/forms/finish-form.component.ts - 33 - - - - Organization Name - Organization Name - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 43 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 43 - - - - Organization Name popover - Organization Name popover - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 46 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 8 - - - - Organization Display Name - Organization Display Name - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 54 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 24 - - - app/metadata-provider/component/forms/finish-form.component.ts - 45 - - - - Organization Display Name popover - Organization Display Name popover - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 57 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 27 - - - - * These three fields must all be entered if any single field has a value. - * These three fields must all be entered if any single field has a value. - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 74 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 60 - - - - Organization URL - Organization URL - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 65 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 43 - - - app/metadata-provider/component/forms/finish-form.component.ts - 47 - - - - Organization URL popover - Organization URL popover - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 68 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 46 - - - - Contact Information: - Contact Information: - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 78 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 65 - - - app/metadata-provider/component/forms/finish-form.component.ts - 49 - - - - Add Contact - Add Contact - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 79 - - - - Name - Name - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 102 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 93 - - - - Name popover - Name popover - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 103 - - - - Type - Type - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 112 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 111 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 120 - - - app/metadata-provider/component/forms/finish-form.component.ts - 155 - - - - Type popover - Type popover - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 113 - - - - Email Address - Email Address - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 128 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 135 - - - - Email Address popover - Email Address popover - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 129 - - - - Must be a valid Email Address - Must be a valid Email Address - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 134 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 149 - - - - Add Contact - Add Contact - - app/metadata-provider/component/forms/organization-info-form.component.ts - 66 - - - - Contact Name Popover - Contact Name Popover - - app/metadata-provider/component/forms/organization-info-form.component.ts - 94 - - - - Contact Type Popover - Contact Type Popover - - app/metadata-provider/component/forms/organization-info-form.component.ts - 112 - - - - Contact Email Popover - Contact Email Popover - - app/metadata-provider/component/forms/organization-info-form.component.ts - 136 - - - - Display Name - Display Name - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 77 - - - - Typically, the IdP Display Name field will be presented on IdP discovery service interfaces. - Typically, the IdP Display Name field will be presented on IdP discovery service interfaces. - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 7 - - - - Information URL - Information URL - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 22 - - - app/metadata-provider/component/forms/finish-form.component.ts - 79 - - - - The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field. - The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field. - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 23 - - - - Description - Description - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 39 - - - app/metadata-provider/component/forms/finish-form.component.ts - 81 - - - - The IdP Description is a brief description of the IdP service. On a well-designed discovery interface, the IdP Description will be presented to the user in addition to the IdP Display Name, and so the IdP Description helps disambiguate duplicate or similar IdP Display Names. - The IdP Description is a brief description of the IdP service. On a well-designed discovery interface, the IdP Description will be presented to the user in addition to the IdP Display Name, and so the IdP Description helps disambiguate duplicate or similar IdP Display Names. - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 40 - - - - Privacy Statement URL - Privacy Statement URL - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 67 - - - - The IdP Privacy Statement URL is a link to the IdP's Privacy Statement. The content of the Privacy Statement should be targeted at end users. - The IdP Privacy Statement URL is a link to the IdP's Privacy Statement. The content of the Privacy Statement should be targeted at end users. - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 68 - - - - Logo URL - Logo URL - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 84 - - - app/metadata-provider/component/forms/finish-form.component.ts - 85 - - - - The IdP Logo URL in metadata points to an image file on a remote server. A discovery service, for example, may rely on a visual cue (i.e., a logo) instead of or in addition to the IdP Display Name. - The IdP Logo URL in metadata points to an image file on a remote server. A discovery service, for example, may rely on a visual cue (i.e., a logo) instead of or in addition to the IdP Display Name. - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 85 - - - - Logo Width - Logo Width - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 103 - - - app/metadata-provider/component/forms/finish-form.component.ts - 87 - - - - The logo should have a minimum width of 100 pixels - The logo should have a minimum width of 100 pixels - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 104 - - - - Must be an integer equal to or greater than 0 - Must be an integer equal to or greater than 0 - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 108 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 127 - - - - Logo Height - Logo Height - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 114 - - - app/metadata-provider/component/forms/finish-form.component.ts - 89 - - - - The logo should have a minimum height of 75 pixels and a maximum height of 150 pixels (or the application will scale it proportionally) - The logo should have a minimum height of 75 pixels and a maximum height of 150 pixels (or the application will scale it proportionally) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 115 - - - - Is there a X509 Certificate? - Is there a X509 Certificate? - - app/metadata-provider/component/forms/key-info-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 141 - - - - Is there a X509 Certificate popover - Is there a X509 Certificate popover - - app/metadata-provider/component/forms/key-info-form.component.ts - 7 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 34 - - - - Yes - Yes - - app/metadata-provider/component/forms/key-info-form.component.ts - 21 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 48 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 75 - - - app/metadata-provider/component/forms/assertion-form.component.ts - 94 - - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 8 - - - - No - No - - app/metadata-provider/component/forms/key-info-form.component.ts - 27 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 54 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 81 - - - - Authentication Requests Signed? - Authentication Requests Signed? - - app/metadata-provider/component/forms/key-info-form.component.ts - 33 - - - app/metadata-provider/component/forms/finish-form.component.ts - 143 - - - - Want Assertions Signed? - Want Assertions Signed? - - app/metadata-provider/component/forms/key-info-form.component.ts - 60 - - - app/metadata-provider/component/forms/finish-form.component.ts - 145 - - - - Want Assertions Signed - Want Assertions Signed - - app/metadata-provider/component/forms/key-info-form.component.ts - 61 - - - - X509 Certificates: - X509 Certificates: - - app/metadata-provider/component/forms/key-info-form.component.ts - 88 - - - app/metadata-provider/component/forms/finish-form.component.ts - 142 - - - app/metadata-provider/component/forms/finish-form.component.ts - 146 - - - - Add Certificate - Add Certificate - - app/metadata-provider/component/forms/key-info-form.component.ts - 89 - - - - Certificate Name (Display Only) - Certificate Name (Display Only) - - app/metadata-provider/component/forms/key-info-form.component.ts - 114 - - - app/metadata-provider/component/forms/finish-form.component.ts - 154 - - - - Certificate - Certificate - - app/metadata-provider/component/forms/key-info-form.component.ts - 129 - - - app/metadata-provider/component/forms/finish-form.component.ts - 156 - - - - Assertion Consumer Service Endpoints: - Assertion Consumer Service Endpoints: - - app/metadata-provider/component/forms/assertion-form.component.ts - 5 - - - app/metadata-provider/component/forms/finish-form.component.ts - 176 - - - - Add Endpoint - Add Endpoint - - app/metadata-provider/component/forms/assertion-form.component.ts - 6 - - - app/metadata-provider/component/forms/logout-form.component.ts - 6 - - - - (default) - (default) - - app/metadata-provider/component/forms/assertion-form.component.ts - 20 - - - - Assertion Consumer Service Location - Assertion Consumer Service Location - - app/metadata-provider/component/forms/assertion-form.component.ts - 32 - - - - Assertion Consumer Service Location popover - Assertion Consumer Service Location popover - - app/metadata-provider/component/forms/assertion-form.component.ts - 33 - - - - Must be a valid URL - Must be a valid URL - - app/metadata-provider/component/forms/assertion-form.component.ts - 46 - - - - Assertion Consumer Service Location Binding - Assertion Consumer Service Location Binding - - app/metadata-provider/component/forms/assertion-form.component.ts - 53 - - - app/metadata-provider/component/forms/finish-form.component.ts - 184 - - - - Assertion Consumer Service Location Binding - Assertion Consumer Service Location Binding - - app/metadata-provider/component/forms/assertion-form.component.ts - 54 - - - - Select Binding Type - Select Binding Type - - app/metadata-provider/component/forms/assertion-form.component.ts - 66 - - - app/metadata-provider/component/forms/logout-form.component.ts - 59 - - - - Mark as Default - Mark as Default - - app/metadata-provider/component/forms/assertion-form.component.ts - 76 - - - - Mark as Default - Mark as Default - - app/metadata-provider/component/forms/assertion-form.component.ts - 77 - - - - URL - URL - - app/metadata-provider/component/forms/logout-form.component.ts - 30 - - - - Logout Endpoints Url popover - Logout Endpoints Url popover - - app/metadata-provider/component/forms/logout-form.component.ts - 31 - - - - Binding Type - Binding Type - - app/metadata-provider/component/forms/logout-form.component.ts - 47 - - - app/metadata-provider/component/forms/finish-form.component.ts - 122 - - - - Logout Endpoints Binding Type popover - Logout Endpoints Binding Type popover - - app/metadata-provider/component/forms/logout-form.component.ts - 48 - - - - Protocol Support Enumeration - Protocol Support Enumeration - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 99 - - - - Protocol Support Enumeration popover - Protocol Support Enumeration popover - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 7 - - - - Select Protocol - Select Protocol - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 19 - - - - Add NameID Format - Add NameID Format - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 24 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 35 - - - - Sign the Assertion - Sign the Assertion - - app/metadata-provider/component/forms/relying-party-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 204 - - - - Don't Sign the Response - Don't Sign the Response - - app/metadata-provider/component/forms/relying-party-form.component.ts - 13 - - - app/metadata-provider/component/forms/finish-form.component.ts - 206 - - - - Turn Off Encryption of Response - Turn Off Encryption of Response - - app/metadata-provider/component/forms/relying-party-form.component.ts - 20 - - - app/metadata-provider/component/forms/finish-form.component.ts - 208 - - - - Use SHA1 Signing Algorithm - Use SHA1 Signing Algorithm - - app/metadata-provider/component/forms/relying-party-form.component.ts - 27 - - - app/metadata-provider/component/forms/finish-form.component.ts - 210 - - - - NameID Format to Send - NameID Format to Send - - app/metadata-provider/component/forms/relying-party-form.component.ts - 34 - - - app/metadata-provider/component/forms/finish-form.component.ts - 212 - - - - Authentication Methods to Use - Authentication Methods to Use - - app/metadata-provider/component/forms/relying-party-form.component.ts - 52 - - - - Add Authentication Method - Add Authentication Method - - app/metadata-provider/component/forms/relying-party-form.component.ts - 53 - - - - Ignore any SP-Requested Authentication Method - Ignore any SP-Requested Authentication Method - - app/metadata-provider/component/forms/relying-party-form.component.ts - 70 - - - app/metadata-provider/component/forms/finish-form.component.ts - 230 - - - - Omit Not Before Condition - Omit Not Before Condition - - app/metadata-provider/component/forms/relying-party-form.component.ts - 77 - - - app/metadata-provider/component/forms/finish-form.component.ts - 232 - - - - ResponderID - ResponderID - - app/metadata-provider/component/forms/relying-party-form.component.ts - 83 - - - app/metadata-provider/component/forms/finish-form.component.ts - 234 - - - - Attribute Name - Attribute Name - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 7 - - - app/metadata-provider/component/forms/finish-form.component.ts - 246 - - - - Enable this service upon saving? - Enable this service upon saving? - - app/metadata-provider/component/forms/finish-form.component.ts - 9 - - - - Enable this service upon saving popover - Enable this service upon saving popover - - app/metadata-provider/component/forms/finish-form.component.ts - 11 - - - - Name and Entity ID - Name and Entity ID - - app/metadata-provider/component/forms/finish-form.component.ts - 26 - - - - Organization Information - Organization Information - - app/metadata-provider/component/forms/finish-form.component.ts - 40 - - - app/metadata-provider/container/blank-provider.component.ts - 11 - - - - Given Name - Given Name - - app/metadata-provider/component/forms/finish-form.component.ts - 55 - - - - Email Address - Email Address - - app/metadata-provider/component/forms/finish-form.component.ts - 56 - - - - Contact Type - Contact Type - - app/metadata-provider/component/forms/finish-form.component.ts - 57 - - label--contact-type - - - User Interface / MDUI Information - User Interface / MDUI Information - - app/metadata-provider/component/forms/finish-form.component.ts - 74 - - - - Privacy Statement URL - Privacy Statement URL - - app/metadata-provider/component/forms/finish-form.component.ts - 83 - - - - SP SSO Descriptor Information - SP SSO Descriptor Information - - app/metadata-provider/component/forms/finish-form.component.ts - 96 - - - - NameID Format - NameID Format - - app/metadata-provider/component/forms/finish-form.component.ts - 101 - - - - Security Information - Security Information - - app/metadata-provider/component/forms/finish-form.component.ts - 138 - - - - Assertion Consumer Service Location - Assertion Consumer Service Location - - app/metadata-provider/component/forms/finish-form.component.ts - 183 - - - - Default Authentication Method(s) - Default Authentication Method(s) - - app/metadata-provider/component/forms/finish-form.component.ts - 221 - - - - True - True - - app/metadata-provider/component/forms/finish-form.component.ts - 247 - - - - False - False - - app/metadata-provider/component/forms/finish-form.component.ts - 248 - - - - Add a new metadata source - Add a new metadata source - - app/metadata-provider/container/new-provider.component.ts - 6 - - - - How are you adding the metadata information? - How are you adding the metadata information? - - app/metadata-provider/container/new-provider.component.ts - 11 - - - - Upload/URL - Upload/URL - - app/metadata-provider/container/new-provider.component.ts - 16 - - - - Create File - Create File - - app/metadata-provider/container/new-provider.component.ts - 25 - - - - 1. Name and Upload Url - 1. Name and Upload Url - - app/metadata-provider/container/upload-provider.component.ts - 6 - - - - - Save Metadata Source - - - Save Metadata Source - - - app/metadata-provider/container/upload-provider.component.ts - 11 - - - app/edit-provider/component/wizard-nav.component.ts - 33 - - - - Save - Save - - app/metadata-provider/container/upload-provider.component.ts - 16 - - - app/edit-provider/container/editor.component.ts - 39 - - - app/edit-provider/component/wizard-nav.component.ts - 36 - - - - - Service Provider Name is required - - - Service Provider Name is required - - - app/metadata-provider/container/upload-provider.component.ts - 31 - - - app/metadata-provider/container/blank-provider.component.ts - 28 - - - - Select Provider Metadata File - Select Provider Metadata File - - app/metadata-provider/container/upload-provider.component.ts - 37 - - - - Note: You can only import a file with a single entityID (EntityDescriptor element) in it. Anything more in that file will result in an error. - Note: You can only import a file with a single entityID (EntityDescriptor element) in it. Anything more in that file will result in an error. - - app/metadata-provider/container/upload-provider.component.ts - 56 - - - - Choose File - Choose File - - app/metadata-provider/container/upload-provider.component.ts - 41 - - - app/metadata-provider/container/upload-provider.component.ts - 42 - - - - OR - OR - - app/metadata-provider/container/upload-provider.component.ts - 48 - - - - Service Provider Metadata URL - Service Provider Metadata URL - - app/metadata-provider/container/upload-provider.component.ts - 52 - - - - 1. Name and EntityId - 1. Name and EntityId - - app/metadata-provider/container/blank-provider.component.ts - 6 - - - - Next - Next - - app/metadata-provider/container/blank-provider.component.ts - 14 - - - app/metadata-provider/container/blank-provider.component.ts - 48 - - - app/edit-provider/component/wizard-nav.component.ts - 27 - - - - Entity ID is required - Entity ID is required - - app/metadata-provider/container/blank-provider.component.ts - 40 - - - - Entity ID must be unique - Entity ID must be unique - - app/metadata-provider/container/blank-provider.component.ts - 44 - - - - Preview Provider - Preview Provider - - app/metadata-provider/component/preview-provider-dialog.component.ts - 2 - - - - Download File - Download File - - app/metadata-provider/component/preview-provider-dialog.component.ts - 13 - - - - Cancel - Cancel - - app/metadata-provider/component/preview-provider-dialog.component.ts - 15 - - - app/dashboard/component/delete-dialog.component.ts - 9 - - - app/edit-provider/component/unsaved-dialog.component.ts - 18 - - - app/edit-provider/container/editor.component.ts - 43 - - - - Delete Metadata Source? - Delete Metadata Source? - - app/dashboard/component/delete-dialog.component.ts - 2 - - - - You are deleting a metadata source. This cannot be undone. Continue? - You are deleting a metadata source. This cannot be undone. Continue? - - app/dashboard/component/delete-dialog.component.ts - 5 - - - - Delete - Delete - - app/dashboard/component/delete-dialog.component.ts - 8 - - - - Current Metadata Sources - Current Metadata Sources - - app/dashboard/container/dashboard.component.ts - 6 - - - - Incomplete Form - Incomplete Form - - app/dashboard/component/provider-item.component.ts - 14 - - - app/dashboard/component/provider-item.component.ts - 52 - - - - Name: - Name: - - app/dashboard/component/provider-item.component.ts - 33 - - - - Entity ID: - Entity ID: - - app/dashboard/component/provider-item.component.ts - 40 - - - - Status: - Status: - - app/dashboard/component/provider-item.component.ts - 42 - - - - {VAR_SELECT, select, filter {Filter} provider {Service Provider} other {} } - {VAR_SELECT, select, filter {Filter} provider {Service Provider} other {} } - - - - - - app/dashboard/container/dashboard.component.ts - 19 - - - - {VAR_SELECT, select, filter {Show Filters} provider {Show Sources} other {Show All} } - {VAR_SELECT, select, filter {Show Filter} provider {Show Sources} other {Show All} } - - - - - - app/dashboard/container/dashboard.component.ts - 14 - - - - {VAR_SELECT, select, filter {Show Filters} provider {Show Sources} other {Show All} } - {VAR_SELECT, select, filter {Show Filter} provider {Show Sources} other {Show All} } - - - Created Date: - Created Date: - - app/dashboard/component/provider-item.component.ts - 35 - - - - Enabled - Enabled - - app/dashboard/component/provider-item.component.ts - 48 - - - - Disabled - Disabled - - app/dashboard/component/provider-item.component.ts - 49 - - - - Search sources - Search sources - - app/dashboard/component/provider-search.component.ts - 8 - - - - Clear - Clear - - app/dashboard/component/provider-search.component.ts - 19 - - - - Save your information? - Save your information? - - app/edit-provider/component/unsaved-dialog.component.ts - 3 - - - - - You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the - "Edit" - icon on the dashboard. - - - You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the - "Edit" - icon on the dashboard. - - - app/edit-provider/component/unsaved-dialog.component.ts - 6 - - - - You have not saved your changes. If you exit this screen, your changes will be lost. - You have not saved your changes. If you exit this screen, your changes will be lost. - - app/edit-provider/component/unsaved-dialog.component.ts - 11 - - - - Finish Later - Finish Later - - app/edit-provider/component/unsaved-dialog.component.ts - 15 - - - - Discard Changes - Discard Changes - - app/edit-provider/component/unsaved-dialog.component.ts - 16 - - - - Add a new metadata source - Add a new metadata source - - app/edit-provider/container/wizard.component.ts - 8 - - - - Step of - Step of - - app/edit-provider/container/wizard.component.ts - 11 - - - - Back - Back - - app/edit-provider/component/wizard-nav.component.ts - 7 - - - - Information icon - press spacebar to read additional information for this form field - Information icon - press spacebar to read additional information for this form field - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 13 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 30 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 55 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 69 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 83 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 122 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 134 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 153 - - - app/metadata-provider/component/forms/assertion-form.component.ts - 36 - - - app/metadata-provider/component/forms/assertion-form.component.ts - 52 - - - app/metadata-provider/component/forms/assertion-form.component.ts - 71 - - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 10 - - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 28 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 10 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 32 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 54 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 106 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 120 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 138 - - - app/metadata-provider/component/forms/logout-form.component.ts - 34 - - - app/metadata-provider/component/forms/logout-form.component.ts - 46 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 10 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 21 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 33 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 56 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 68 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 81 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 96 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 11 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 25 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 39 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 81 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 94 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 113 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 13 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 25 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 37 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 49 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 61 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 86 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 111 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 123 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 132 - - - app/metadata-provider/component/forms/finish-form.component.ts - 14 - - - - Add NameID Format Popover - Add NameID Format Popover - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 25 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 58 - - - - Sign Assertion popover - Sign Assertion popover - - app/metadata-provider/component/forms/relying-party-form.component.ts - 10 - - - - Don't Sign Response popover - Don't Sign Response popover - - app/metadata-provider/component/forms/relying-party-form.component.ts - 22 - - - - Turn Off Encryption of Response popover - Turn Off Encryption of Response popover - - app/metadata-provider/component/forms/relying-party-form.component.ts - 34 - - - - Use SHA1 Signing Algorithm popover - Use SHA1 Signing Algorithm popover - - app/metadata-provider/component/forms/relying-party-form.component.ts - 46 - - - - Authentication Methods to Use popover - Authentication Methods to Use popover - - app/metadata-provider/component/forms/relying-party-form.component.ts - 83 - - - - Ignore any SP-Requested Authentication Method popover - Ignore any SP-Requested Authentication Method popover - - app/metadata-provider/component/forms/relying-party-form.component.ts - 108 - - - - Omit Not Before Condition popover - Omit Not Before Condition popover - - app/metadata-provider/component/forms/relying-party-form.component.ts - 120 - - - - ResponderId popover - ResponderId popover - - app/metadata-provider/component/forms/relying-party-form.component.ts - 129 - - - - Certificate Name Popover - Certificate Name Popover - - app/metadata-provider/component/forms/key-info-form.component.ts - 103 - - - - Certificate Type Popover - Certificate Type Popover - - app/metadata-provider/component/forms/key-info-form.component.ts - 117 - - - - Certificate Popover - Certificate Popover - - app/metadata-provider/component/forms/key-info-form.component.ts - 135 - - - - * These three fields must all be entered if any single field has a value. - * These three fields must all be entered if any single field has a value. - - app/metadata-provider/component/forms/organization-info-form.component.ts - 45 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 89 - - - - ResponderID - ResponderID - - app/metadata-provider/component/forms/relying-party-form.component.ts - 128 - - - - User Interface / MDUI Information - User Interface / MDUI Information - - app/metadata-provider/component/i18n-text-info.component.ts - 3 - - - - SP SSO Descriptor Information - SP SSO Descriptor Information - - app/metadata-provider/component/i18n-text-info.component.ts - 4 - - - - Logout Endpoints - Logout Endpoints - - app/metadata-provider/component/i18n-text-info.component.ts - 5 - - - app/metadata-provider/component/forms/logout-form.component.ts - 5 - - - app/metadata-provider/component/forms/finish-form.component.ts - 115 - - - app/metadata-provider/component/forms/finish-form.component.ts - 121 - - - - Security Information - Security Information - - app/metadata-provider/component/i18n-text-info.component.ts - 6 - - - - Assertion Consumer Service - Assertion Consumer Service - - app/metadata-provider/component/i18n-text-info.component.ts - 7 - - - app/metadata-provider/component/forms/finish-form.component.ts - 173 - - - - Relying Party Overrides - Relying Party Overrides - - app/metadata-provider/component/i18n-text-info.component.ts - 8 - - - app/metadata-provider/component/forms/finish-form.component.ts - 201 - - - - Attribute Release - Attribute Release - - app/metadata-provider/component/i18n-text-info.component.ts - 9 - - - app/metadata-provider/component/forms/finish-form.component.ts - 241 - - - - SP/Organization Information - SP/Organization Information - - app/metadata-provider/component/i18n-text-info.component.ts - 10 - - - - Organization Information - Organization Information - - app/metadata-provider/component/i18n-text-info.component.ts - 11 - - - app/metadata-provider/container/blank-provider.component.ts - 13 - - - - Finished! - Finished! - - app/metadata-provider/component/i18n-text-info.component.ts - 12 - - - - New Endpoint - New Endpoint - - app/metadata-provider/component/forms/assertion-form.component.ts - 17 - - - app/metadata-provider/component/forms/logout-form.component.ts - 17 - - - - New Certificate - New Certificate - - app/metadata-provider/component/forms/key-info-form.component.ts - 107 - - - - Authentication Method - Authentication Method - - app/metadata-provider/component/forms/finish-form.component.ts - 108 - - - - NameID Format - NameID Format - - app/metadata-provider/component/forms/finish-form.component.ts - 76 - - - - Search - Search - - app/dashboard/component/provider-search.component.ts - 3 - - - - Signing - Signing - - app/metadata-provider/component/i18n-text-info.component.ts - 15 - - - - Encryption - Encryption - - app/metadata-provider/component/i18n-text-info.component.ts - 16 - - - - Both - Both - - app/metadata-provider/component/i18n-text-info.component.ts - 17 - - - - All forms must be valid before changes can be saved! - All forms must be valid before changes can be saved! - - app/edit-provider/container/editor.component.ts - 60 - - - - Filter Name - Filter Name - - app/metadata-filter/container/new-filter.component.ts - 22 - - - - (Dashboard Display Only) - (Dashboard Display Only) - - app/metadata-filter/container/new-filter.component.ts - 24 - - - - Filter Name - Filter Name - - app/metadata-filter/container/new-filter.component.ts - 30 - - - - Search Entity ID - Search Entity ID - - app/metadata-filter/container/new-filter.component.ts - 46 - - - - Search Entity ID - Search Entity ID - - app/metadata-filter/container/new-filter.component.ts - 51 - - - - Save Changes - Save Changes - - app/metadata-filter/container/new-filter.component.ts - 79 - - - - Select ID - Select ID - - app/metadata-filter/component/search-dialog.component.ts - 35 - - - - Entity ID not found - Entity ID not found - - app/metadata-filter/component/filter-form.component.ts - 63 - - - - Entity Preview (read-only) - Entity Preview (read-only) - - app/metadata-filter/component/filter-form.component.ts - 93 - - - - Minimum 4 characters. - Minimum 4 characters. - - app/metadata-filter/container/new-filter.component.ts - 93 - - - - Entity Preview - Entity Preview - - app/metadata-filter/component/filter-form.component.ts - 99 - - - - Enable this filter? - Enable this filter? - - app/metadata-filter/component/filter-form.component.ts - 123 - - - - Enable this filter upon saving popover - Enable this filter upon saving popover - - app/metadata-filter/component/filter-form.component.ts - 126 - - - - Preview Filter XML - Preview Filter XML - - app/metadata-filter/component/preview-filter.component.ts - 3 - - - - Check All Attributes - Check All Attributes - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 32 - - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 36 - - - - Clear All Attributes - Clear All Attributes - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 41 - - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 45 - - - - Select Contact Type - Select Contact Type - - app/metadata-provider/component/forms/organization-info-form.component.ts - 124 - - - - Copy - Copy - - app/metadata-provider/container/new-provider.component.ts - 51 - - - - FINISH AND VALIDATE - FINISH AND VALIDATE - - app/metadata-provider/container/copy-provider.component.ts - 13 - - - - Select the Entity ID to copy - Select the Entity ID to copy - - app/metadata-provider/container/copy-provider.component.ts - 25 - - - app/metadata-provider/container/copy-provider.component.ts - 34 - - - - Metadata Source Name (Dashboard Display Only) - Metadata Source Name (Dashboard Display Only) - - app/metadata-provider/container/copy-provider.component.ts - 45 - - - - Add a new metadata source - Finish Summary - Add a new metadata source - Finish Summary - - app/metadata-provider/container/confirm-copy.component.ts - 6 - - - - Edit Filter - - Edit Filter - - - app/metadata-provider/container/edit-filter.component.ts - 8 - - - - Minimum 4 characters. - Minimum 4 characters. - - app/metadata-filter/container/edit-filter.component.ts - 8 - - - - Create - Create - - app/metadata-provider/container/new-provider.component.ts - 8 - - - - Filter Name is required - Filter Name is required - - app/metadata-filter/container/edit-filter.component.ts - 8 - - - - - diff --git a/ui/src/locale/es.xlf b/ui/src/locale/es.xlf deleted file mode 100644 index 1ef053f10..000000000 --- a/ui/src/locale/es.xlf +++ /dev/null @@ -1,2148 +0,0 @@ - - - - - - Metadata Source Management - Metadata Source Management (es) - - app/app.component.ts - 7 - - - - Manage Sources - Manage Sources (es) - - app/app.component.ts - 17 - - - - Add New - Add New (es) - - app/app.component.ts - 23 - - - - Metadata Source - Metadata Source (es) - - app/app.component.ts - 40 - - - - Filter - Filter (es) - - app/app.component.ts - 32 - - - - New Filter - New Filter (es) - - app/metadata-filter/container/new-filter.component.ts - 8 - - - - Logout - Logout (es) - - app/app.component.ts - 29 - - - - Links to Shibboleth resources: - Links to Shibboleth resources: (es) - - app/app.component.ts - 42 - - - - Home Page - Home Page (es) - - app/app.component.ts - 43 - - - - Wiki - Wiki (es) - - app/app.component.ts - 44 - - - - Issue Tracker - Issue Tracker (es) - - app/app.component.ts - 45 - - - - Mailing List - Mailing List (es) - - app/app.component.ts - 46 - - - - Copyright - Copyright (es) - - app/app.component.ts - 48 - - - - Service Provider Name (Dashboard Display Only) - Service Provider Name (Dashboard Display Only) (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 7 - - - app/metadata-provider/component/forms/finish-form.component.ts - 29 - - - app/metadata-provider/container/upload-provider.component.ts - 24 - - - app/metadata-provider/container/blank-provider.component.ts - 22 - - - - Service Provider Name (Dashboard Display Only) popover - Service Provider Name (Dashboard Display Only) popover (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 10 - - - - Service Provider Entity ID - Service Provider Entity ID (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 21 - - - app/metadata-provider/component/forms/finish-form.component.ts - 31 - - - app/metadata-provider/container/blank-provider.component.ts - 34 - - - - Service Provider Entity ID popover - Service Provider Entity ID popover (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 24 - - - - Enable this service? - Enable this service? (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 36 - - - app/metadata-provider/component/forms/finish-form.component.ts - 33 - - - - Organization Name - Organization Name (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 43 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 43 - - - - Organization Name popover - Organization Name popover (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 46 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 8 - - - - Organization Display Name - Organization Display Name (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 54 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 24 - - - app/metadata-provider/component/forms/finish-form.component.ts - 45 - - - - Organization Display Name popover - Organization Display Name popover (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 57 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 27 - - - - * These three fields must all be entered if any single field has a value. - * These three fields must all be entered if any single field has a value. (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 74 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 60 - - - - Organization URL - Organization URL (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 65 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 43 - - - app/metadata-provider/component/forms/finish-form.component.ts - 47 - - - - Organization URL popover - Organization URL popover (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 68 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 46 - - - - Contact Information: - Contact Information: (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 78 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 65 - - - app/metadata-provider/component/forms/finish-form.component.ts - 49 - - - - Add Contact - Add Contact (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 79 - - - - Name - Name (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 102 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 93 - - - - Name popover - Name popover (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 103 - - - - Type - Type (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 112 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 111 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 120 - - - app/metadata-provider/component/forms/finish-form.component.ts - 155 - - - - Type popover - Type popover (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 113 - - - - Email Address - Email Address (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 128 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 135 - - - - Email Address popover - Email Address popover (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 129 - - - - Must be a valid Email Address - Must be a valid Email Address (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 134 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 149 - - - - Add Contact - Add Contact (es) - - app/metadata-provider/component/forms/organization-info-form.component.ts - 66 - - - - Contact Name Popover - Contact Name Popover (es) - - app/metadata-provider/component/forms/organization-info-form.component.ts - 94 - - - - Contact Type Popover - Contact Type Popover (es) - - app/metadata-provider/component/forms/organization-info-form.component.ts - 112 - - - - Contact Email Popover - Contact Email Popover (es) - - app/metadata-provider/component/forms/organization-info-form.component.ts - 136 - - - - Display Name - Display Name (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 77 - - - - Typically, the IdP Display Name field will be presented on IdP discovery service interfaces. - Typically, the IdP Display Name field will be presented on IdP discovery service interfaces. (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 7 - - - - Information URL - Information URL (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 22 - - - app/metadata-provider/component/forms/finish-form.component.ts - 79 - - - - The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field. - The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field. (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 23 - - - - Description - Description (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 39 - - - app/metadata-provider/component/forms/finish-form.component.ts - 81 - - - - The IdP Description is a brief description of the IdP service. On a well-designed discovery interface, the IdP Description will be presented to the user in addition to the IdP Display Name, and so the IdP Description helps disambiguate duplicate or similar IdP Display Names. - The IdP Description is a brief description of the IdP service. On a well-designed discovery interface, the IdP Description will be presented to the user in addition to the IdP Display Name, and so the IdP Description helps disambiguate duplicate or similar IdP Display Names. (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 40 - - - - Privacy Statement URL - Privacy Statement URL (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 67 - - - - The IdP Privacy Statement URL is a link to the IdP's Privacy Statement. The content of the Privacy Statement should be targeted at end users. - The IdP Privacy Statement URL is a link to the IdP's Privacy Statement. The content of the Privacy Statement should be targeted at end users. (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 68 - - - - Logo URL - Logo URL (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 84 - - - app/metadata-provider/component/forms/finish-form.component.ts - 85 - - - - The IdP Logo URL in metadata points to an image file on a remote server. A discovery service, for example, may rely on a visual cue (i.e., a logo) instead of or in addition to the IdP Display Name. - The IdP Logo URL in metadata points to an image file on a remote server. A discovery service, for example, may rely on a visual cue (i.e., a logo) instead of or in addition to the IdP Display Name. (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 85 - - - - Logo Width - Logo Width (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 103 - - - app/metadata-provider/component/forms/finish-form.component.ts - 87 - - - - The logo should have a minimum width of 100 pixels - The logo should have a minimum width of 100 pixels (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 104 - - - - Must be an integer equal to or greater than 0 - Must be an integer equal to or greater than 0 (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 108 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 127 - - - - Logo Height - Logo Height (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 114 - - - app/metadata-provider/component/forms/finish-form.component.ts - 89 - - - - The logo should have a minimum height of 75 pixels and a maximum height of 150 pixels (or the application will scale it proportionally) - The logo should have a minimum height of 75 pixels and a maximum height of 150 pixels (or the application will scale it proportionally) (es) - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 115 - - - - Is there a X509 Certificate? - Is there a X509 Certificate? (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 141 - - - - Is there a X509 Certificate popover - Is there a X509 Certificate popover (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 7 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 34 - - - - Yes - Yes (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 21 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 48 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 75 - - - app/metadata-provider/component/forms/assertion-form.component.ts - 94 - - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 8 - - - - No - No (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 27 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 54 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 81 - - - - Authentication Requests Signed? - Authentication Requests Signed? (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 33 - - - app/metadata-provider/component/forms/finish-form.component.ts - 143 - - - - Want Assertions Signed? - Want Assertions Signed? (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 60 - - - app/metadata-provider/component/forms/finish-form.component.ts - 145 - - - - Want Assertions Signed - Want Assertions Signed (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 61 - - - - X509 Certificates - X509 Certificates (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 88 - - - app/metadata-provider/component/forms/finish-form.component.ts - 142 - - - app/metadata-provider/component/forms/finish-form.component.ts - 146 - - - - Add Certificate - Add Certificate (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 89 - - - - Certificate Name (Display Only) - Certificate Name (Display Only) (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 114 - - - app/metadata-provider/component/forms/finish-form.component.ts - 154 - - - - Certificate - Certificate (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 129 - - - app/metadata-provider/component/forms/finish-form.component.ts - 156 - - - - Assertion Consumer Service Endpoints: - Assertion Consumer Service Endpoints: (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 5 - - - app/metadata-provider/component/forms/finish-form.component.ts - 176 - - - - Add Endpoint - Add Endpoint (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 6 - - - app/metadata-provider/component/forms/logout-form.component.ts - 6 - - - - (default) - (default) (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 20 - - - - Assertion Consumer Service Location - Assertion Consumer Service Location (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 32 - - - - Assertion Consumer Service Location popover - Assertion Consumer Service Location popover (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 33 - - - - Must be a valid URL - Must be a valid URL (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 46 - - - - Assertion Consumer Service Location Binding - Assertion Consumer Service Location Binding (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 53 - - - app/metadata-provider/component/forms/finish-form.component.ts - 184 - - - - Assertion Consumer Service Location Binding - Assertion Consumer Service Location Binding (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 54 - - - - Select Binding Type - Select Binding Type (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 66 - - - app/metadata-provider/component/forms/logout-form.component.ts - 59 - - - - Mark as Default - Mark as Default (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 76 - - - - Mark as Default - Mark as Default (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 77 - - - - URL - URL (es) - - app/metadata-provider/component/forms/logout-form.component.ts - 30 - - - - Logout Endpoints Url popover - Logout Endpoints Url popover (es) - - app/metadata-provider/component/forms/logout-form.component.ts - 31 - - - - Binding Type - Binding Type (es) - - app/metadata-provider/component/forms/logout-form.component.ts - 47 - - - app/metadata-provider/component/forms/finish-form.component.ts - 122 - - - - Logout Endpoints Binding Type popover - Logout Endpoints Binding Type popover (es) - - app/metadata-provider/component/forms/logout-form.component.ts - 48 - - - - Protocol Support Enumeration - Protocol Support Enumeration (es) - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 99 - - - - Protocol Support Enumeration popover - Protocol Support Enumeration popover (es) - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 7 - - - - Select Protocol - Select Protocol (es) - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 19 - - - - Add NameID Format - Add NameID Format (es) - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 24 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 35 - - - - Sign the Assertion - Sign the Assertion (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 6 - - - app/metadata-provider/component/forms/finish-form.component.ts - 204 - - - - Don't Sign the Response - Don't Sign the Response (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 13 - - - app/metadata-provider/component/forms/finish-form.component.ts - 206 - - - - Turn Off Encryption of Response - Turn Off Encryption of Response (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 20 - - - app/metadata-provider/component/forms/finish-form.component.ts - 208 - - - - Use SHA1 Signing Algorithm - Use SHA1 Signing Algorithm (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 27 - - - app/metadata-provider/component/forms/finish-form.component.ts - 210 - - - - NameID Format to Send - NameID Format to Send (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 34 - - - app/metadata-provider/component/forms/finish-form.component.ts - 212 - - - - Authentication Methods to Use - Authentication Methods to Use (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 52 - - - - Add Authentication Method - Add Authentication Method (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 53 - - - - Ignore any SP-Requested Authentication Method - Ignore any SP-Requested Authentication Method (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 70 - - - app/metadata-provider/component/forms/finish-form.component.ts - 230 - - - - Omit Not Before Condition - Omit Not Before Condition (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 77 - - - app/metadata-provider/component/forms/finish-form.component.ts - 232 - - - - ResponderID - ResponderID (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 83 - - - app/metadata-provider/component/forms/finish-form.component.ts - 234 - - - - Attribute Name - Attribute Name (es) - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 7 - - - app/metadata-provider/component/forms/finish-form.component.ts - 246 - - - - Enable this service upon saving? - Enable this service upon saving? (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 9 - - - - Enable this service upon saving popover - Enable this service upon saving popover (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 11 - - - - Name and Entity ID - Name and Entity ID (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 26 - - - - Organization Information - Organization Information (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 40 - - - app/metadata-provider/container/blank-provider.component.ts - 11 - - - - Given Name - Given Name (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 55 - - - - Email Address - Email Address (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 56 - - - - Contact Type - Contact Type (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 57 - - label--contact-type - - - User Interface / MDUI Information - User Interface / MDUI Information (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 74 - - - - Privacy Statement URL - Privacy Statement URL (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 83 - - - - SP SSO Descriptor Information - SP SSO Descriptor Information (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 96 - - - - NameID Format - NameID Format (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 101 - - - - Security Information - Security Information (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 138 - - - - Assertion Consumer Service Location - Assertion Consumer Service Location (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 183 - - - - Default Authentication Method(s) - Default Authentication Method(s) (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 221 - - - - True - True (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 247 - - - - False - False (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 248 - - - - Add a new metadata source - Add a new metadata source (es) - - app/metadata-provider/container/new-provider.component.ts - 6 - - - - How are you adding the metadata information? - How are you adding the metadata information? (es) - - app/metadata-provider/container/new-provider.component.ts - 11 - - - - Upload/URL - Upload/URL (es) - - app/metadata-provider/container/new-provider.component.ts - 16 - - - - Create File - Create File (es) - - app/metadata-provider/container/new-provider.component.ts - 25 - - - - 1. Name and Upload Url - 1. Name and Upload Url (es) - - app/metadata-provider/container/upload-provider.component.ts - 6 - - - - - Save Metadata Source - - - Save Metadata Source - (es) - - app/metadata-provider/container/upload-provider.component.ts - 11 - - - app/edit-provider/component/wizard-nav.component.ts - 33 - - - - Save - Save (es) - - app/metadata-provider/container/upload-provider.component.ts - 16 - - - app/edit-provider/container/editor.component.ts - 39 - - - app/edit-provider/component/wizard-nav.component.ts - 36 - - - - - Service Provider Name is required - - - Service Provider Name is required - (es) - - app/metadata-provider/container/upload-provider.component.ts - 31 - - - app/metadata-provider/container/blank-provider.component.ts - 28 - - - - Select Provider Metadata File - Select Provider Metadata File (es) - - app/metadata-provider/container/upload-provider.component.ts - 37 - - - - Note: You can only import a file with a single entityID (EntityDescriptor element) in it. Anything more in that file will result in an error. - Note: You can only import a file with a single entityID (EntityDescriptor element) in it. Anything more in that file will result in an error. (es) - - app/metadata-provider/container/upload-provider.component.ts - 56 - - - - Choose File - Choose File (es) - - app/metadata-provider/container/upload-provider.component.ts - 41 - - - app/metadata-provider/container/upload-provider.component.ts - 42 - - - - OR - OR (es) - - app/metadata-provider/container/upload-provider.component.ts - 48 - - - - Service Provider Metadata URL - Service Provider Metadata URL (es) - - app/metadata-provider/container/upload-provider.component.ts - 52 - - - - 1. Name and EntityId - 1. Name and EntityId (es) - - app/metadata-provider/container/blank-provider.component.ts - 6 - - - - Next - Next (es) - - app/metadata-provider/container/blank-provider.component.ts - 14 - - - app/metadata-provider/container/blank-provider.component.ts - 48 - - - app/edit-provider/component/wizard-nav.component.ts - 27 - - - - Entity ID is required - Entity ID is required (es) - - app/metadata-provider/container/blank-provider.component.ts - 40 - - - - Entity ID must be unique - Entity ID must be unique (es) - - app/metadata-provider/container/blank-provider.component.ts - 44 - - - - Preview Provider - Preview Provider (es) - - app/metadata-provider/component/preview-provider-dialog.component.ts - 2 - - - - Download File - Download File (es) - - app/metadata-provider/component/preview-provider-dialog.component.ts - 13 - - - - Cancel - Cancel (es) - - app/metadata-provider/component/preview-provider-dialog.component.ts - 15 - - - app/dashboard/component/delete-dialog.component.ts - 9 - - - app/edit-provider/component/unsaved-dialog.component.ts - 18 - - - app/edit-provider/container/editor.component.ts - 43 - - - - Delete Metadata Source? - Delete Metadata Source? (es) - - app/dashboard/component/delete-dialog.component.ts - 2 - - - - You are deleting a metadata source. This cannot be undone. Continue? - You are deleting a metadata source. This cannot be undone. Continue? (es) - - app/dashboard/component/delete-dialog.component.ts - 5 - - - - Delete - Delete (es) - - app/dashboard/component/delete-dialog.component.ts - 8 - - - - Current Metadata Sources - Current Metadata Sources (es) - - app/dashboard/container/dashboard.component.ts - 6 - - - - Incomplete Form - Incomplete Form (es) - - app/dashboard/component/provider-item.component.ts - 14 - - - app/dashboard/component/provider-item.component.ts - 52 - - - - Service Provider Name: - Service Provider Name: (es) - - app/dashboard/component/provider-item.component.ts - 33 - - - - Created Date: - Created Date: (es) - - app/dashboard/component/provider-item.component.ts - 35 - - - - Service Provider Entity ID: - Service Provider Entity ID: (es) - - app/dashboard/component/provider-item.component.ts - 40 - - - - Service Provider Status: - Service Provider Status: (es) - - app/dashboard/component/provider-item.component.ts - 42 - - - - Enabled - Enabled (es) - - app/dashboard/component/provider-item.component.ts - 48 - - - - Disabled - Disabled (es) - - app/dashboard/component/provider-item.component.ts - 49 - - - - Search sources - Search sources (es) - - app/dashboard/component/provider-search.component.ts - 8 - - - - Clear - Clear (es) - - app/dashboard/component/provider-search.component.ts - 19 - - - - Save your information? - Save your information? (es) - - app/edit-provider/component/unsaved-dialog.component.ts - 3 - - - - - You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the - "Edit" - icon on the dashboard. - - - You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the - "Edit" - icon on the dashboard. - (es) - - app/edit-provider/component/unsaved-dialog.component.ts - 6 - - - - You have not saved your changes. If you exit this screen, your changes will be lost. - You have not saved your changes. If you exit this screen, your changes will be lost. (es) - - app/edit-provider/component/unsaved-dialog.component.ts - 11 - - - - Finish Later - Finish Later (es) - - app/edit-provider/component/unsaved-dialog.component.ts - 15 - - - - Discard Changes - Discard Changes (es) - - app/edit-provider/component/unsaved-dialog.component.ts - 16 - - - - Add a new metadata source - Add a new metadata source (es) - - app/edit-provider/container/wizard.component.ts - 8 - - - - Step of - Step of (es) - - app/edit-provider/container/wizard.component.ts - 11 - - - - Back - Back (es) - - app/edit-provider/component/wizard-nav.component.ts - 7 - - - - Information icon - press spacebar to read additional information for this form field - Information icon - press spacebar to read additional information for this form field (es) - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 13 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 30 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 55 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 69 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 83 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 122 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 134 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 153 - - - app/metadata-provider/component/forms/assertion-form.component.ts - 36 - - - app/metadata-provider/component/forms/assertion-form.component.ts - 52 - - - app/metadata-provider/component/forms/assertion-form.component.ts - 71 - - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 10 - - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 28 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 10 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 32 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 54 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 106 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 120 - - - app/metadata-provider/component/forms/key-info-form.component.ts - 138 - - - app/metadata-provider/component/forms/logout-form.component.ts - 34 - - - app/metadata-provider/component/forms/logout-form.component.ts - 46 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 10 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 21 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 33 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 56 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 68 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 81 - - - app/metadata-provider/component/forms/metadata-ui-form.component.ts - 96 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 11 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 25 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 39 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 81 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 94 - - - app/metadata-provider/component/forms/organization-info-form.component.ts - 113 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 13 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 25 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 37 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 49 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 61 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 86 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 111 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 123 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 132 - - - - Add NameID Format Popover - Add NameID Format Popover (es) - - app/metadata-provider/component/forms/descriptor-info-form.component.ts - 25 - - - app/metadata-provider/component/forms/relying-party-form.component.ts - 58 - - - - Sign Assertion popover - Sign Assertion popover (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 10 - - - - Don't Sign Response popover - Don't Sign Response popover (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 22 - - - - Turn Off Encryption of Response popover - Turn Off Encryption of Response popover (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 34 - - - - Use SHA1 Signing Algorithm popover - Use SHA1 Signing Algorithm popover (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 46 - - - - Authentication Methods to Use popover - Authentication Methods to Use popover (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 83 - - - - Ignore any SP-Requested Authentication Method popover - Ignore any SP-Requested Authentication Method popover (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 108 - - - - Omit Not Before Condition popover - Omit Not Before Condition popover (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 120 - - - - ResponderId popover - ResponderId popover (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 129 - - - - Certificate Name Popover - Certificate Name Popover (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 103 - - - - Certificate Type Popover - Certificate Type Popover (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 117 - - - - Certificate Popover - Certificate Popover (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 135 - - - - * These three fields must all be entered if any single field has a value. - * These three fields must all be entered if any single field has a value. (es) - - app/metadata-provider/component/forms/organization-info-form.component.ts - 45 - - - app/metadata-provider/component/forms/advanced-info-form.component.ts - 89 - - - - ResponderID - ResponderID (es) - - app/metadata-provider/component/forms/relying-party-form.component.ts - 128 - - - - User Interface / MDUI Information - User Interface / MDUI Information (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 3 - - - - SP SSO Descriptor Information - SP SSO Descriptor Information (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 4 - - - - Logout Endpoints - Logout Endpoints (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 5 - - - app/metadata-provider/component/forms/logout-form.component.ts - 5 - - - app/metadata-provider/component/forms/finish-form.component.ts - 115 - - - app/metadata-provider/component/forms/finish-form.component.ts - 121 - - - - Security Information - Security Information (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 6 - - - - Assertion Consumer Service - Assertion Consumer Service (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 7 - - - app/metadata-provider/component/forms/finish-form.component.ts - 173 - - - - Relying Party Overrides - Relying Party Overrides (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 8 - - - app/metadata-provider/component/forms/finish-form.component.ts - 201 - - - - Attribute Release - Attribute Release (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 9 - - - app/metadata-provider/component/forms/finish-form.component.ts - 241 - - - - SP/Organization Information - SP/Organization Information (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 10 - - - - Organization Information - Organization Information (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 11 - - - app/metadata-provider/container/blank-provider.component.ts - 13 - - - - Finished! - Finished! (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 12 - - - - New Endpoint - New Endpoint (es) - - app/metadata-provider/component/forms/assertion-form.component.ts - 17 - - - app/metadata-provider/component/forms/logout-form.component.ts - 17 - - - - New Certificate - New Certificate (es) - - app/metadata-provider/component/forms/key-info-form.component.ts - 107 - - - - Authentication Method - Authentication Method (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 108 - - - - NameID Format - NameID Format (es) - - app/metadata-provider/component/forms/finish-form.component.ts - 76 - - - - Search - Search (es) - - app/dashboard/component/provider-search.component.ts - 3 - - - - Signing - Signing (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 15 - - - - Encryption - Encryption (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 16 - - - - Both - Both (es) - - app/metadata-provider/component/i18n-text-info.component.ts - 17 - - - - All forms must be valid before changes can be saved! - All forms must be valid before changes can be saved! (es) - - app/edit-provider/container/editor.component.ts - 60 - - - - Filter Name - Filter Name (es) - - app/metadata-filter/container/new-filter.component.ts - 22 - - - - (Dashboard Display Only) - (Dashboard Display Only) (es) - - app/metadata-filter/container/new-filter.component.ts - 24 - - - - Filter Name - Filter Name (es) - - app/metadata-filter/container/new-filter.component.ts - 30 - - - - Search Entity ID - Search Entity ID (es) - - app/metadata-filter/container/new-filter.component.ts - 46 - - - - Search Entity ID - Search Entity ID (es) - - app/metadata-filter/container/new-filter.component.ts - 51 - - - - Save Changes - Save Changes (es) - - app/metadata-filter/container/new-filter.component.ts - 79 - - - - Select ID - Select ID (es) - - app/metadata-filter/component/search-dialog.component.ts - 35 - - - - Entity ID not found - Entity ID not found (es) - - app/metadata-filter/component/filter-form.component.ts - 63 - - - - Entity Preview (read-only) - Entity Preview (read-only) - - app/metadata-filter/component/filter-form.component.ts - 93 - - - - Minimum 4 characters. - Minimum 4 characters. (es) - - app/metadata-filter/container/new-filter.component.ts - 93 - - - - Entity Preview - Entity Preview - - app/metadata-filter/component/filter-form.component.ts - 99 - - - - Enable this filter? - Enable this filter? (es) - - app/metadata-filter/component/filter-form.component.ts - 123 - - - - Enable this filter upon saving popover - Enable this filter upon saving popover (es) - - app/metadata-filter/component/filter-form.component.ts - 126 - - - - Preview Filter XML - Preview Filter XML (es) - - app/metadata-filter/component/preview-filter.component.ts - 3 - - - - Check All Attributes - Check All Attributes (es) - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 32 - - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 36 - - - - Clear All Attributes - Clear All Attributes (es) - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 41 - - - app/metadata-provider/component/forms/attribute-release-form.component.ts - 45 - - - - Select Contact Type - Select Contact Type (es) - - app/metadata-provider/component/forms/organization-info-form.component.ts - 124 - - - - - \ No newline at end of file From f59102d709de036dbeb05e87535a43f6eb3e7203 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 24 Sep 2018 12:31:35 -0700 Subject: [PATCH 09/13] SHIBUI-814 removed unnecessary file --- run-app-es.sh | 3 --- 1 file changed, 3 deletions(-) delete mode 100755 run-app-es.sh diff --git a/run-app-es.sh b/run-app-es.sh deleted file mode 100755 index 99c47d1a1..000000000 --- a/run-app-es.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -./gradlew -Dshibui.logout-url=/dashboard clean bootRun npm_run_start --parallel -Pnpm-args="-- --i18nFile=./src/locale/es.xlf --i18nFormat=xlf --locale=es --aot" \ No newline at end of file From b020122e6412c3913fdc33d79fff41904b86833c Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 24 Sep 2018 12:55:08 -0700 Subject: [PATCH 10/13] SHIBUI-814 Fixed issue with date pipe --- ui/src/app/i18n/component/translate.component.ts | 1 - .../manager/component/provider-item.component.html | 2 +- .../component/provider-item.component.spec.ts | 4 +++- .../manager/component/resolver-item.component.html | 2 +- .../component/resolver-item.component.spec.ts | 4 +++- .../dashboard-providers-list.component.spec.ts | 4 +++- .../dashboard-resolvers-list.component.spec.ts | 4 +++- ui/src/app/metadata/manager/manager.module.ts | 4 +++- ui/src/app/shared/pipe/date.pipe.ts | 13 +++++++++++++ ui/src/app/shared/shared.module.ts | 5 ++++- 10 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 ui/src/app/shared/pipe/date.pipe.ts diff --git a/ui/src/app/i18n/component/translate.component.ts b/ui/src/app/i18n/component/translate.component.ts index 42bf18407..9eb6f6623 100644 --- a/ui/src/app/i18n/component/translate.component.ts +++ b/ui/src/app/i18n/component/translate.component.ts @@ -37,7 +37,6 @@ export class TranslateComponent implements OnDestroy { @Input() set params(params: any) { this.currentParams = params || {}; - console.log(params); this.update(); } diff --git a/ui/src/app/metadata/manager/component/provider-item.component.html b/ui/src/app/metadata/manager/component/provider-item.component.html index 0b222543d..1a1daa26c 100644 --- a/ui/src/app/metadata/manager/component/provider-item.component.html +++ b/ui/src/app/metadata/manager/component/provider-item.component.html @@ -59,7 +59,7 @@
Created Date:
-
{{ provider.createdDate | date:'medium' }}
+
{{ provider.createdDate | customDate }}
diff --git a/ui/src/app/metadata/manager/component/provider-item.component.spec.ts b/ui/src/app/metadata/manager/component/provider-item.component.spec.ts index ff6957ecf..37145c6c2 100644 --- a/ui/src/app/metadata/manager/component/provider-item.component.spec.ts +++ b/ui/src/app/metadata/manager/component/provider-item.component.spec.ts @@ -4,6 +4,7 @@ import { ProviderItemComponent } from './provider-item.component'; import { ViewChild, Component } from '@angular/core'; import { MetadataProvider } from '../../domain/model'; import { MockI18nModule } from '../../../../testing/i18n.stub'; +import { CustomDatePipe } from '../../../shared/pipe/date.pipe'; @Component({ template: ` @@ -50,7 +51,8 @@ describe('Provider List item', () => { ], declarations: [ ProviderItemComponent, - TestHostComponent + TestHostComponent, + CustomDatePipe ], }); diff --git a/ui/src/app/metadata/manager/component/resolver-item.component.html b/ui/src/app/metadata/manager/component/resolver-item.component.html index 7154e1d7a..ff734e4a6 100644 --- a/ui/src/app/metadata/manager/component/resolver-item.component.html +++ b/ui/src/app/metadata/manager/component/resolver-item.component.html @@ -41,7 +41,7 @@
{{ entity.name }}
Created Date:
-
{{ entity.getCreationDate() | date:'medium' }}
+
{{ entity.getCreationDate() | customDate }}
diff --git a/ui/src/app/metadata/manager/component/resolver-item.component.spec.ts b/ui/src/app/metadata/manager/component/resolver-item.component.spec.ts index 84e71a18c..b0fa44046 100644 --- a/ui/src/app/metadata/manager/component/resolver-item.component.spec.ts +++ b/ui/src/app/metadata/manager/component/resolver-item.component.spec.ts @@ -4,6 +4,7 @@ import { EntityItemComponent } from './entity-item.component'; import { FileBackedHttpMetadataResolver } from '../../domain/entity'; import { ResolverItemComponent } from './resolver-item.component'; import { MockI18nModule } from '../../../../testing/i18n.stub'; +import { CustomDatePipe } from '../../../shared/pipe/date.pipe'; describe('Resolver List item', () => { let fixture: ComponentFixture; @@ -19,7 +20,8 @@ describe('Resolver List item', () => { MockI18nModule ], declarations: [ - ResolverItemComponent + ResolverItemComponent, + CustomDatePipe ], }); diff --git a/ui/src/app/metadata/manager/container/dashboard-providers-list.component.spec.ts b/ui/src/app/metadata/manager/container/dashboard-providers-list.component.spec.ts index f2b6308bc..823f7d1e2 100644 --- a/ui/src/app/metadata/manager/container/dashboard-providers-list.component.spec.ts +++ b/ui/src/app/metadata/manager/container/dashboard-providers-list.component.spec.ts @@ -15,6 +15,7 @@ import { MetadataProvider } from '../../domain/model'; import { ProviderItemComponent } from '../component/provider-item.component'; import { FileBackedHttpMetadataResolver } from '../../domain/entity'; import { MockI18nModule } from '../../../../testing/i18n.stub'; +import { CustomDatePipe } from '../../../shared/pipe/date.pipe'; describe('Dashboard Providers List Page', () => { @@ -49,7 +50,8 @@ describe('Dashboard Providers List Page', () => { DashboardProvidersListComponent, ProviderSearchComponent, ProviderItemComponent, - DeleteDialogComponent + DeleteDialogComponent, + CustomDatePipe ], }); diff --git a/ui/src/app/metadata/manager/container/dashboard-resolvers-list.component.spec.ts b/ui/src/app/metadata/manager/container/dashboard-resolvers-list.component.spec.ts index fdf47888c..782f8c763 100644 --- a/ui/src/app/metadata/manager/container/dashboard-resolvers-list.component.spec.ts +++ b/ui/src/app/metadata/manager/container/dashboard-resolvers-list.component.spec.ts @@ -15,6 +15,7 @@ import { FileBackedHttpMetadataResolver } from '../../domain/entity'; import { DashboardResolversListComponent } from './dashboard-resolvers-list.component'; import { ResolverItemComponent } from '../component/resolver-item.component'; import { MockI18nModule } from '../../../../testing/i18n.stub'; +import { CustomDatePipe } from '../../../shared/pipe/date.pipe'; describe('Dashboard Resolvers List Page', () => { @@ -54,7 +55,8 @@ describe('Dashboard Resolvers List Page', () => { DashboardResolversListComponent, ProviderSearchComponent, ResolverItemComponent, - DeleteDialogComponent + DeleteDialogComponent, + CustomDatePipe ], }); diff --git a/ui/src/app/metadata/manager/manager.module.ts b/ui/src/app/metadata/manager/manager.module.ts index 0f00569d1..4a04803a0 100644 --- a/ui/src/app/metadata/manager/manager.module.ts +++ b/ui/src/app/metadata/manager/manager.module.ts @@ -19,6 +19,7 @@ import { SearchEffects } from './effect/search.effects'; import { DeleteDialogComponent } from './component/delete-dialog.component'; import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap/modal/modal.module'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { SharedModule } from '../../shared/shared.module'; @NgModule({ declarations: [ @@ -41,7 +42,8 @@ import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; RouterModule, NgbModalModule, NgbDropdownModule, - HttpClientModule + HttpClientModule, + SharedModule ] }) export class ManagerModule { diff --git a/ui/src/app/shared/pipe/date.pipe.ts b/ui/src/app/shared/pipe/date.pipe.ts new file mode 100644 index 000000000..21be68187 --- /dev/null +++ b/ui/src/app/shared/pipe/date.pipe.ts @@ -0,0 +1,13 @@ +import { PipeTransform, Pipe } from '@angular/core'; +import { DatePipe } from '@angular/common'; + +@Pipe({ name: 'customDate' }) +export class CustomDatePipe implements PipeTransform { + pipe: DatePipe; + constructor() { + this.pipe = new DatePipe('en'); + } + transform(value: string, format: string): string { + return this.pipe.transform(value, format); + } +} diff --git a/ui/src/app/shared/shared.module.ts b/ui/src/app/shared/shared.module.ts index 9896470a4..4218324ba 100644 --- a/ui/src/app/shared/shared.module.ts +++ b/ui/src/app/shared/shared.module.ts @@ -12,6 +12,7 @@ import { ToggleSwitchComponent } from './switch/switch.component'; import { ContenteditableDirective } from './contenteditable/contenteditable.directive'; import { ReplacePipe } from './pipe/replace.pipe'; import { I18nModule } from '../i18n/i18n.module'; +import { CustomDatePipe } from './pipe/date.pipe'; @NgModule({ imports: [ @@ -30,6 +31,7 @@ import { I18nModule } from '../i18n/i18n.module'; InfoLabelDirective, PrettyXml, ReplacePipe, + CustomDatePipe, ContenteditableDirective ], exports: [ @@ -44,7 +46,8 @@ import { I18nModule } from '../i18n/i18n.module'; ValidationClassDirective, InfoLabelDirective, ContenteditableDirective, - ReplacePipe + ReplacePipe, + CustomDatePipe ] }) export class SharedModule { } From 3d3cbd3c1a09a02741037ba958af51c92e2d6308 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 24 Sep 2018 15:07:28 -0700 Subject: [PATCH 11/13] SHIBUI-814 fixed missing translation --- ui/src/assets/schema/filter/entity-attributes.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/assets/schema/filter/entity-attributes.schema.json b/ui/src/assets/schema/filter/entity-attributes.schema.json index fb5be7856..70a5b2e09 100644 --- a/ui/src/assets/schema/filter/entity-attributes.schema.json +++ b/ui/src/assets/schema/filter/entity-attributes.schema.json @@ -11,7 +11,7 @@ "type": "string", "widget": { "id": "string", - "help": "Must be unique." + "help": "message.must-be-unique" } }, "@type": { From b92ce9cfeb8d11cbada2a0c5324458ea68b2f660 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Tue, 25 Sep 2018 10:21:10 -0700 Subject: [PATCH 12/13] SHIBUI-900 i18n fixes --- .../resources/i18n/messages_en.properties | 63 ++++++++++++++----- .../resources/i18n/messages_es.properties | 52 ++++++++++----- .../forms/assertion-form.component.html | 2 +- .../forms/descriptor-info-form.component.html | 4 +- .../forms/finish-form.component.html | 5 +- .../forms/key-info-form.component.html | 2 +- .../forms/logout-form.component.html | 2 +- .../forms/relying-party-form.component.html | 2 +- .../component/provider-item.component.html | 12 ++-- .../component/provider-search.component.html | 3 +- ui/src/app/metadata/manager/manager.module.ts | 4 +- .../provider-editor-nav.component.html | 15 ++--- .../provider-filter-list.component.html | 27 ++++---- .../provider/model/base.provider.form.ts | 4 +- .../model/file-backed-http.provider.form.ts | 18 +++--- .../metadata/provider/model/provider.form.ts | 2 +- .../component/wizard-nav.component.html | 12 ++-- .../resolver/container/editor.component.html | 10 +-- .../resolver/container/wizard.component.html | 2 +- .../resolver/editor-definition.const.ts | 20 +++--- .../widget/string/string.component.html | 5 +- .../wizard/component/wizard.component.html | 8 +-- .../filter/entity-attributes.schema.json | 12 ++-- 23 files changed, 176 insertions(+), 110 deletions(-) diff --git a/backend/src/main/resources/i18n/messages_en.properties b/backend/src/main/resources/i18n/messages_en.properties index 2c6a755ab..b70c9df7b 100644 --- a/backend/src/main/resources/i18n/messages_en.properties +++ b/backend/src/main/resources/i18n/messages_en.properties @@ -31,6 +31,12 @@ action.choose-file=Choose File action.search-by=Search By action.preview=Preview action.select-metadata-filter-type=Select a metadata filter type +action.add-authentication-method=Add Authentication Method +action.move-up=Move Up +action.move-down=Move Down +action.edit=Edit +action.add-filter=Add Filter +action.manage-filters=Manage Filters value.enabled=Enabled value.disabled=Disabled @@ -39,6 +45,9 @@ value.file=File value.memory=Memory value.true=True value.false=False +value.regex=Regex +value.script=Script +value.entity-id=Entity ID value.file-backed-http-metadata-provider=FileBackedHttpMetadataProvider value.entity-attributes-filter=EntityAttributes Filter @@ -139,7 +148,7 @@ label.contact-name=Contact Name label.select-contact-type=Select Contact Type label.contact-email-address=Contact Email Address label.sign-the-assertion=Sign the Assertion -label.dont-sign-the-response=Don''t Sign the Response +label.dont-sign-the-response=Don\u0027t Sign the Response label.turn-off-encryption-of-response=Turn Off Encryption of Response label.use-sha1-signing-algorithm=Use SHA1 Signing Algorithm label.nameid-format-to-send=NameID Format to Send @@ -201,10 +210,11 @@ label.service-enabled=Service Enabled label.filter-name=Filter Name label.filter-enabled=Filter Enabled label.filter-target=FilterTarget +label.filter-type=Filter Type label.value=Value label.binding-type=Binding Type label.sign-assertion=Sign Assertions -label.dont-sign-response=Don''t Sign Response +label.dont-sign-response=Don\u0027t Sign Response label.turn-off-encryption=Turn off encryption label.use-sha=Use Sha label.ignore-authentication-method=Ignore Authentication Method @@ -223,13 +233,12 @@ label.binding=Binding label.location-url=Location URL label.make-default=Make Default label.metadata-provider-name-dashboard-display-only=Metadata Provider Name (Dashboard Display Only) +label.default-authentication-methods=Default Authentication Method(s) label.filter-name=Filter Name (Dashboard Display Only) label.metadata-filter-name=Metadata Filter Name (Dashboard Display Only) label.filter-enable=Enable this Filter? label.search-criteria=Search Criteria -label.regex=Regex -label.script=Script label.metadata-filter=Metadata Filter label.metadata-filter-type=Metadata Filter Type @@ -270,10 +279,12 @@ label.metadata-url=Metadata URL label.xml-id=ID label.enable-service=Enable this service? label.metadata-provider-type=Metadata Provider Type -label.metadata-provider-name=Metadata Provider Name (Dashboard Display Only) +label.metadata-provider-name=Metadata Provider Name label.select-metadata-type=Select a metadata provider type +label.metadata-provider-status=Metadata Provider Status label.enable-provider-upon-saving=Enable Metadata Provider upon saving? +label.enable-filter=Enable Filter? label.required-valid-until=Required Valid Until Filter label.max-validity-interval=Max Validity Interval label.signature-validation-filter=Signature Validation Filter @@ -284,7 +295,25 @@ label.retained-roles=Retained Roles label.remove-roleless-entity-descriptors=Remove Roleless Entity Descriptors? label.remove-empty-entities-descriptors=Remove Empty Entities Descriptors? +label.select-metadata-provider-type=Select Metadata Provider Type +label.filter-list=Filter List +label.common-attributes=Common Attributes +label.reloading-attributes=Reloading Attributes +label.metadata-filter-plugins=Metadata Filter Plugins +label.advanced-settings=Advanced Settings +label.edit-metadata-provider=Edit Metadata Provider + +label.metadata-ui=User Interface / MDUI Information +label.descriptor-info=SP SSO Descriptor Information +label.key-info=Security Information +label.assertion=Assertion Consumer Service +label.relying-party=Relying Party Overrides +label.org-info=Organization Information + message.must-be-unique=Must be unique. +message.name-must-be-unique=Name must be unique. +message.uri-valid-format=URI must be valid format. +message.id-unique=ID must be unique. message.conflict=Conflict message.data-version-contention=Data Version Contention @@ -302,14 +331,14 @@ message.delete-filter-body=You are deleting a metadata filter. This cannot be un message.unsaved-dialog-title=Save your information? message.unsaved-editor=You have not saved your changes. If you exit this screen, your changes will be lost. message.editor-invalid=All forms must be valid before changes can be saved! -message.unsaved-source-1=You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the ''Edit'' +message.unsaved-source-1=You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the \u0027Edit\u0027 message.unsaved-source-2=icon on the dashboard. message.service-resolver-name-required=Service Resolver Name is required message.entity-id-required=Entity ID is required message.entity-id-must-be-unique=Entity ID must be unique message.file-upload-alert=Note: You can only import a file with a single entityID (EntityDescriptor element) in it. Anything more in that file will result in an error. message.add-new-md-resolver=Add a new metadata source -message.wizard-status=Step { index } of {{ length }} +message.wizard-status=Step { index } of { length } message.entity-id-min-unique=You must add at least one entity id target and they must each be unique. message.required-for-scripts=Required for Scripts message.required-for-regex=Required for Regex @@ -338,7 +367,7 @@ tooltip.logout-endpoints-binding-type=Logout Endpoints Binding Type tooltip.mdui-display-name=Typically, the IdP Display Name field will be presented on IdP discovery service interfaces. tooltip.mdui-information-url=The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field. tooltip.mdui-description=The IdP Description is a brief description of the IdP service. On a well-designed discovery interface, the IdP Description will be presented to the user in addition to the IdP Display Name, and so the IdP Description helps disambiguate duplicate or similar IdP Display Names. -tooltip.mdui-privacy-statement-url=The IdP Privacy Statement URL is a link to the IdP''s Privacy Statement. The content of the Privacy Statement should be targeted at end users. +tooltip.mdui-privacy-statement-url=The IdP Privacy Statement URL is a link to the IdP\u0027s Privacy Statement. The content of the Privacy Statement should be targeted at end users. tooltip.mdui-logo-url=The IdP Logo URL in metadata points to an image file on a remote server. A discovery service, for example, may rely on a visual cue (i.e., a logo) instead of or in addition to the IdP Display Name. tooltip.mdui-logo-width=The logo should have a minimum width of 100 pixels tooltip.mdui-logo-height=The logo should have a minimum height of 75 pixels and a maximum height of 150 pixels (or the application will scale it proportionally) @@ -346,12 +375,12 @@ tooltip.organization-name=Organization Name tooltip.organization-display-name=Organization Display Name tooltip.organization-url=Organization Url tooltip.contact-name=Contact Name +tooltip.contact-type=Contact Type tooltip.contact-email=Contact Email tooltip.sign-assertion=Sign Assertion -tooltip.dont-sign-response=Don''t Sign Response +tooltip.dont-sign-response=Don\u0027t Sign Response tooltip.turn-off-encryption=Turn Off Encryption of Response tooltip.usa-sha-algorithm=Use SHA1 Signing Algorithm -tooltip.nameid-format=Add NameID Format tooltip.authentication-methods-to-use=Authentication Methods to Use tooltip.ignore-auth-method=Ignore any SP-Requested Authentication Method tooltip.omit-not-before-condition=Omit Not Before Condition @@ -360,8 +389,8 @@ tooltip.instruction=Information icon - press spacebar to read additional informa tooltip.attribute-release-table=Attribute release table - select the attributes you want to release (default unchecked) tooltip.metadata-filter-name=Metadata Filter Name tooltip.metadata-filter-type=Metadata Filter Type -tooltip.connection-request-timeout=The maximum amount of time to wait for a connection to be returned from the HTTP client''s connection pool manager. Set to PT0S to disable. This attribute is incompatible with httpClientRef. -tooltip.connection-timout=The maximum amount of time to wait to establish a connection with the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. +tooltip.connection-request-timeout=The maximum amount of time to wait for a connection to be returned from the HTTP client\u0027s connection pool manager. Set to PT0S to disable. This attribute is incompatible with httpClientRef. +tooltip.connection-timeout=The maximum amount of time to wait to establish a connection with the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. tooltip.socket-timeout=The maximum amount of time to wait between two consecutive packets while reading from the socket connected to the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. tooltip.disregard-tls-cert=If true, no TLS certificate checking will take place over an HTTPS connection. This attribute is incompatible with httpClientRef. (Be careful with this setting, it is typically only used during testing. See the HttpClientConfiguration topic for more information.) tooltip.proxy-host=The hostname of the HTTP proxy through which connections will be made. This attribute is incompatible with httpClientRef. @@ -393,8 +422,12 @@ tooltip.retained-roles=Retained Roles tooltip.remove-roleless-entity-descriptors=Controls whether to keep entity descriptors that contain no roles. tooltip.remove-empty-entities-descriptors=Controls whether to keep entities descriptors that contain no entity descriptors. -tooltip.min-refresh-delay=Lower bound on the next refresh from the time calculated based on the metadata''s expiration. -tooltip.max-refresh-delay=Upper bound on the next refresh from the time calculated based on the metadata''s expiration. -tooltip.refresh-delay-factor=A factor applied to the initially determined refresh time in order to determine the next refresh time (typically to ensure refresh takes place prior to the metadata''s expiration). Attempts to refresh metadata will generally begin around the product of this number and the maximum refresh delay. +tooltip.min-refresh-delay=Lower bound on the next refresh from the time calculated based on the metadata\u0027s expiration. +tooltip.max-refresh-delay=Upper bound on the next refresh from the time calculated based on the metadata\u0027s expiration. +tooltip.refresh-delay-factor=A factor applied to the initially determined refresh time in order to determine the next refresh time (typically to ensure refresh takes place prior to the metadata\u0027s expiration). Attempts to refresh metadata will generally begin around the product of this number and the maximum refresh delay. tooltip.resolve-via-predicates-only=Flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection, when an entityID input criterion is not supplied. tooltip.expiration-warning-threshold=For each attempted metadata refresh (whether or not fresh metadata is obtained), if requireValidMetadata is true, and there is a validUntil XML attribute on the document root element, and the difference between validUntil and the current time is less than expirationWarningThreshold, the system logs a warning about the impending expiration. + +tooltip.filter-name=Filter Name +tooltip.enable-filter=Enable Filter? +tooltip.enable-service=Enable Service? diff --git a/backend/src/main/resources/i18n/messages_es.properties b/backend/src/main/resources/i18n/messages_es.properties index f90cad6a4..dc34befe4 100644 --- a/backend/src/main/resources/i18n/messages_es.properties +++ b/backend/src/main/resources/i18n/messages_es.properties @@ -31,6 +31,7 @@ action.choose-file=(es) Choose File action.search-by=(es) Search By action.preview=(es) Preview action.select-metadata-filter-type=(es) Select a metadata filter type +action.add-authentication-method=(es) Add Authentication Method value.enabled=(es) Enabled value.disabled=(es) Disabled @@ -39,6 +40,9 @@ value.file=(es) File value.memory=(es) Memory value.true=(es) True value.false=(es) False +label.regex=(es) Regex +label.script=(es) Script +label.entity-id=(es) Entity ID value.file-backed-http-metadata-provider=(es) FileBackedHttpMetadataProvider value.entity-attributes-filter=(es) EntityAttributes Filter @@ -139,7 +143,7 @@ label.contact-name=(es) Contact Name label.select-contact-type=(es) Select Contact Type label.contact-email-address=(es) Contact Email Address label.sign-the-assertion=(es) Sign the Assertion -label.dont-sign-the-response=(es) Don''t Sign the Response +label.dont-sign-the-response=(es) Don\u0027t Sign the Response label.turn-off-encryption-of-response=(es) Turn Off Encryption of Response label.use-sha1-signing-algorithm=(es) Use SHA1 Signing Algorithm label.nameid-format-to-send=(es) NameID Format to Send @@ -204,7 +208,7 @@ label.filter-target=(es) FilterTarget label.value=(es) Value label.binding-type=(es) Binding Type label.sign-assertion=(es) Sign Assertions -label.dont-sign-response=(es) Don''t Sign Response +label.dont-sign-response=(es) Don\u0027t Sign Response label.turn-off-encryption=(es) Turn off encryption label.use-sha=(es) Use Sha label.ignore-authentication-method=(es) Ignore Authentication Method @@ -223,13 +227,12 @@ label.binding=(es) Binding label.location-url=(es) Location URL label.make-default=(es) Make Default label.metadata-provider-name-dashboard-display-only=(es) Metadata Provider Name (Dashboard Display Only) +label.default-authentication-methods=(es) Default Authentication Method(s) label.filter-name=(es) Filter Name (Dashboard Display Only) label.metadata-filter-name=(es) Metadata Filter Name (Dashboard Display Only) label.filter-enable=(es) Enable this Filter? label.search-criteria=(es) Search Criteria -label.regex=(es) Regex -label.script=(es) Script label.metadata-filter=(es) Metadata Filter label.metadata-filter-type=(es) Metadata Filter Type @@ -284,7 +287,24 @@ label.retained-roles=(es) Retained Roles label.remove-roleless-entity-descriptors=(es) Remove Roleless Entity Descriptors? label.remove-empty-entities-descriptors=(es) Remove Empty Entities Descriptors? +label.select-metadata-provider-type=(es) Select Metadata Provider Type +label.filter-list=(es) Filter List +label.common-attributes=(es) Common Attributes +label.reloading-attributes=(es) Reloading Attributes +label.metadata-filter-plugins=(es) Metadata Filter Plugins +label.advanced-settings=(es) Advanced Settings + +label.metadata-ui=(es) User Interface / MDUI Information +label.descriptor-info=(es) SP SSO Descriptor Information +label.key-info=(es) Security Information +label.assertion=(es) Assertion Consumer Service +label.relying-party=(es) Relying Party Overrides +label.org-info=(es) Organization Information + message.must-be-unique=(es) Must be unique. +message.name-must-be-unique=(es) Name must be unique. +message.uri-valid-format=(es) URI must be valid format. +message.id-unique=(es) ID must be unique. message.conflict=(es) Conflict message.data-version-contention=(es) Data Version Contention @@ -302,14 +322,14 @@ message.delete-filter-body=(es) You are deleting a metadata filter. This cannot message.unsaved-dialog-title=(es) Save your information? message.unsaved-editor=(es) You have not saved your changes. If you exit this screen, your changes will be lost. message.editor-invalid=(es) All forms must be valid before changes can be saved! -message.unsaved-source-1=(es) You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the ''Edit'' +message.unsaved-source-1=(es) You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the \u0027Edit\u0027 message.unsaved-source-2=(es) icon on the dashboard. message.service-resolver-name-required=(es) Service Resolver Name is required message.entity-id-required=(es) Entity ID is required message.entity-id-must-be-unique=(es) Entity ID must be unique message.file-upload-alert=(es) Note: You can only import a file with a single entityID (EntityDescriptor element) in it. Anything more in that file will result in an error. message.add-new-md-resolver=(es) Add a new metadata source -message.wizard-status=(es) Step { index } of {{ length }} +message.wizard-status=(es) Step { index } of { length } message.entity-id-min-unique=(es) You must add at least one entity id target and they must each be unique. message.required-for-scripts=(es) Required for Scripts message.required-for-regex=(es) Required for Regex @@ -338,7 +358,7 @@ tooltip.logout-endpoints-binding-type=(es) Logout Endpoints Binding Type tooltip.mdui-display-name=(es) Typically, the IdP Display Name field will be presented on IdP discovery service interfaces. tooltip.mdui-information-url=(es) The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field. tooltip.mdui-description=(es) The IdP Description is a brief description of the IdP service. On a well-designed discovery interface, the IdP Description will be presented to the user in addition to the IdP Display Name, and so the IdP Description helps disambiguate duplicate or similar IdP Display Names. -tooltip.mdui-privacy-statement-url=(es) The IdP Privacy Statement URL is a link to the IdP''s Privacy Statement. The content of the Privacy Statement should be targeted at end users. +tooltip.mdui-privacy-statement-url=(es) The IdP Privacy Statement URL is a link to the IdP\u0027s Privacy Statement. The content of the Privacy Statement should be targeted at end users. tooltip.mdui-logo-url=(es) The IdP Logo URL in metadata points to an image file on a remote server. A discovery service, for example, may rely on a visual cue (i.e., a logo) instead of or in addition to the IdP Display Name. tooltip.mdui-logo-width=(es) The logo should have a minimum width of 100 pixels tooltip.mdui-logo-height=(es) The logo should have a minimum height of 75 pixels and a maximum height of 150 pixels (or the application will scale it proportionally) @@ -346,12 +366,12 @@ tooltip.organization-name=(es) Organization Name tooltip.organization-display-name=(es) Organization Display Name tooltip.organization-url=(es) Organization Url tooltip.contact-name=(es) Contact Name +tooltip.contact-type=(es) Contact Type tooltip.contact-email=(es) Contact Email tooltip.sign-assertion=(es) Sign Assertion -tooltip.dont-sign-response=(es) Don''t Sign Response +tooltip.dont-sign-response=(es) Don\u0027t Sign Response tooltip.turn-off-encryption=(es) Turn Off Encryption of Response tooltip.usa-sha-algorithm=(es) Use SHA1 Signing Algorithm -tooltip.nameid-format=(es) Add NameID Format tooltip.authentication-methods-to-use=(es) Authentication Methods to Use tooltip.ignore-auth-method=(es) Ignore any SP-Requested Authentication Method tooltip.omit-not-before-condition=(es) Omit Not Before Condition @@ -360,8 +380,8 @@ tooltip.instruction=(es) Information icon - press spacebar to read additional in tooltip.attribute-release-table=(es) Attribute release table - select the attributes you want to release (default unchecked) tooltip.metadata-filter-name=(es) Metadata Filter Name tooltip.metadata-filter-type=(es) Metadata Filter Type -tooltip.connection-request-timeout=(es) The maximum amount of time to wait for a connection to be returned from the HTTP client''s connection pool manager. Set to PT0S to disable. This attribute is incompatible with httpClientRef. -tooltip.connection-timout=(es) The maximum amount of time to wait to establish a connection with the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. +tooltip.connection-request-timeout=(es) The maximum amount of time to wait for a connection to be returned from the HTTP client\u0027s connection pool manager. Set to PT0S to disable. This attribute is incompatible with httpClientRef. +tooltip.connection-timeout=(es) The maximum amount of time to wait to establish a connection with the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. tooltip.socket-timeout=(es) The maximum amount of time to wait between two consecutive packets while reading from the socket connected to the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. tooltip.disregard-tls-cert=(es) If true, no TLS certificate checking will take place over an HTTPS connection. This attribute is incompatible with httpClientRef. (Be careful with this setting, it is typically only used during testing. See the HttpClientConfiguration topic for more information.) tooltip.proxy-host=(es) The hostname of the HTTP proxy through which connections will be made. This attribute is incompatible with httpClientRef. @@ -393,8 +413,12 @@ tooltip.retained-roles=(es) Retained Roles tooltip.remove-roleless-entity-descriptors=(es) Controls whether to keep entity descriptors that contain no roles. tooltip.remove-empty-entities-descriptors=(es) Controls whether to keep entities descriptors that contain no entity descriptors. -tooltip.min-refresh-delay=(es) Lower bound on the next refresh from the time calculated based on the metadata''s expiration. -tooltip.max-refresh-delay=(es) Upper bound on the next refresh from the time calculated based on the metadata''s expiration. -tooltip.refresh-delay-factor=(es) A factor applied to the initially determined refresh time in order to determine the next refresh time (typically to ensure refresh takes place prior to the metadata''s expiration). Attempts to refresh metadata will generally begin around the product of this number and the maximum refresh delay. +tooltip.min-refresh-delay=(es) Lower bound on the next refresh from the time calculated based on the metadata\u0027s expiration. +tooltip.max-refresh-delay=(es) Upper bound on the next refresh from the time calculated based on the metadata\u0027s expiration. +tooltip.refresh-delay-factor=(es) A factor applied to the initially determined refresh time in order to determine the next refresh time (typically to ensure refresh takes place prior to the metadata\u0027s expiration). Attempts to refresh metadata will generally begin around the product of this number and the maximum refresh delay. tooltip.resolve-via-predicates-only=(es) Flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection, when an entityID input criterion is not supplied. tooltip.expiration-warning-threshold=(es) For each attempted metadata refresh (whether or not fresh metadata is obtained), if requireValidMetadata is true, and there is a validUntil XML attribute on the document root element, and the difference between validUntil and the current time is less than expirationWarningThreshold, the system logs a warning about the impending expiration. + +tooltip.filter-name=(es) Filter Name +tooltip.enable-filter=(es) Enable Filter ? +tooltip.enable-service=(es) Enable Service ? diff --git a/ui/src/app/metadata/domain/component/forms/assertion-form.component.html b/ui/src/app/metadata/domain/component/forms/assertion-form.component.html index 709c70bd4..7433c7711 100644 --- a/ui/src/app/metadata/domain/component/forms/assertion-form.component.html +++ b/ui/src/app/metadata/domain/component/forms/assertion-form.component.html @@ -2,7 +2,7 @@

- Assertion Consumer Service Endpoints: + Assertion Consumer Service Endpoints:    - Add NameID Format Popover + + Add NameID Format Popover + diff --git a/ui/src/app/metadata/domain/component/forms/finish-form.component.html b/ui/src/app/metadata/domain/component/forms/finish-form.component.html index 5d9682b8b..e5fef1c32 100644 --- a/ui/src/app/metadata/domain/component/forms/finish-form.component.html +++ b/ui/src/app/metadata/domain/component/forms/finish-form.component.html @@ -9,10 +9,11 @@ translate="label.enable-this-service-opon-saving" for="serviceEnabled">Enable this service upon saving?

- Enable this service upon saving popover + + Enable this service upon saving popover +
diff --git a/ui/src/app/metadata/domain/component/forms/key-info-form.component.html b/ui/src/app/metadata/domain/component/forms/key-info-form.component.html index 0da342a5f..e4a9ea4d7 100644 --- a/ui/src/app/metadata/domain/component/forms/key-info-form.component.html +++ b/ui/src/app/metadata/domain/component/forms/key-info-form.component.html @@ -91,7 +91,7 @@

- X509 Certificates: + X509 Certificates:   

diff --git a/ui/src/app/metadata/domain/component/forms/logout-form.component.html b/ui/src/app/metadata/domain/component/forms/logout-form.component.html index 38c0ac0a3..c8a73f3e6 100644 --- a/ui/src/app/metadata/domain/component/forms/logout-form.component.html +++ b/ui/src/app/metadata/domain/component/forms/logout-form.component.html @@ -2,7 +2,7 @@

- Logout Endpoints: + Logout Endpoints:  

diff --git a/ui/src/app/metadata/domain/component/forms/relying-party-form.component.html b/ui/src/app/metadata/domain/component/forms/relying-party-form.component.html index 996bc5ae7..4fb9f2713 100644 --- a/ui/src/app/metadata/domain/component/forms/relying-party-form.component.html +++ b/ui/src/app/metadata/domain/component/forms/relying-party-form.component.html @@ -100,7 +100,7 @@ Authentication Methods to Use   - diff --git a/ui/src/app/metadata/manager/component/provider-item.component.html b/ui/src/app/metadata/manager/component/provider-item.component.html index 1a1daa26c..f55293a4e 100644 --- a/ui/src/app/metadata/manager/component/provider-item.component.html +++ b/ui/src/app/metadata/manager/component/provider-item.component.html @@ -38,8 +38,8 @@
@@ -42,7 +43,7 @@ [routerLink]="['../', 'edit', route.path]" role="button" [attr.aria-label]="route.label"> - + @@ -54,9 +55,9 @@ - + diff --git a/ui/src/app/metadata/provider/container/provider-filter-list.component.html b/ui/src/app/metadata/provider/container/provider-filter-list.component.html index 2e13ae19f..d353bf449 100644 --- a/ui/src/app/metadata/provider/container/provider-filter-list.component.html +++ b/ui/src/app/metadata/provider/container/provider-filter-list.component.html @@ -4,7 +4,8 @@
- Edit Metadata Provider - {{ (provider$ | async).name }} + Edit Metadata Provider - {{ (provider$ | async).name }} +
@@ -19,7 +20,7 @@ - Add Filter + Add Filter
@@ -36,11 +37,11 @@ - Filter Name - Filter Type - Enabled? - Edit - Delete + Filter Name + Filter Type + Enabled? + Edit + Delete @@ -48,11 +49,11 @@ {{ i + 1 }} @@ -65,8 +66,8 @@ 'fa-check-square text-success': filter.filterEnabled, 'fa-square-o text-dark': !filter.filterEnabled }"> - Enable - Disable + Enable + Disable @@ -75,13 +76,13 @@ [class.disabled]="isSaving$ | async" [routerLink]="['../', 'filter', filter.resourceId, 'edit']"> - Edit + Edit diff --git a/ui/src/app/metadata/provider/model/base.provider.form.ts b/ui/src/app/metadata/provider/model/base.provider.form.ts index 7c78fe332..33ff3aa3a 100644 --- a/ui/src/app/metadata/provider/model/base.provider.form.ts +++ b/ui/src/app/metadata/provider/model/base.provider.form.ts @@ -26,7 +26,7 @@ export const BaseMetadataProviderEditor: Wizard = { const err = namesList.indexOf(value) > -1 ? { code: 'INVALID_NAME', path: `#${property.path}`, - message: 'Name must be unique.', + message: 'message.name-must-be-unique', params: [value] } : null; return err; @@ -35,7 +35,7 @@ export const BaseMetadataProviderEditor: Wizard = { return !UriValidator.isUri(value) ? { code: 'INVALID_URI', path: `#${property.path}`, - message: 'URI must be valid format.', + message: 'message.uri-valid-format', params: [value] } : null; } diff --git a/ui/src/app/metadata/provider/model/file-backed-http.provider.form.ts b/ui/src/app/metadata/provider/model/file-backed-http.provider.form.ts index 17238df3b..987a0effa 100644 --- a/ui/src/app/metadata/provider/model/file-backed-http.provider.form.ts +++ b/ui/src/app/metadata/provider/model/file-backed-http.provider.form.ts @@ -12,7 +12,7 @@ export const FileBackedHttpMetadataProviderWizard: Wizard -1 ? { code: 'INVALID_ID', path: `#${property.path}`, - message: 'ID must be unique.', + message: 'message.id-unique', params: [value] } : null; return err; @@ -22,21 +22,21 @@ export const FileBackedHttpMetadataProviderWizard: Wizard = { steps: [ { id: 'new', - label: 'Select Metadata Provider Type', + label: 'label.select-metadata-provider-type', index: 1, initialValues: [], schema: 'assets/schema/provider/metadata-provider.schema.json' diff --git a/ui/src/app/metadata/resolver/component/wizard-nav.component.html b/ui/src/app/metadata/resolver/component/wizard-nav.component.html index b17dbbd0e..34d85715b 100644 --- a/ui/src/app/metadata/resolver/component/wizard-nav.component.html +++ b/ui/src/app/metadata/resolver/component/wizard-nav.component.html @@ -1,32 +1,32 @@