diff --git a/.editorconfig b/.editorconfig index 059cd56..0689e41 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,25 +1,9 @@ -# EditorConfig is awesome: http://EditorConfig.org - -# top-most EditorConfig file root = true -# Unix-style newlines with a newline ending every file [*] -end_of_line = lf -insert_final_newline = true - -# Set default charset charset = utf-8 - -# 4 space tab indentation indent_style = tab indent_size = 4 - -# Line length form NC coding guidelines -trim_trailing_whitespace = true -max_line_length = 80 - -# 2 space indentation for .yml files -[.*.yml] -indent_style = space -indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file diff --git a/babel.config.js b/babel.config.js index fb0cc3b..ff18494 100644 --- a/babel.config.js +++ b/babel.config.js @@ -2,8 +2,11 @@ module.exports = { plugins: ['@babel/plugin-syntax-dynamic-import'], presets: [ [ - '@babel/preset-env' - ] - ] + '@babel/preset-env', + { + corejs: 3, + useBuiltIns: 'entry', + }, + ], + ], } - diff --git a/css/forms.scss b/css/forms.scss index 93649ee..a9dedc5 100644 --- a/css/forms.scss +++ b/css/forms.scss @@ -20,4 +20,11 @@ * */ -@import 'icons' +// Various variables used by this app +:root { + --header-height: $header-height; + --top-bar-height: 60px; +} + +@import 'variables'; +@import 'icons'; diff --git a/css/icons.scss b/css/icons.scss index b5b9b20..9c651ba 100644 --- a/css/icons.scss +++ b/css/icons.scss @@ -5,6 +5,8 @@ @include icon-black-white('answer-short', 'forms', 1); @include icon-black-white('answer-long', 'forms', 1); @include icon-black-white('answer-checkbox', 'forms', 1); +@include icon-black-white('answer-multiple', 'forms', 1); +@include icon-black-white('drag-handle', '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 index 32ee6ef..ccf0a48 100644 --- a/img/answer-checkbox.svg +++ b/img/answer-checkbox.svg @@ -1,4 +1,3 @@ - - + diff --git a/img/answer-multiple.svg b/img/answer-multiple.svg new file mode 100644 index 0000000..6b95854 --- /dev/null +++ b/img/answer-multiple.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/drag-handle.svg b/img/drag-handle.svg new file mode 100644 index 0000000..c062d7d --- /dev/null +++ b/img/drag-handle.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index 31a1d5d..8962e40 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -107,7 +107,7 @@ class PageController extends Controller { */ public function index(): TemplateResponse { Util::addScript($this->appName, 'forms'); - Util::addStyle($this->appName, 'icons'); + Util::addStyle($this->appName, 'forms'); return new TemplateResponse($this->appName, 'main'); } @@ -119,7 +119,7 @@ class PageController extends Controller { */ public function createForm(): TemplateResponse { Util::addScript($this->appName, 'forms'); - Util::addStyle($this->appName, 'icons'); + Util::addStyle($this->appName, 'forms'); return new TemplateResponse($this->appName, 'main'); } @@ -131,7 +131,7 @@ class PageController extends Controller { */ public function cloneForm(): TemplateResponse { Util::addScript($this->appName, 'forms'); - Util::addStyle($this->appName, 'icons'); + Util::addStyle($this->appName, 'forms'); return new TemplateResponse($this->appName, 'main'); } @@ -143,7 +143,7 @@ class PageController extends Controller { */ public function editForm(): TemplateResponse { Util::addScript($this->appName, 'forms'); - Util::addStyle($this->appName, 'icons'); + Util::addStyle($this->appName, 'forms'); return new TemplateResponse($this->appName, 'main'); } @@ -155,7 +155,7 @@ class PageController extends Controller { */ public function getResult(): TemplateResponse { Util::addScript($this->appName, 'forms'); - Util::addStyle($this->appName, 'icons'); + Util::addStyle($this->appName, 'forms'); return new TemplateResponse($this->appName, 'main'); } diff --git a/package-lock.json b/package-lock.json index 2dcc466..68590fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1658,9 +1658,15 @@ } }, "core-js": { +<<<<<<< HEAD "version": "3.6.4", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" +======= + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.1.tgz", + "integrity": "sha512-186WjSik2iTGfDjfdCZAxv2ormxtKgemjC3SI6PL31qOA0j5LhTDVjHChccoc7brwLvpvLPiMyRlcO88C4l1QQ==" +>>>>>>> f89f534... fixup! New question ui } } }, @@ -3469,9 +3475,15 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { +<<<<<<< HEAD "version": "3.6.5", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" +======= + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" +>>>>>>> f89f534... fixup! New question ui }, "core-js-compat": { "version": "3.6.5", @@ -3591,6 +3603,11 @@ "randomfill": "^1.0.3" } }, + "crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", + "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" + }, "css-loader": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.2.tgz", @@ -9374,9 +9391,9 @@ } }, "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" }, "regenerator-transform": { "version": "0.14.4", @@ -10001,6 +10018,11 @@ } } }, + "sortablejs": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz", + "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==" + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -11866,6 +11888,14 @@ "date-format-parse": "^0.2.5" } }, + "vuedraggable": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.23.2.tgz", + "integrity": "sha512-PgHCjUpxEAEZJq36ys49HfQmXglattf/7ofOzUrW2/rRdG7tu6fK84ir14t1jYv4kdXewTEa2ieKEAhhEMdwkQ==", + "requires": { + "sortablejs": "^1.10.1" + } + }, "watchpack": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz", diff --git a/package.json b/package.json index d362b9f..9496808 100644 --- a/package.json +++ b/package.json @@ -77,11 +77,16 @@ "@nextcloud/moment": "^1.1.1", "@nextcloud/router": "^1.0.2", "@nextcloud/vue": "^1.5.0", + "core-js": "^3.6.4", + "crypto-js": "^4.0.0", "debounce": "^1.2.0", "json2csv": "5.0.0", + "regenerator-runtime": "^0.13.5", + "v-click-outside": "^3.0.1", "vue": "^2.6.11", "vue-clipboard2": "^0.3.1", - "vue-router": "^3.1.6" + "vue-router": "^3.1.6", + "vuedraggable": "^2.23.2" }, "browserslist": [ "extends @nextcloud/browserslist-config" diff --git a/src/components/EmptyContent.vue b/src/components/EmptyContent.vue index c9e788b..b85f1ca 100644 --- a/src/components/EmptyContent.vue +++ b/src/components/EmptyContent.vue @@ -21,9 +21,11 @@ -->