1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-22 22:59:44 +02:00

Add GitHub link field to tasks

Add a custom field named "Github Link" to tasks and display it in the frontend.

* Add `githubLink` attribute to the `Task` model in `client/src/models/Task.js`.
* Update `createTask` and `updateTask` actions in `client/src/actions/tasks.js` to handle the `githubLink` attribute.
* Add input field for `githubLink` in `CardModal` component in `client/src/components/CardModal/CardModal.jsx`.
  * Display `githubLink` as a clickable link when filled in.
  * Display a button that expands into an input field when `githubLink` is not filled in.
* Include `githubLink` attribute in card data retrieval logic in `server/api/controllers/cards/show.js`.
* Include `githubLink` attribute in card data updating logic in `server/api/controllers/cards/update.js`.
* Add validation function for `githubLink` in `client/src/utils/validator.js`.
* Add unit tests for `githubLink` field in `client/src/components/CardModal/CardModal.test.js`.
  * Test display of `githubLink` as a clickable link when filled in.
  * Test display of button to add `githubLink` when not filled in.
  * Test input field display when add `githubLink` button is clicked.
  * Test `onUpdate` call with `githubLink` when save button is clicked.
  * Test validation of `githubLink` format.
This commit is contained in:
Mikhail Khromov 2025-02-26 21:56:32 +03:00
parent b88a2894b6
commit bcc92dfa76
6 changed files with 193 additions and 2 deletions

8
server/api/controllers/cards/show.js Executable file → Normal file
View file

@ -46,12 +46,18 @@ module.exports = {
const tasks = await sails.helpers.cards.getTasks(card.id);
const attachments = await sails.helpers.cards.getAttachments(card.id);
// Include the githubLink attribute in the tasks
const tasksWithGithubLink = tasks.map((task) => ({
...task,
githubLink: task.githubLink || null,
}));
return {
item: card,
included: {
cardMemberships,
cardLabels,
tasks,
tasks: tasksWithGithubLink,
attachments,
},
};