Merge branch 'hotfix/survey-readonly' into develop
This commit is contained in:
commit
13b067f77f
|
|
@ -8902,6 +8902,11 @@
|
||||||
"event-emitter": "~0.3.5"
|
"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": {
|
"es6-set": {
|
||||||
"version": "0.1.5",
|
"version": "0.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
|
||||||
|
|
@ -21266,6 +21271,22 @@
|
||||||
"vue": "^2.4.4"
|
"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": {
|
"vuetify": {
|
||||||
"version": "1.1.10",
|
"version": "1.1.10",
|
||||||
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-1.1.10.tgz",
|
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-1.1.10.tgz",
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,7 @@
|
||||||
"vue-template-compiler": "^2.5.17",
|
"vue-template-compiler": "^2.5.17",
|
||||||
"vue-toast-notification": "^0.4.1",
|
"vue-toast-notification": "^0.4.1",
|
||||||
"vue-vimeo-player": "0.0.6",
|
"vue-vimeo-player": "0.0.6",
|
||||||
|
"vuejs-logger": "1.5.5",
|
||||||
"vuetify": "^1.1.8",
|
"vuetify": "^1.1.8",
|
||||||
"vuex": "^3.0.1",
|
"vuex": "^3.0.1",
|
||||||
"webpack": "^3.6.0",
|
"webpack": "^3.6.0",
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,10 @@ import VueModal from '@/plugins/modal';
|
||||||
import VueRemoveEdges from '@/plugins/edges';
|
import VueRemoveEdges from '@/plugins/edges';
|
||||||
import VueMatomo from 'vue-matomo';
|
import VueMatomo from 'vue-matomo';
|
||||||
import VueToast from 'vue-toast-notification';
|
import VueToast from 'vue-toast-notification';
|
||||||
|
import VueLogger from 'vuejs-logger';
|
||||||
|
|
||||||
Vue.config.productionTip = false;
|
Vue.config.productionTip = false;
|
||||||
|
const isProduction = process.env.NODE_ENV === 'production';
|
||||||
|
|
||||||
Vue.use(VueModal);
|
Vue.use(VueModal);
|
||||||
Vue.use(VueRemoveEdges);
|
Vue.use(VueRemoveEdges);
|
||||||
|
|
@ -28,6 +31,12 @@ Vue.use(VueApollo);
|
||||||
Vue.use(VueAxios, axios);
|
Vue.use(VueAxios, axios);
|
||||||
Vue.use(VueVimeoPlayer);
|
Vue.use(VueVimeoPlayer);
|
||||||
Vue.use(VueToast);
|
Vue.use(VueToast);
|
||||||
|
Vue.use(VueLogger, {
|
||||||
|
isEnabled: true,
|
||||||
|
logLevel: isProduction ? 'error' : 'debug',
|
||||||
|
stringifyArguments: false,
|
||||||
|
showConsoleColors: true
|
||||||
|
});
|
||||||
|
|
||||||
Vue.use(VueScrollTo, {
|
Vue.use(VueScrollTo, {
|
||||||
duration: 500,
|
duration: 500,
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
Solution,
|
Solution,
|
||||||
Survey
|
Survey,
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
|
|
@ -45,9 +45,9 @@
|
||||||
module: {},
|
module: {},
|
||||||
completed: false,
|
completed: false,
|
||||||
me: {
|
me: {
|
||||||
permissions: []
|
permissions: [],
|
||||||
},
|
},
|
||||||
saveDisabled: false
|
saveDisabled: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
<p class="solution-text__answer">${answer.answer}</p>
|
<p class="solution-text__answer">${answer.answer}</p>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
}, '')
|
}, ''),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
answers() {
|
answers() {
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
},
|
},
|
||||||
isTeacher() {
|
isTeacher() {
|
||||||
return isTeacher(this);
|
return isTeacher(this);
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -100,9 +100,14 @@
|
||||||
for (let k in answers) {
|
for (let k in answers) {
|
||||||
flatAnswers[k] = answers[k].answer;
|
flatAnswers[k] = answers[k].answer;
|
||||||
}
|
}
|
||||||
|
this.$log.debug('flatAnswers', flatAnswers);
|
||||||
|
this.$log.debug('data', survey.data);
|
||||||
|
if (Object.keys(flatAnswers).length > 0) {
|
||||||
|
// answers are not empty
|
||||||
survey.data = flatAnswers;
|
survey.data = flatAnswers;
|
||||||
|
}
|
||||||
|
|
||||||
const saveSurvey = (sender) => {
|
const saveSurvey = (sender, options) => {
|
||||||
if (this.saveDisabled) {
|
if (this.saveDisabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -116,21 +121,26 @@
|
||||||
let question = sender.getQuestionByName(k);
|
let question = sender.getQuestionByName(k);
|
||||||
data[k] = {
|
data[k] = {
|
||||||
answer: survey.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 = {
|
const answer = {
|
||||||
surveyId: this.id,
|
surveyId: this.id,
|
||||||
data: JSON.stringify(data)
|
data: JSON.stringify(data),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.$log.debug('saving survey', answer);
|
||||||
this.$apollo.mutate({
|
this.$apollo.mutate({
|
||||||
mutation: UPDATE_ANSWER,
|
mutation: UPDATE_ANSWER,
|
||||||
variables: {
|
variables: {
|
||||||
input: {
|
input: {
|
||||||
answer
|
answer,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
update: (store, {data: {updateAnswer: {answer}}}) => {
|
update: (store, {data: {updateAnswer: {answer}}}) => {
|
||||||
const query = SURVEY_QUERY;
|
const query = SURVEY_QUERY;
|
||||||
|
|
@ -140,7 +150,7 @@
|
||||||
queryData.survey.answer = answer;
|
queryData.survey.answer = answer;
|
||||||
store.writeQuery({query, variables, data: queryData});
|
store.writeQuery({query, variables, data: queryData});
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -151,6 +161,7 @@
|
||||||
survey.locale = 'de';
|
survey.locale = 'de';
|
||||||
survey.showProgressBar = 'bottom';
|
survey.showProgressBar = 'bottom';
|
||||||
survey.pageNextText = 'Speichern & Weiter';
|
survey.pageNextText = 'Speichern & Weiter';
|
||||||
|
this.$log.debug(survey.data);
|
||||||
return survey;
|
return survey;
|
||||||
},
|
},
|
||||||
reopen() {
|
reopen() {
|
||||||
|
|
@ -160,7 +171,7 @@
|
||||||
this.survey.clear();
|
this.survey.clear();
|
||||||
this.survey.data = data; // reapply it
|
this.survey.data = data; // reapply it
|
||||||
this.saveDisabled = false;
|
this.saveDisabled = false;
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
apollo: {
|
apollo: {
|
||||||
|
|
@ -168,7 +179,7 @@
|
||||||
query: SURVEY_QUERY,
|
query: SURVEY_QUERY,
|
||||||
variables() {
|
variables() {
|
||||||
return {
|
return {
|
||||||
id: this.id
|
id: this.id,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
manual: true,
|
manual: true,
|
||||||
|
|
@ -190,14 +201,14 @@
|
||||||
this.$apollo.addSmartQuery('module', {
|
this.$apollo.addSmartQuery('module', {
|
||||||
query: MODULE_QUERY,
|
query: MODULE_QUERY,
|
||||||
variables: {
|
variables: {
|
||||||
id: module.id
|
id: module.id,
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
me: meQuery
|
me: meQuery,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
|
||||||
"integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
|
"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": {
|
"regenerator-runtime": {
|
||||||
"version": "0.10.5",
|
"version": "0.10.5",
|
||||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
|
||||||
|
|
@ -44,6 +49,20 @@
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/unfetch/-/unfetch-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/unfetch/-/unfetch-3.1.1.tgz",
|
||||||
"integrity": "sha512-syDl3htvM56w0HC0PTVA5jEEknOCJ3dWgWGDuaEtQUno8ORDCfZQbm12RzfWO3AC3YhWDoP61dlgmo8Z05Y97g=="
|
"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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue