From 024fc0faff313fcc4d2366ff0d3bb270d211cc43 Mon Sep 17 00:00:00 2001 From: Vitaly Baev Date: Wed, 4 Apr 2018 17:20:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20UUID=20=D0=B1=D0=BB?= =?UTF-8?q?=D0=BE=D0=BA=D0=BE=D0=B2=20=D0=BD=D0=B0=20=D1=84=D1=80=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/CourseRedactor.vue | 12 +++++++++++- web/src/js/modules/api.js | 19 +++++++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/web/src/components/CourseRedactor.vue b/web/src/components/CourseRedactor.vue index c46fb75e..70af28fe 100644 --- a/web/src/components/CourseRedactor.vue +++ b/web/src/components/CourseRedactor.vue @@ -590,7 +590,17 @@ if (this.course.is_deferred) { courseData.is_deferred = true; } - this.course = courseData; + let remoteUUIDMapper = {} + if (courseData.content) { + courseData.content.forEach((contentElement) => { + remoteUUIDMapper[contentElement.uuid] = contentElement.data.id + }) + } + this.course.content.forEach((contentElement, index) => { + if (!contentElement.data.id) { + this.$set(this.course.content[index].data, 'id', remoteUUIDMapper[contentElement.uuid]) + } + }) if (courseData.url) { this.slugChanged = true; } diff --git a/web/src/js/modules/api.js b/web/src/js/modules/api.js index ad06b7bf..51f967be 100644 --- a/web/src/js/modules/api.js +++ b/web/src/js/modules/api.js @@ -81,7 +81,6 @@ export const api = { if (block.type === 'text') { return { 'type': 'text', - 'uuid': block.uuid, 'data': { 'id': block.data.id ? block.data.id : null, 'uuid': block.uuid, @@ -95,7 +94,7 @@ export const api = { 'type': 'image', 'data': { 'id': block.data.id ? block.data.id : null, - 'uuid': block.data.uuid, + 'uuid': block.uuid, 'position': ++index, 'title': block.data.title, 'img': block.data.image_id, @@ -106,7 +105,7 @@ export const api = { 'type': 'image-text', 'data': { 'id': block.data.id ? block.data.id : null, - 'uuid': block.data.uuid, + 'uuid': block.uuid, 'position': ++index, 'title': block.data.title, 'img': block.data.image_id, @@ -118,7 +117,7 @@ export const api = { 'type': 'images', 'data': { 'id': block.data.id ? block.data.id : null, - 'uuid': block.data.uuid, + 'uuid': block.uuid, 'position': ++index, 'title': block.data.title, 'images': block.data.images.map((galleryImage) => { @@ -134,7 +133,7 @@ export const api = { 'type': 'video', 'data': { 'id': block.data.id ? block.data.id : null, - 'uuid': block.data.uuid, + 'uuid': block.uuid, 'position': ++index, 'title': block.data.title, 'url': block.data.video_url, @@ -275,9 +274,9 @@ export const api = { if (contentItem.type === 'text') { return { 'type': 'text', + 'uuid': contentItem.uuid, 'data': { 'id': contentItem.id ? contentItem.id : null, - 'uuid': contentItem.uuid, 'title': contentItem.title, 'text': contentItem.txt, } @@ -285,9 +284,9 @@ export const api = { } else if (contentItem.type === 'image') { return { 'type': 'image', + 'uuid': contentItem.uuid, 'data': { 'id': contentItem.id ? contentItem.id : null, - 'uuid': contentItem.uuid, 'title': contentItem.title, 'image_id': contentItem.img.id, 'image_url': contentItem.img.image, @@ -296,9 +295,9 @@ export const api = { } else if (contentItem.type === 'image-text') { return { 'type': 'image-text', + 'uuid': contentItem.uuid, 'data': { 'id': contentItem.id ? contentItem.id : null, - 'uuid': contentItem.uuid, 'title': contentItem.title, 'image_id': contentItem.img.id, 'image_url': contentItem.img.image, @@ -308,9 +307,9 @@ export const api = { } else if (contentItem.type === 'images') { return { 'type': 'images', + 'uuid': contentItem.uuid, 'data': { 'id': contentItem.id ? contentItem.id : null, - 'uuid': contentItem.uuid, 'title': contentItem.title, 'images': contentItem.gallery_images.map((galleryImage) => { return { @@ -324,9 +323,9 @@ export const api = { } else if (contentItem.type === 'video') { return { 'type': 'video', + 'uuid': contentItem.uuid, 'data': { 'id': contentItem.id ? contentItem.id : null, - 'uuid': contentItem.uuid, 'title': contentItem.title, 'video_url': contentItem.url, }