diff --git a/pkg/webui/console/containers/mac-settings-profile-form/index.js b/pkg/webui/console/containers/mac-settings-profile-form/index.js index 9dc4b49a05..119c5cd4cd 100644 --- a/pkg/webui/console/containers/mac-settings-profile-form/index.js +++ b/pkg/webui/console/containers/mac-settings-profile-form/index.js @@ -622,8 +622,10 @@ const MACSettingsProfileForm = ({ edit, macSettingsProfile, macSettingsProfileId } : Boolean(macSettingsProfile?.mac_settings?.adr?.static) ? { - ...initialValues.mac_settings.adr, - ...macSettingsProfile.mac_settings.adr, + static: { + ...initialValues.mac_settings.adr.static, + ...macSettingsProfile.mac_settings.adr.static, + }, } : { disabled: {}, @@ -659,7 +661,7 @@ const MACSettingsProfileForm = ({ edit, macSettingsProfile, macSettingsProfileId const handleEdit = useCallback( async (_, { setSubmitting }, cleanedValues) => { - const profileDiff = diff(macSettingsProfile, cleanedValues) + const profileDiff = diff(parsedInitialValues, cleanedValues) try { if (!isEmpty(profileDiff)) { profileDiff.ids = { @@ -686,7 +688,7 @@ const MACSettingsProfileForm = ({ edit, macSettingsProfile, macSettingsProfileId setError(error) } }, - [appId, dispatch, macSettingsProfile, macSettingsProfileId], + [appId, dispatch, parsedInitialValues, macSettingsProfileId], ) return ( diff --git a/sdk/js/src/service/network-server-mac-settings-profiles.js b/sdk/js/src/service/network-server-mac-settings-profiles.js index 522f2b3fe9..f97a6ed714 100644 --- a/sdk/js/src/service/network-server-mac-settings-profiles.js +++ b/sdk/js/src/service/network-server-mac-settings-profiles.js @@ -57,6 +57,13 @@ class NsMACSettingsProfiles { } async update(applicationId, macSettingsProfileId, patch) { + const fieldMaskPaths = Marshaler.fieldMaskFromPatch( + patch, + this._api.UpdateAllowedFieldMaskPaths, + ) + const fieldMaskPathsWithoutAncestors = fieldMaskPaths.filter( + path => !fieldMaskPaths.some(other => other !== path && other.startsWith(`${path}.`)), + ) const result = await this._api.Update( { routeParams: { @@ -65,11 +72,8 @@ class NsMACSettingsProfiles { }, }, { - mac_settings_profile_ids: { - application_ids: { application_id: applicationId }, - profile_id: macSettingsProfileId, - }, mac_settings_profile: patch, + field_mask: { paths: fieldMaskPathsWithoutAncestors }, }, ) return Marshaler.payloadSingleResponse(result)