Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import PropTypes from "prop-types";
import { createUseStyles, useTheme } from "react-jss";
import clsx from "clsx";
import RuleLabel from "../Common/RuleLabel";
import AccordionToolTip from "../../ToolTip/AccordionToolTip";

const useStyles = createUseStyles(theme => ({
rowContainer: {
Expand Down Expand Up @@ -82,6 +83,14 @@ const ProjectLevelRuleInput = ({
// user first touches the input field to display the text of the error message.
const [showValidationErrors, setShowValidationErrors] = useState(false);
const [showDescription, setShowDescription] = useState(false);
const [isEditing, setIsEditing] = useState(false);
const [localDescription, setLocalDescription] = useState(description);

// Add callback to handle description updates
const handleDescriptionUpdate = newDescription => {
setLocalDescription(newDescription);
setIsEditing(false); // Close editing mode
};

const onInputChange = e => {
setShowValidationErrors(true);
Expand All @@ -108,6 +117,7 @@ const ProjectLevelRuleInput = ({
name={name}
setShowDescription={setShowDescription}
showDescription={showDescription}
setIsEditing={setIsEditing}
/>
</div>
<div className={classes.rowItem2}>
Expand Down Expand Up @@ -155,8 +165,9 @@ const ProjectLevelRuleInput = ({
required={required}
link={link}
name={name}
className={classes.rowItem1}
setShowDescription={setShowDescription}
showDescription={showDescription}
setIsEditing={setIsEditing}
/>
<div
className={classes.rowItem2}
Expand Down Expand Up @@ -190,6 +201,15 @@ const ProjectLevelRuleInput = ({
</div>
</div>
) : null}
{(showDescription && localDescription) || isEditing ? (
<AccordionToolTip
description={localDescription || ""}
setShowDescription={setShowDescription}
id={id}
forceEditMode={isEditing}
onEditDescription={handleDescriptionUpdate}
/>
) : null}
</React.Fragment>
);
};
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
CREATE or ALTER PROCEDURE [dbo].[CalculationRule_UpdateDescription]
(@id INT,
@loginId INT,
@description NVARCHAR(MAX)
)
AS
BEGIN
SET NOCOUNT ON;

IF NOT EXISTS (
SELECT 1
FROM [dbo].[Login]
WHERE [id] = @loginId
AND [isAdmin] = 1
)
BEGIN
RAISERROR('Access denied. User must have admin privileges to update calculation rule description.', 16, 1);
RETURN;
END
IF NOT EXISTS (
SELECT 1
FROM [dbo].[CalculationRule]
WHERE [id] = @id
)
BEGIN
RAISERROR('Calculation rule with ID %d does not exist.', 16, 1, @id);
RETURN;
END
UPDATE [dbo].[CalculationRule]
SET [description] = @description
WHERE [id] = @id;

SELECT 'Description updated successfully' AS Result;
END
Loading