feat(labels): implement label update functionality and enhance UI
- Added `updateLabel` method in `LabelsController` to handle label updates with validation for name and color. - Updated API routes to include the new label update endpoint. - Introduced `LabelsDrawer` component for editing labels, including a color picker and form validation. - Enhanced localization files to support new UI strings for label management. - Implemented a new `LabelsSettings` page to manage labels with search and edit capabilities. - Improved color handling with a comprehensive color palette for better user experience.
This commit is contained in:
@@ -80,6 +80,37 @@ export default class LabelsController extends WorklenzControllerBase {
|
||||
return res.status(200).send(new ServerResponse(true, result.rows));
|
||||
}
|
||||
|
||||
@HandleExceptions()
|
||||
public static async updateLabel(req: IWorkLenzRequest, res: IWorkLenzResponse): Promise<IWorkLenzResponse> {
|
||||
const updates = [];
|
||||
const values = [req.params.id, req.user?.team_id];
|
||||
let paramIndex = 3;
|
||||
|
||||
if (req.body.name) {
|
||||
updates.push(`name = $${paramIndex++}`);
|
||||
values.push(req.body.name);
|
||||
}
|
||||
|
||||
if (req.body.color) {
|
||||
if (!WorklenzColorCodes.includes(req.body.color))
|
||||
return res.status(400).send(new ServerResponse(false, null));
|
||||
updates.push(`color_code = $${paramIndex++}`);
|
||||
values.push(req.body.color);
|
||||
}
|
||||
|
||||
if (updates.length === 0) {
|
||||
return res.status(400).send(new ServerResponse(false, "No valid fields to update"));
|
||||
}
|
||||
|
||||
const q = `UPDATE team_labels
|
||||
SET ${updates.join(', ')}
|
||||
WHERE id = $1
|
||||
AND team_id = $2;`;
|
||||
|
||||
const result = await db.query(q, values);
|
||||
return res.status(200).send(new ServerResponse(true, result.rows));
|
||||
}
|
||||
|
||||
@HandleExceptions()
|
||||
public static async deleteById(req: IWorkLenzRequest, res: IWorkLenzResponse): Promise<IWorkLenzResponse> {
|
||||
const q = `DELETE
|
||||
|
||||
Reference in New Issue
Block a user