From f25910f3844c85413e5e4cc36fb74a1d0aaddfd8 Mon Sep 17 00:00:00 2001 From: Felix Date: Sun, 17 Nov 2019 22:01:25 +0100 Subject: [PATCH 01/14] feat(web): Create ugly upload page --- web/src/main.js | 8 +++- web/src/pages/Help.vue | 16 +++++++ web/src/pages/Upload.vue | 58 +++++++++++++++++++++++ web/src/repositories/ProjectRepository.js | 11 +++++ 4 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 web/src/pages/Help.vue create mode 100644 web/src/pages/Upload.vue diff --git a/web/src/main.js b/web/src/main.js index cd276916b..8ba3b3c3d 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -10,7 +10,7 @@ import { MdContent, MdList, MdField, - MdMenu + MdMenu, } from 'vue-material/dist/components' import 'vue-material/dist/vue-material.min.css' import 'vue-material/dist/theme/default.css' @@ -32,10 +32,14 @@ Vue.use(VueRouter) // configure the app's routing import Home from '@/pages/Home.vue' import Docs from '@/pages/Docs.vue' +import Help from '@/pages/Help.vue' +import Upload from '@/pages/Upload.vue' const routes = [ { path: '/', component: Home }, - { path: '/:project/:version/:location?', component: Docs } + { path: '/:project/:version/:location?', component: Docs }, + { path: '/help', component: Help }, + { path: '/upload', component: Upload }, ] const router = new VueRouter({ diff --git a/web/src/pages/Help.vue b/web/src/pages/Help.vue new file mode 100644 index 000000000..ffbbeb159 --- /dev/null +++ b/web/src/pages/Help.vue @@ -0,0 +1,16 @@ + + + \ No newline at end of file diff --git a/web/src/pages/Upload.vue b/web/src/pages/Upload.vue new file mode 100644 index 000000000..7dcccf40e --- /dev/null +++ b/web/src/pages/Upload.vue @@ -0,0 +1,58 @@ + + + \ No newline at end of file diff --git a/web/src/repositories/ProjectRepository.js b/web/src/repositories/ProjectRepository.js index 604dbe4b8..c545f5288 100644 --- a/web/src/repositories/ProjectRepository.js +++ b/web/src/repositories/ProjectRepository.js @@ -36,5 +36,16 @@ export default { return (await Repository.get(`${Repository.defaults.baseURL}/${resource}/${projectName}/`)) .data .filter((version) => version.type == 'directory') + }, + + upload(projectName, version, formData) { + const url = `${Repository.defaults.baseURL}/api/${projectName}/${version}`; + Repository.post( + url, + formData, { + headers: { + 'Content-Type': 'multipart/form-data' + } + }) } } From 3706c9a2ec278ab52f16e9d34aee70f5e173e254 Mon Sep 17 00:00:00 2001 From: Benj Fassbind Date: Mon, 18 Nov 2019 14:21:48 +0100 Subject: [PATCH 02/14] feat(build): add vuelidate --- web/package.json | 3 ++- web/yarn.lock | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/web/package.json b/web/package.json index 61760c38b..21901e991 100644 --- a/web/package.json +++ b/web/package.json @@ -11,7 +11,8 @@ "core-js": "^3.3.2", "node-sass": "^4.13.0", "sass-loader": "^8.0.0", - "vue": "^2.6.10" + "vue": "^2.6.10", + "vuelidate": "^0.7.4" }, "devDependencies": { "@vue/cli-plugin-babel": "^4.0.0", diff --git a/web/yarn.lock b/web/yarn.lock index 0407d2b6a..3012a560f 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -8291,6 +8291,11 @@ vue@^2.6.10: resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.10.tgz#a72b1a42a4d82a721ea438d1b6bf55e66195c637" integrity sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ== +vuelidate@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/vuelidate/-/vuelidate-0.7.4.tgz#5a0e54be09ac0192f1aa3387d74b92e0945bf8aa" + integrity sha512-QHZWYOL325Zo+2K7VBNEJTZ496Kd8Z31p85aQJFldKudUUGBmgw4zu4ghl4CyqPwjRCmqZ9lDdx4FSdMnu4fGg== + watchpack@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" From d3baf2e3784f5f5800a0d791e6ef59f1e766f302 Mon Sep 17 00:00:00 2001 From: Benj Fassbind Date: Mon, 18 Nov 2019 14:54:31 +0100 Subject: [PATCH 03/14] feat(upload): style the upload page --- web/src/components/Layout.vue | 5 + web/src/main.js | 6 + web/src/pages/Upload.vue | 138 ++++++++++++++++------ web/src/repositories/ProjectRepository.js | 15 +-- 4 files changed, 120 insertions(+), 44 deletions(-) diff --git a/web/src/components/Layout.vue b/web/src/components/Layout.vue index 881be7596..70950c018 100644 --- a/web/src/components/Layout.vue +++ b/web/src/components/Layout.vue @@ -66,4 +66,9 @@ body, height: 100%; } +a { + /* TODO: remove hack */ + color: #742a47 !important; +} + \ No newline at end of file diff --git a/web/src/main.js b/web/src/main.js index 8ba3b3c3d..20f6309d0 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -4,6 +4,7 @@ import App from '@/App.vue' // configure vue material (https://vuematerial.io/getting-started/) import { MdCard, + MdButton, MdAvatar, MdApp, MdToolbar, @@ -11,6 +12,8 @@ import { MdList, MdField, MdMenu, + MdProgress, + MdSnackbar } from 'vue-material/dist/components' import 'vue-material/dist/vue-material.min.css' import 'vue-material/dist/theme/default.css' @@ -23,6 +26,9 @@ Vue.use(MdList) Vue.use(MdToolbar) Vue.use(MdCard) Vue.use(MdAvatar) +Vue.use(MdProgress) +Vue.use(MdSnackbar) +Vue.use(MdButton) // configure vue router (https://router.vuejs.org/installation.html) import VueRouter from 'vue-router' diff --git a/web/src/pages/Upload.vue b/web/src/pages/Upload.vue index 7dcccf40e..d9256aefc 100644 --- a/web/src/pages/Upload.vue +++ b/web/src/pages/Upload.vue @@ -1,58 +1,126 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/web/src/repositories/ProjectRepository.js b/web/src/repositories/ProjectRepository.js index c545f5288..286b89d61 100644 --- a/web/src/repositories/ProjectRepository.js +++ b/web/src/repositories/ProjectRepository.js @@ -38,14 +38,11 @@ export default { .filter((version) => version.type == 'directory') }, - upload(projectName, version, formData) { - const url = `${Repository.defaults.baseURL}/api/${projectName}/${version}`; - Repository.post( - url, - formData, { - headers: { - 'Content-Type': 'multipart/form-data' - } - }) + async upload(projectName, version, formData) { + await Repository.post( + `${Repository.defaults.baseURL}/api/${projectName}/${version}`, + formData, + { headers: { 'Content-Type': 'multipart/form-data' } } + ) } } From b9738d546dcaf4b93a6c93f892a63ecbb2697ddd Mon Sep 17 00:00:00 2001 From: Felix Date: Mon, 18 Nov 2019 21:52:04 +0100 Subject: [PATCH 04/14] fix(web): make upload work again --- web/src/pages/Help.vue | 2 ++ web/src/pages/Upload.vue | 20 ++++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/web/src/pages/Help.vue b/web/src/pages/Help.vue index ffbbeb159..5a781e5ee 100644 --- a/web/src/pages/Help.vue +++ b/web/src/pages/Help.vue @@ -1,6 +1,8 @@ diff --git a/web/src/pages/Upload.vue b/web/src/pages/Upload.vue index d9256aefc..6887e27fc 100644 --- a/web/src/pages/Upload.vue +++ b/web/src/pages/Upload.vue @@ -1,14 +1,13 @@ @@ -36,18 +36,18 @@ export default { padding-top: 20px; } -.uppload-button { +.upload-button { position: fixed; bottom: 16px; } @media all and (max-width: 959px) { - .uppload-button { + .upload-button { right: 16px; } } @media all and (min-width: 959px) { - .uppload-button { + .upload-button { right: 15%; } } diff --git a/web/src/pages/Upload.vue b/web/src/pages/Upload.vue index e55bc8b65..02ad55415 100644 --- a/web/src/pages/Upload.vue +++ b/web/src/pages/Upload.vue @@ -1,7 +1,7 @@