Skip to content

Commit 0edadcb

Browse files
code rabbit suggestions implemented
1 parent a0a1214 commit 0edadcb

File tree

12 files changed

+206
-91
lines changed

12 files changed

+206
-91
lines changed

admin-ui/app/locales/en/translation.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1888,7 +1888,14 @@
18881888
"point5": "5. Copy the Policy Store URL.",
18891889
"point6": "6. Open Cedarling Policy Store configuration screen on Admin UI and add the copied Policy Store URL in Admin UI Remote Policy Store field. Set Policy Retrieval Point field to Remote to use the remote Policy Store URL for the Admin UI access control.",
18901890
"useRemotePolicyStore": "It is recommended to set it to Default for production. If set to Default, it will use the Admin-UI storage for Cedarling authorization. Enable Default mode and use the refresh button to store or update GitHub policies on the Admin-UI Server.",
1891-
"updateRemotePolicyStoreOnServer": "Click here to update the default policy-store JSON with the version available from the configured remote URL."
1891+
"updateRemotePolicyStoreOnServer": "Click here to update the default policy-store JSON with the version available from the configured remote URL.",
1892+
"policyUrlDisabledWhenDefault": "Policy URL is disabled when Default is selected.",
1893+
"policyStoreUrlInvalidError": "Policy Store URL must be a valid HTTP or HTTPS URL.",
1894+
"agamaLabPolicyDesigner": "Agama Lab's Policy Designer",
1895+
"gluuFlexAdminUiPolicyStoreDisplay": "Gluu Flex Admin UI Policy Store",
1896+
"auditPolicyStoreUrlUpdated": "Policy Store URL configuration updated",
1897+
"auditSyncRoleToScopesMappings": "Sync role to scopes mappings",
1898+
"auditSetPolicyStoreAsDefault": "Set policy store as default"
18921899
},
18931900
"mappings": {
18941901
"note_prefix": "Configure",

admin-ui/app/locales/es/translation.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1878,7 +1878,14 @@
18781878
"point5": "5. Copiar la URL del Almacén de Políticas.",
18791879
"point6": "6. Abra la pantalla de configuración del Almacén de Políticas de Cedarling en la Admin UI y agregue la URL del Almacén de Políticas copiada en el campo Almacén de Políticas Remoto de la Admin UI. Configure el campo Punto de Recuperación de Políticas como Remoto para usar la URL del Almacén de Políticas remoto para el control de acceso de la Admin UI.",
18801880
"useRemotePolicyStore": "Se recomienda establecerlo en Predeterminado para producción. Si se establece en Predeterminado, utilizará el almacenamiento de la interfaz de administración para la autorización de Cedarling. Active el modo Predeterminado y utilice el botón de actualización para guardar o actualizar las políticas de GitHub en el servidor de la interfaz de administración.",
1881-
"updateRemotePolicyStoreOnServer": "Haga clic aquí para actualizar el JSON del almacén de políticas predeterminado con la versión disponible en la URL remota configurada."
1881+
"updateRemotePolicyStoreOnServer": "Haga clic aquí para actualizar el JSON del almacén de políticas predeterminado con la versión disponible en la URL remota configurada.",
1882+
"policyUrlDisabledWhenDefault": "La URL de la política está deshabilitada cuando se selecciona Predeterminado.",
1883+
"policyStoreUrlInvalidError": "La URL del almacén de políticas debe ser una URL HTTP o HTTPS válida.",
1884+
"agamaLabPolicyDesigner": "Diseñador de políticas de Agama Lab",
1885+
"gluuFlexAdminUiPolicyStoreDisplay": "Gluu Flex Admin UI Policy Store",
1886+
"auditPolicyStoreUrlUpdated": "Configuración de la URL del almacén de políticas actualizada",
1887+
"auditSyncRoleToScopesMappings": "Sincronizar función con asignaciones de ámbitos",
1888+
"auditSetPolicyStoreAsDefault": "Establecer almacén de políticas predeterminado"
18821889
},
18831890
"mappings": {
18841891
"note_prefix": "Configurar",

admin-ui/app/locales/fr/translation.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1739,7 +1739,14 @@
17391739
"point5": "5. Copier l’URL du magasin de politiques.",
17401740
"point6": "6. Ouvrez l’écran de configuration du magasin de politiques Cedarling dans l’Admin UI et ajoutez l’URL du magasin de politiques copiée dans le champ Magasin de politiques distant de l’Admin UI. Définissez le champ Point de récupération des politiques sur Distant afin d’utiliser l’URL du magasin de politiques distant pour le contrôle d’accès de l’Admin UI.",
17411741
"useRemotePolicyStore": "Il est recommandé de définir cette option sur « Par défaut » en production. Si cette option est définie, le stockage de l’interface d’administration sera utilisé pour l’autorisation Cedarling. Activez le mode « Par défaut » et utilisez le bouton d’actualisation pour enregistrer ou mettre à jour les politiques GitHub sur le serveur de l’interface d’administration.",
1742-
"updateRemotePolicyStoreOnServer": "Cliquez ici pour mettre à jour le fichier JSON du magasin de politiques par défaut avec la version disponible à partir de l'URL distante configurée."
1742+
"updateRemotePolicyStoreOnServer": "Cliquez ici pour mettre à jour le fichier JSON du magasin de politiques par défaut avec la version disponible à partir de l'URL distante configurée.",
1743+
"policyUrlDisabledWhenDefault": "L'URL de la stratégie est désactivée lorsque Par défaut est sélectionné.",
1744+
"policyStoreUrlInvalidError": "L'URL du magasin de politiques doit être une URL HTTP ou HTTPS valide.",
1745+
"agamaLabPolicyDesigner": "Concepteur de stratégies Agama Lab",
1746+
"gluuFlexAdminUiPolicyStoreDisplay": "Gluu Flex Admin UI Policy Store",
1747+
"auditPolicyStoreUrlUpdated": "Configuration de l'URL du magasin de politiques mise à jour",
1748+
"auditSyncRoleToScopesMappings": "Synchroniser les rôles avec les mappages de portées",
1749+
"auditSetPolicyStoreAsDefault": "Définir le magasin de politiques par défaut"
17431750
},
17441751
"mappings": {
17451752
"note_prefix": "Configure",

admin-ui/app/locales/pt/translation.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1732,7 +1732,14 @@
17321732
"point5": "5. Copiar a URL do Repositório de Políticas.",
17331733
"point6": "6. Abra a tela de configuração do Repositório de Políticas Cedarling na Admin UI e adicione a URL do Repositório de Políticas copiada no campo Repositório de Políticas Remoto da Admin UI. Defina o campo Ponto de Recuperação de Políticas como Remoto para usar a URL do Repositório de Políticas remoto para o controle de acesso da Admin UI.",
17341734
"useRemotePolicyStore": "Recomenda-se definir como Padrão para a produção. Se definido como Padrão, será utilizado o armazenamento da interface administrativa para a autorização do Cedarling. Ative o modo Padrão e utilize o botão de atualização para armazenar ou atualizar as políticas do GitHub no servidor da interface administrativa.",
1735-
"updateRemotePolicyStoreOnServer": "Clique aqui para atualizar o JSON do repositório de políticas padrão com a versão disponível no URL remoto configurado."
1735+
"updateRemotePolicyStoreOnServer": "Clique aqui para atualizar o JSON do repositório de políticas padrão com a versão disponível no URL remoto configurado.",
1736+
"policyUrlDisabledWhenDefault": "O URL da política está desativado quando Predefinido está selecionado.",
1737+
"policyStoreUrlInvalidError": "O URL do repositório de políticas deve ser um URL HTTP ou HTTPS válido.",
1738+
"agamaLabPolicyDesigner": "Agama Lab's Policy Designer",
1739+
"gluuFlexAdminUiPolicyStoreDisplay": "Gluu Flex Admin UI Policy Store",
1740+
"auditPolicyStoreUrlUpdated": "Configuração do URL do repositório de políticas atualizada",
1741+
"auditSyncRoleToScopesMappings": "Sincronizar função com mapeamentos de âmbitos",
1742+
"auditSetPolicyStoreAsDefault": "Definir repositório de políticas predefinido"
17361743
},
17371744
"mappings": {
17381745
"note_prefix": "Configurar",

admin-ui/app/routes/Apps/Gluu/GluuFormFooter.tsx

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,21 @@ type GluuFormFooterProps = GluuFormFooterBaseProps &
2929
| { applyButtonType: 'button'; onApply: () => void }
3030
)
3131

32+
const COMMON_BUTTON_STYLE = {
33+
minHeight: BUTTON_STYLES.height,
34+
padding: `${BUTTON_STYLES.paddingY}px ${BUTTON_STYLES.paddingX}px`,
35+
borderRadius: BUTTON_STYLES.borderRadius,
36+
fontSize: BUTTON_STYLES.fontSize,
37+
fontWeight: BUTTON_STYLES.fontWeight,
38+
letterSpacing: BUTTON_STYLES.letterSpacing,
39+
}
40+
41+
const SHARED_BUTTON_PROPS = {
42+
useOpacityOnHover: true,
43+
hoverOpacity: 0.85,
44+
style: COMMON_BUTTON_STYLE,
45+
}
46+
3247
const GluuFormFooter = ({
3348
showBack,
3449
backButtonLabel,
@@ -90,18 +105,6 @@ const GluuFormFooter = ({
90105
)
91106
const applyLabel = useMemo(() => applyButtonLabel || t('actions.apply'), [applyButtonLabel, t])
92107

93-
const commonButtonStyle = useMemo(
94-
() => ({
95-
minHeight: BUTTON_STYLES.height,
96-
padding: `${BUTTON_STYLES.paddingY}px ${BUTTON_STYLES.paddingX}px`,
97-
borderRadius: BUTTON_STYLES.borderRadius,
98-
fontSize: BUTTON_STYLES.fontSize,
99-
fontWeight: BUTTON_STYLES.fontWeight,
100-
letterSpacing: BUTTON_STYLES.letterSpacing,
101-
}),
102-
[],
103-
)
104-
105108
if (!buttonStates.hasAnyButton) {
106109
return null
107110
}
@@ -118,9 +121,7 @@ const GluuFormFooter = ({
118121
backgroundColor={buttonColors.back.backgroundColor}
119122
textColor={buttonColors.back.textColor}
120123
borderColor={buttonColors.back.borderColor}
121-
useOpacityOnHover
122-
hoverOpacity={0.85}
123-
style={commonButtonStyle}
124+
{...SHARED_BUTTON_PROPS}
124125
>
125126
{backLabel}
126127
</GluuButton>
@@ -136,9 +137,7 @@ const GluuFormFooter = ({
136137
backgroundColor={buttonColors.apply.backgroundColor}
137138
textColor={buttonColors.apply.textColor}
138139
borderColor={buttonColors.apply.borderColor}
139-
useOpacityOnHover
140-
hoverOpacity={0.85}
141-
style={commonButtonStyle}
140+
{...SHARED_BUTTON_PROPS}
142141
>
143142
{applyLabel}
144143
</GluuButton>
@@ -157,9 +156,7 @@ const GluuFormFooter = ({
157156
backgroundColor={buttonColors.apply.backgroundColor}
158157
textColor={buttonColors.apply.textColor}
159158
borderColor={buttonColors.apply.borderColor}
160-
useOpacityOnHover
161-
hoverOpacity={0.85}
162-
style={commonButtonStyle}
159+
{...SHARED_BUTTON_PROPS}
163160
>
164161
{applyLabel}
165162
</GluuButton>
@@ -175,9 +172,7 @@ const GluuFormFooter = ({
175172
textColor={buttonColors.cancel.textColor}
176173
borderColor={buttonColors.cancel.borderColor}
177174
outlined={buttonColors.cancel.outlined}
178-
useOpacityOnHover
179-
hoverOpacity={0.85}
180-
style={commonButtonStyle}
175+
{...SHARED_BUTTON_PROPS}
181176
>
182177
{cancelLabel}
183178
</GluuButton>

admin-ui/app/utils/regex.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,9 @@
11
/** Trailing period at end of string - used to strip trailing dots from status messages etc. */
22
export const REGEX_TRAILING_PERIOD = /\.$/
3+
4+
/** Replace characters that are invalid in HTML id attributes (keep alphanumeric, underscore, hyphen). */
5+
export const REGEX_ID_SANITIZE_CHARS = /[^a-zA-Z0-9_-]/g
6+
/** Collapse consecutive hyphens into one. */
7+
export const REGEX_ID_COLLAPSE_HYPHENS = /-+/g
8+
/** Remove leading and trailing hyphens. */
9+
export const REGEX_ID_TRIM_HYPHENS = /^-|-$/g

admin-ui/plugins/admin/components/Cedarling/CedarlingConfigPage.style.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ const useStyles = makeStyles<{ themeColors: CedarlingConfigThemeColors; isDark:
8181
color: themeColors.alertText,
8282
},
8383
inputSection: {
84-
marginBottom: CEDARLING_CONFIG_SPACING.INPUT_TO_RADIO,
84+
'marginBottom': CEDARLING_CONFIG_SPACING.INPUT_TO_RADIO,
85+
'& .MuiFormHelperText-root': {
86+
marginLeft: 0,
87+
paddingLeft: 0,
88+
},
8589
},
8690
fieldLabel: {
8791
...sectionLabelBase,
@@ -102,6 +106,16 @@ const useStyles = makeStyles<{ themeColors: CedarlingConfigThemeColors; isDark:
102106
'&.Mui-focused fieldset': {
103107
borderColor: customColors.lightBlue,
104108
},
109+
'&.Mui-disabled': {
110+
'& .MuiInputBase-input': {
111+
'color': themeColors.text,
112+
'WebkitTextFillColor': themeColors.text,
113+
'&::placeholder': {
114+
color: themeColors.placeholderText,
115+
opacity: 0.6,
116+
},
117+
},
118+
},
105119
},
106120
'& .MuiInputBase-input': {
107121
'color': themeColors.text,
@@ -148,6 +162,10 @@ const useStyles = makeStyles<{ themeColors: CedarlingConfigThemeColors; isDark:
148162
color: isDark ? customColors.cedarTextSecondaryDark : customColors.cedarInfoTextLight,
149163
marginTop: CEDARLING_CONFIG_SPACING.HELPER_MT,
150164
},
165+
inputHelperText: {
166+
marginLeft: 0,
167+
paddingLeft: 0,
168+
},
151169
fieldRow: {
152170
display: 'flex',
153171
alignItems: 'flex-start',

0 commit comments

Comments
 (0)