From ed950c3c9b83ad8d79d54e5716f92150d09a899b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Fri, 27 Mar 2020 18:30:38 +0100 Subject: [PATCH] New answer menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- css/icons.scss | 3 + img/answer-checkbox.svg | 4 ++ img/answer-long.svg | 86 ++++++++++++++++++++++++++ img/answer-short.svg | 68 ++++++++++++++++++++ src/components/EmptyContent.vue | 3 + src/models/{Form.js => AnswerTypes.js} | 57 ++++++++--------- src/views/Create.vue | 63 ++++++++++++++----- 7 files changed, 236 insertions(+), 48 deletions(-) create mode 100644 img/answer-checkbox.svg create mode 100644 img/answer-long.svg create mode 100644 img/answer-short.svg rename src/models/{Form.js => AnswerTypes.js} (62%) diff --git a/css/icons.scss b/css/icons.scss index a799705..b5b9b20 100644 --- a/css/icons.scss +++ b/css/icons.scss @@ -2,6 +2,9 @@ // Icon definitions @include icon-black-white('forms', 'forms', 3); @include icon-black-white('clone', 'forms', 1); +@include icon-black-white('answer-short', 'forms', 1); +@include icon-black-white('answer-long', 'forms', 1); +@include icon-black-white('answer-checkbox', 'forms', 1); .icon-yes { @include icon-color('checkmark', 'actions', $color-success, 1, true); diff --git a/img/answer-checkbox.svg b/img/answer-checkbox.svg new file mode 100644 index 0000000..181c78b --- /dev/null +++ b/img/answer-checkbox.svg @@ -0,0 +1,4 @@ + + + + diff --git a/img/answer-long.svg b/img/answer-long.svg new file mode 100644 index 0000000..e69e7ca --- /dev/null +++ b/img/answer-long.svg @@ -0,0 +1,86 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/img/answer-short.svg b/img/answer-short.svg new file mode 100644 index 0000000..1f056aa --- /dev/null +++ b/img/answer-short.svg @@ -0,0 +1,68 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/src/components/EmptyContent.vue b/src/components/EmptyContent.vue index 7047d18..c9e788b 100644 --- a/src/components/EmptyContent.vue +++ b/src/components/EmptyContent.vue @@ -46,6 +46,9 @@ export default { diff --git a/src/models/Form.js b/src/models/AnswerTypes.js similarity index 62% rename from src/models/Form.js rename to src/models/AnswerTypes.js index 943e760..cdfdb06 100644 --- a/src/models/Form.js +++ b/src/models/AnswerTypes.js @@ -20,34 +20,29 @@ * */ -export default class { - - #data - - /** - * Construct the form - * @param {Object} data the form data - */ - constructor(data) { - // Id check - if (!('id' in data && typeof data.id === 'number')) { - throw new Error('A new form must at least contain a valid id') - } - - // Hash check - if (!('hash' in data && typeof data.id === 'string')) { - throw new Error('A new form must at least contain a valid hash') - } - - this.#data = data - } - - get id() { - return this.#data.id - } - - get hash() { - return this.#data.hash - } - -} +export default [ + { + label: t('forms', 'Multiple choice'), + value: 'radiogroup', + icon: 'icon-forms', + }, + { + label: t('forms', 'Checkboxes'), + value: 'checkbox', + icon: 'icon-answer-checkbox', + }, + { + label: t('forms', 'Short answer'), + value: 'text', + icon: 'icon-answer-short', + }, + { + label: t('forms', 'Long text'), + value: 'comment', + icon: 'icon-answer-long', + }, + // { + // label: 'Drop Down', + // value: 'dropdown', + // }, +] diff --git a/src/views/Create.vue b/src/views/Create.vue index 7fce597..dd2cf60 100644 --- a/src/views/Create.vue +++ b/src/views/Create.vue @@ -47,6 +47,7 @@ :minlength="0" :placeholder="t('forms', 'Title')" :required="true" + autofocus type="text">