Merge branch 'hotfix/survey-readonly' into develop

This commit is contained in:
Ramon Wenger 2021-04-17 13:34:59 +02:00
commit 13b067f77f
5 changed files with 79 additions and 18 deletions

View File

@ -8902,6 +8902,11 @@
"event-emitter": "~0.3.5"
}
},
"es6-object-assign": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
"integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw="
},
"es6-set": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
@ -21266,6 +21271,22 @@
"vue": "^2.4.4"
}
},
"vuejs-logger": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/vuejs-logger/-/vuejs-logger-1.5.5.tgz",
"integrity": "sha512-wESz1F4KWk98YANEDg2yeS+fpwk2WrR41ZslLfZgTD+EYFm/7VMMUjRThhHT8CCOLOCQdsS4Ge2C9bIs68v8Ww==",
"requires": {
"es6-object-assign": "1.1.0",
"vue": "2.6.11"
},
"dependencies": {
"vue": {
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
"integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="
}
}
},
"vuetify": {
"version": "1.1.10",
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-1.1.10.tgz",

View File

@ -91,6 +91,7 @@
"vue-template-compiler": "^2.5.17",
"vue-toast-notification": "^0.4.1",
"vue-vimeo-player": "0.0.6",
"vuejs-logger": "1.5.5",
"vuetify": "^1.1.8",
"vuex": "^3.0.1",
"webpack": "^3.6.0",

View File

@ -20,7 +20,10 @@ import VueModal from '@/plugins/modal';
import VueRemoveEdges from '@/plugins/edges';
import VueMatomo from 'vue-matomo';
import VueToast from 'vue-toast-notification';
import VueLogger from 'vuejs-logger';
Vue.config.productionTip = false;
const isProduction = process.env.NODE_ENV === 'production';
Vue.use(VueModal);
Vue.use(VueRemoveEdges);
@ -28,6 +31,12 @@ Vue.use(VueApollo);
Vue.use(VueAxios, axios);
Vue.use(VueVimeoPlayer);
Vue.use(VueToast);
Vue.use(VueLogger, {
isEnabled: true,
logLevel: isProduction ? 'error' : 'debug',
stringifyArguments: false,
showConsoleColors: true
});
Vue.use(VueScrollTo, {
duration: 500,

View File

@ -35,7 +35,7 @@
components: {
Solution,
Survey
Survey,
},
data() {
@ -45,9 +45,9 @@
module: {},
completed: false,
me: {
permissions: []
permissions: [],
},
saveDisabled: false
saveDisabled: false,
};
},
@ -80,7 +80,7 @@
<p class="solution-text__answer">${answer.answer}</p>
`;
}
}, '')
}, ''),
};
},
answers() {
@ -90,7 +90,7 @@
},
isTeacher() {
return isTeacher(this);
}
},
},
methods: {
@ -100,9 +100,14 @@
for (let k in answers) {
flatAnswers[k] = answers[k].answer;
}
survey.data = flatAnswers;
this.$log.debug('flatAnswers', flatAnswers);
this.$log.debug('data', survey.data);
if (Object.keys(flatAnswers).length > 0) {
// answers are not empty
survey.data = flatAnswers;
}
const saveSurvey = (sender) => {
const saveSurvey = (sender, options) => {
if (this.saveDisabled) {
return;
}
@ -116,21 +121,26 @@
let question = sender.getQuestionByName(k);
data[k] = {
answer: survey.data[k],
correct: question && question.correctAnswer ? question.correctAnswer : ''
correct: question && question.correctAnswer ? question.correctAnswer : '',
};
}
}
if (Object.keys(data).length === 0) {
// data is empty
return;
}
const answer = {
surveyId: this.id,
data: JSON.stringify(data)
data: JSON.stringify(data),
};
this.$log.debug('saving survey', answer);
this.$apollo.mutate({
mutation: UPDATE_ANSWER,
variables: {
input: {
answer
}
answer,
},
},
update: (store, {data: {updateAnswer: {answer}}}) => {
const query = SURVEY_QUERY;
@ -140,7 +150,7 @@
queryData.survey.answer = answer;
store.writeQuery({query, variables, data: queryData});
}
}
},
});
};
@ -151,6 +161,7 @@
survey.locale = 'de';
survey.showProgressBar = 'bottom';
survey.pageNextText = 'Speichern & Weiter';
this.$log.debug(survey.data);
return survey;
},
reopen() {
@ -160,7 +171,7 @@
this.survey.clear();
this.survey.data = data; // reapply it
this.saveDisabled = false;
}
},
},
apollo: {
@ -168,7 +179,7 @@
query: SURVEY_QUERY,
variables() {
return {
id: this.id
id: this.id,
};
},
manual: true,
@ -190,14 +201,14 @@
this.$apollo.addSmartQuery('module', {
query: MODULE_QUERY,
variables: {
id: module.id
}
id: module.id,
},
});
}
},
},
me: meQuery
}
me: meQuery,
},
};
</script>

19
package-lock.json generated
View File

@ -35,6 +35,11 @@
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
"integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
},
"es6-object-assign": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
"integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw="
},
"regenerator-runtime": {
"version": "0.10.5",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
@ -44,6 +49,20 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/unfetch/-/unfetch-3.1.1.tgz",
"integrity": "sha512-syDl3htvM56w0HC0PTVA5jEEknOCJ3dWgWGDuaEtQUno8ORDCfZQbm12RzfWO3AC3YhWDoP61dlgmo8Z05Y97g=="
},
"vue": {
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
"integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="
},
"vuejs-logger": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/vuejs-logger/-/vuejs-logger-1.5.5.tgz",
"integrity": "sha512-wESz1F4KWk98YANEDg2yeS+fpwk2WrR41ZslLfZgTD+EYFm/7VMMUjRThhHT8CCOLOCQdsS4Ge2C9bIs68v8Ww==",
"requires": {
"es6-object-assign": "1.1.0",
"vue": "2.6.11"
}
}
}
}