From 879f0e033545106e937d1240c4575d46bf840816 Mon Sep 17 00:00:00 2001 From: Katrix Date: Sat, 28 Nov 2020 02:11:19 +0100 Subject: [PATCH 1/2] Some more misc fixes --- .../main/assets/pages/project/ProjectDocs.vue | 23 +++++++++++++------ .../main/assets/pages/project/VersionPage.vue | 2 +- oreClient/src/main/assets/utils.js | 10 ++++++++ .../app/views/layout/base.scala.html | 1 + 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/oreClient/src/main/assets/pages/project/ProjectDocs.vue b/oreClient/src/main/assets/pages/project/ProjectDocs.vue index 2624d1d8d..ef345c98f 100644 --- a/oreClient/src/main/assets/pages/project/ProjectDocs.vue +++ b/oreClient/src/main/assets/pages/project/ProjectDocs.vue @@ -191,7 +191,7 @@ import Editor from '../../components/Editor' import MemberList from '../../components/MemberList' import { Category } from '../../enums' import PageList from '../../components/PageList' -import { genericError, notFound, numberWithCommas } from '../../utils' +import { genericError, notFound, numberWithCommas, slugify } from '../../utils' import Modal from '../../components/Modal' export default { @@ -339,14 +339,15 @@ export default { content = page.content ? page.content : 'Welcome to your new page' } let action + let pageSlug if (this.newPage) { - const pageSlug = page.parent ? page.parent + '/' + page.name : page.name + pageSlug = page.parent ? page.parent + '/' + slugify(page.name) : slugify(page.name) action = API.projectRequest(this.project.namespace, '_pages/' + pageSlug, 'PUT', { name: page.name, content, }) } else { - const pageSlug = page.oldParent ? page.oldParent + '/' + page.oldName : page.oldName + pageSlug = page.oldParent ? page.oldParent + '/' + slugify(page.oldName) : slugify(page.oldName) action = API.projectRequest(this.project.namespace, '_pages/' + pageSlug, 'PATCH', { name: page.name, content, @@ -356,9 +357,17 @@ export default { action .then((res) => { + const currentJoinedPage = this.joinedPage this.$refs.editPageModal.toggle() - this.resetPutPage() - this.updatePage(true) + if(currentJoinedPage === pageSlug) { + //TODO: Route to the created page without data races + //We should really call updatePage here too, but then we get a 404 + this.$router.push({ name: 'project_home', params: { project: this.project, permissions: this.permissions } }) + } + else { + this.resetPutPage() + this.updatePage(true) + } }) .catch((err) => { // TODO: Better error handling here @@ -382,7 +391,7 @@ export default { }, deletePage() { const page = this.requestPage - const pageSlug = page.parent ? page.parent + '/' + page.name : page.name + const pageSlug = page.parent ? page.parent + '/' + slugify(page.name) : slugify(page.name) API.projectRequest(this.project.namespace, '_pages/' + pageSlug, 'DELETE') .then((res) => { @@ -390,7 +399,7 @@ export default { this.resetPutPage() if (pageSlug === this.joinedPage) { - this.$router.push({ name: 'home', params: { project: this.project, permissions: this.permissions } }) + this.$router.push({ name: 'project_home', params: { project: this.project, permissions: this.permissions } }) } else { this.updatePage(true) } diff --git a/oreClient/src/main/assets/pages/project/VersionPage.vue b/oreClient/src/main/assets/pages/project/VersionPage.vue index b63d8b969..71aeea56b 100644 --- a/oreClient/src/main/assets/pages/project/VersionPage.vue +++ b/oreClient/src/main/assets/pages/project/VersionPage.vue @@ -800,7 +800,7 @@ export default { this.spinIcon = true if (Object.entries(patchVersion).length) { - API.versionRequest(this.project.namespace, this.version, 'PATCH', patchVersion).then((res) => { + API.versionRequest(this.project.namespace, this.version, '', 'PATCH', patchVersion).then((res) => { this.spinIcon = false this.editVersion = false this.versionObj = res diff --git a/oreClient/src/main/assets/utils.js b/oreClient/src/main/assets/utils.js index d9693640d..340b2ad64 100644 --- a/oreClient/src/main/assets/utils.js +++ b/oreClient/src/main/assets/utils.js @@ -81,3 +81,13 @@ export function genericError(self, error) { message: error, }) } + +export function compact(str) { + return str.trim().replaceAll(/ +/g, ' ') +} + +export function slugify(str) { + const replaceRegex = /[^a-z\-_.0-9]/g + const replaced = compact(str).toLowerCase().replaceAll(' ', '-').replaceAll(replaceRegex, '') + return replaced.substring(0, Math.min(32, replaced.length)) +} diff --git a/orePlayCommon/app/views/layout/base.scala.html b/orePlayCommon/app/views/layout/base.scala.html index 42926e213..f8b5f7b7d 100644 --- a/orePlayCommon/app/views/layout/base.scala.html +++ b/orePlayCommon/app/views/layout/base.scala.html @@ -88,6 +88,7 @@ } From ef6192be23c4c2a685baea069d98f35c1d3dda42 Mon Sep 17 00:00:00 2001 From: Katrix Date: Tue, 31 May 2022 21:06:11 +0200 Subject: [PATCH 2/2] Fix lint --- .../main/assets/pages/project/ProjectDocs.vue | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/oreClient/src/main/assets/pages/project/ProjectDocs.vue b/oreClient/src/main/assets/pages/project/ProjectDocs.vue index ef345c98f..491dda220 100644 --- a/oreClient/src/main/assets/pages/project/ProjectDocs.vue +++ b/oreClient/src/main/assets/pages/project/ProjectDocs.vue @@ -359,12 +359,14 @@ export default { .then((res) => { const currentJoinedPage = this.joinedPage this.$refs.editPageModal.toggle() - if(currentJoinedPage === pageSlug) { - //TODO: Route to the created page without data races - //We should really call updatePage here too, but then we get a 404 - this.$router.push({ name: 'project_home', params: { project: this.project, permissions: this.permissions } }) - } - else { + if (currentJoinedPage === pageSlug) { + // TODO: Route to the created page without data races + // We should really call updatePage here too, but then we get a 404 + this.$router.push({ + name: 'project_home', + params: { project: this.project, permissions: this.permissions }, + }) + } else { this.resetPutPage() this.updatePage(true) } @@ -399,7 +401,10 @@ export default { this.resetPutPage() if (pageSlug === this.joinedPage) { - this.$router.push({ name: 'project_home', params: { project: this.project, permissions: this.permissions } }) + this.$router.push({ + name: 'project_home', + params: { project: this.project, permissions: this.permissions }, + }) } else { this.updatePage(true) }