From 7ff7bc001345b3d914d70c26a7e66585d23ffbb5 Mon Sep 17 00:00:00 2001 From: Vitaly Baev Date: Wed, 14 Feb 2018 21:43:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= =?UTF-8?q?=20=D1=81=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B0?= 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 | 8 +++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/web/src/components/CourseRedactor.vue b/web/src/components/CourseRedactor.vue index 0109d2ca..6ba6b5d5 100644 --- a/web/src/components/CourseRedactor.vue +++ b/web/src/components/CourseRedactor.vue @@ -334,7 +334,8 @@ ], showErrors: false, savingTimeout: null, - categoryOptions: [] + categoryOptions: [], + courseSyncHook: false, // Если true, то watch не будет отправлять курс на обновление } }, validations: { @@ -528,7 +529,11 @@ this.savingTimeout = setTimeout(() => { document.getElementById('course-redactor__saving-status').innerText = ''; }, 2000); - // this.course = api.convertCourseJson(response.data); + this.courseSyncHook = true; + this.course = api.convertCourseJson(response.data); + this.$nextTick(() => { + this.courseSyncHook = false; + }) }) .catch((err) => { this.courseSaving = false; @@ -630,6 +635,9 @@ watch: { 'course': { handler: function (newValue, oldValue) { + if (this.courseSyncHook) { + return; + } this.saveCourseDraft(newValue, oldValue); }, deep: true, diff --git a/web/src/js/modules/api.js b/web/src/js/modules/api.js index 232da06c..0cb2ff6c 100644 --- a/web/src/js/modules/api.js +++ b/web/src/js/modules/api.js @@ -55,9 +55,11 @@ export const api = { let deferredStart = null; if (courseObject.is_deferred) { - let deferredStartTime = moment(courseObject.time.value, "HH:mm"); - let deferredStartDate = moment(courseObject.date).hour(deferredStartTime.hour()); - deferredStart = deferredStartDate.format(); + if (courseObject.date && courseObject.time && courseObject.time.value) { + let deferredStartTime = moment(courseObject.time.value, "HH:mm"); + let deferredStartDate = moment(courseObject.date).hour(deferredStartTime.hour()); + deferredStart = deferredStartDate.format(); + } } const courseJson = {