This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
// The example code survey of the template (ADR-046): a short product-feedback questionnaire about
|
||||
// notes, published at deploy with the module's other code guides. It starts only when the person asks
|
||||
// for it -- the "Give feedback" button of the notes page (feedback-button.tsx) or the help offers of
|
||||
// another module (the support chat lists it by its title) -- and runs once per person.
|
||||
//
|
||||
// Answers are stored per guide version on the platform and read in the console (Guides, the survey,
|
||||
// Results); the free-text question shows a fixed hint not to enter personal data. The optional
|
||||
// `screenshot` question takes up to three images or PDFs, each up to the project's survey file size
|
||||
// (`max_file_size_mb: null`: data_policy.survey_file_max_mb, 10 MB unless configured), with the fixed
|
||||
// hint that files must not contain personal data such as identity documents; the files go through
|
||||
// this app's own server (guides.runtime.uploadFile) to the project's Blob store, and the console's
|
||||
// Results list them. The project's guide settings must allow the `survey` kind (console, Guides,
|
||||
// Settings) before it is served.
|
||||
|
||||
import { defineGuide } from "@conusai-kit/guides"
|
||||
import { guideText } from "./messages.js"
|
||||
|
||||
const t = guideText.survey
|
||||
|
||||
export const feedbackSurvey = defineGuide({
|
||||
key: "notes.feedback",
|
||||
schema_version: 1,
|
||||
kind: "survey",
|
||||
default_locale: "en",
|
||||
audience: { trait: { name: "role", in: ["owner", "admin", "member"] } },
|
||||
trigger: { manual: true },
|
||||
frequency: "once",
|
||||
survey: {
|
||||
title: t.title,
|
||||
intro: t.intro,
|
||||
questions: [
|
||||
{
|
||||
type: "rating",
|
||||
id: "ease",
|
||||
prompt: t.ease,
|
||||
required: true,
|
||||
scale: "1-5",
|
||||
low_label: t.easeLow,
|
||||
high_label: t.easeHigh,
|
||||
},
|
||||
{
|
||||
type: "single_choice",
|
||||
id: "use",
|
||||
prompt: t.use,
|
||||
required: false,
|
||||
options: [
|
||||
{ id: "meetings", label: t.useMeetings },
|
||||
{ id: "ideas", label: t.useIdeas },
|
||||
{ id: "tasks", label: t.useTasks },
|
||||
],
|
||||
allow_other: true,
|
||||
},
|
||||
{ type: "text", id: "improve", prompt: t.improve, required: false, multiline: true },
|
||||
{
|
||||
type: "file",
|
||||
id: "screenshot",
|
||||
prompt: t.screenshot,
|
||||
required: false,
|
||||
accept: ["image", "pdf"],
|
||||
max_files: 3,
|
||||
max_file_size_mb: null,
|
||||
},
|
||||
],
|
||||
submit_label: null,
|
||||
thank_you: t.thankYou,
|
||||
allow_dismiss: true,
|
||||
one_question_per_screen: true,
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user