{"id":25176222,"url":"https://github.com/redturtle/volto-feedback","last_synced_at":"2025-05-06T23:18:50.463Z","repository":{"id":142748344,"uuid":"596584299","full_name":"RedTurtle/volto-feedback","owner":"RedTurtle","description":"Volto addon for end-user feedbacks","archived":false,"fork":false,"pushed_at":"2025-03-21T10:51:42.000Z","size":1555,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-05-06T23:18:46.859Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedTurtle.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-02T14:03:10.000Z","updated_at":"2025-03-21T10:51:45.000Z","dependencies_parsed_at":"2024-04-17T12:51:07.485Z","dependency_job_id":"f8a2e038-61d5-422a-84f1-a634e29d8b2a","html_url":"https://github.com/RedTurtle/volto-feedback","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedTurtle%2Fvolto-feedback","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedTurtle%2Fvolto-feedback/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedTurtle%2Fvolto-feedback/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedTurtle%2Fvolto-feedback/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedTurtle","download_url":"https://codeload.github.com/RedTurtle/volto-feedback/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252782912,"owners_count":21803418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-09T13:16:40.518Z","updated_at":"2025-05-06T23:18:50.456Z","avatar_url":"https://github.com/RedTurtle.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# volto-feedback\n\nVolto addon for end-user feedbacks.\n\nInstall with mrs-developer (see [Volto docs](https://docs.voltocms.com/customizing/add-ons/)) or with:\n\n```bash\nyarn add volto-feedback\n```\n\nIt requires \u003chttps://github.com/RedTurtle/collective.feedback\u003e installed into the backend.\n\n**Please consult Version and breaking changes section for more information on versions and breaking changes**\n\n## Usage\n\nThis addons exports FeedbackForm component that could be added in your site pages to get feedback from users on the usefulness of the page through rating, commenting and choosing an answer from a predefined set.\n\n```jsx\nimport { FeedbackForm } from 'volto-feedback';\n\n...\n\u003cFeedbackForm/\u003e\n...\n```\n\nIt features a set of fully customizable form steps, rating threshold and questions for the form, which can be set using standard Volto config schema. Otherwise, it defaults to 5 positive and 5 negative set of questions (optional) and a comment (optional).\nAnswers shown are dependant on user feedback, with a default threshold of 3.5 that sets positive and negative feedbacks answers apart.\nThis is the default configuration:\n\n```jsx\n    ...\n    config.settings['volto-feedback'] = {\n        feedbackThreshold: FEEDBACK_THRESHOLD,\n        questions: {\n        negativeFeedback: NEGATIVE_FEEDBACK_QUESTIONS,\n        positiveFeedback: POSITIVE_FEEDBACK_QUESTIONS,\n        },\n\n        formSteps: [\n        {\n            step: 0,\n            pane: AnswersStep,\n        },\n        {\n            step: 1,\n            pane: CommentsStep,\n        },\n        ],\n        /*\n        Additional columns to display in comments table, for example if i customize steps.\n        If component attribute is undefined, the simple value is displayed.\n        Example:\n        { id: 'email', label: 'Email', component: null },\n        */\n        additionalCommentFields: [\n        ],\n        /* Enable Feedback component in your CMS/Non content routes.\n        Example:\n        { path: '/sitemap', feedbackTitle: messages.sitemap_ft },\n        { path: '/search', feedbackTitle: messages.search_brdc },\n        */\n        feedbackEnabledNonContentRoutes: [],\n    };\n    ...\n```\n\nAll exported components, actions and helpers can be directly customized using standard Volto customization pattern. This is the list of available exports:\n\n```jsx\nexport {\n  submitFeedback,\n  exportCsvFeedbackData,\n  deleteAllFeedbacks,\n  getFeedback,\n  getFeedbacks,\n  deleteFeedback,\n  resetSubmitFeedback,\n  resetDeleteFeedback,\n  updateFeedback,\n  updateFeedbackList,\n} from 'volto-feedback/actions';\nexport {\n  getFeedbackFormSteps,\n  getFeedbackFormByStep,\n  getFeedbackQuestions,\n  getFeedbackThreshold,\n  getTranslatedQuestion,\n  generateFeedbackCommentUUID,\n  getNumberOfSteps,\n  isFeedbackEnabledForRoute,\n  getFeedbackEnabledNonContentRoutes,\n  getStaticFeedbackRouteTitle,\n  getFeedbackEnabledNonContentRoutesPathList,\n} from 'volto-feedback/helpers';\n\nexport {\n  GoogleReCaptchaWidget,\n  HoneypotWidget,\n} from 'volto-feedback/components/widgets';\nexport {\n  AnswersStep,\n  CommentsStep,\n  FeedbackForm,\n  FormHeader,\n} from 'volto-feedback/components';\nexport {\n  VFPanel,\n  VFToolbar,\n  VFPanelMenu,\n  FeedbackComments,\n} from 'volto-feedback/components/manage';\n```\n\nIt also need a RAZZLE_RECAPTCHA_KEY in your .env to work or RAZZLE_HONEYPOT_FIELD env var.\n\n## Versions and breaking changes\n\n### Important notice\n\nVersion 0.6.x includes breaking changes to the underlying service `@feedback-add`.\nFor full compatibility, you must install version 1.2.x in the backend.\n\nVersion 0.6.x adds optional configuration to enable feedback for non content routes/cms routes. To do this, the call to the associated Plone service is no longer contextual. Determining the context is done via a new param in the body of the request: `content`.\n\n```jsx\n const path = location.pathname ?? '/';\n ...\n const sendFormData = () =\u003e {\n    const data = {\n      ...formData,\n      ...(captcha \u0026\u0026 { 'g-recaptcha-response': validToken }),\n      answer: getTranslatedQuestion(intl, formData.answer),\n      content:\n        isFeedbackEnabledForRoute(path) \u0026\u0026 isCmsUi(path)\n          ? getStaticFeedbackRouteTitle(path)\n          : path,\n    };\n    dispatch(submitFeedback(path, data));\n  };\n  ...\n```\n\nThis will be the current pathname, or the title of the non content routes/cms routes enabled in the configuration settings:\n\n```js\n    'volto-feedback': {\n      ...config.settings['volto-feedback'],\n        /* Enable Feedback component in your CMS/Non content routes. */\n      feedbackEnabledNonContentRoutes: [\n        { path: '/sitemap', feedbackTitle: messages.sitemap_ft },\n        { path: '/search', feedbackTitle: messages.search_brdc }\n      ],\n    }\n```\n\n## Translations\n\nThis addon has Italian and English localizations.\n\n## Feedback Form\n\nFeedbackForm is a component that can be added anywhere.\n![image](https://user-images.githubusercontent.com/41484878/216962241-fa88d610-9fc7-4831-ac69-fd6e34655c71.png)\n\nForm fields, answers and comments section may vary depending on selected threshold and your own configurations, these are the default ones:\n![image](https://user-images.githubusercontent.com/41484878/216961741-404f357d-70fb-474b-989c-96bd51cfada1.png)\n![image](https://user-images.githubusercontent.com/41484878/216961998-a4c1e7fa-1bd1-4349-a15a-1083c11c60de.png)\n![image](https://user-images.githubusercontent.com/41484878/216962045-8086eb14-de68-4cbf-a6c4-6d2e4d993332.png)\n\nOnce a feedback is submitted, a success message is shown to the user:\n![image](https://user-images.githubusercontent.com/41484878/216962200-b450216e-9a02-4d51-be3d-75b8a912df01.png)\n\n## Panel\n\nThis addon also adds a button to the toolbar to access feedbacks panel:\n\n![image](https://user-images.githubusercontent.com/41484878/216961401-527799d9-d336-488e-864e-cb919c4f4d8c.png)\n\nInto the panel, you can view a summary of feedbacks and answers/comments with respective ratings:\n\n![image](https://user-images.githubusercontent.com/41484878/216961272-72ecd260-9aa2-485e-9483-2a210b83901a.png)\n\nComments are shown in a modal and are filterable by vote and rating datetime:\n![image](https://user-images.githubusercontent.com/41484878/216961506-b9d1e225-f36d-4c7f-a26c-c61794764fbc.png)\n\n## Honeypot integration\n\nIf you want to use Honeypot, you have to set env var RAZZLE_HONEYPOT_FIELD with the same value of the HONEYPOT_FIELD env var set on plone backend.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredturtle%2Fvolto-feedback","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredturtle%2Fvolto-feedback","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredturtle%2Fvolto-feedback/lists"}