From 739b3db9dbea8732889a12a7cd9d4944e1a6bf9e Mon Sep 17 00:00:00 2001 From: Heitor Mattosinho Date: Mon, 11 Sep 2023 15:31:19 -0300 Subject: [PATCH 1/3] feat (inf331): extend expiration --- .../author/env/inf331_2023/js/lab-progress.js | 166 ++++++++++++------ .../public/infra/conditional-layout.js | 12 +- 2 files changed, 126 insertions(+), 52 deletions(-) diff --git a/src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js b/src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js index 4a779891..b64bfbc5 100644 --- a/src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js +++ b/src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js @@ -78,16 +78,23 @@ console.log(error) }) for (let lab of labList) { - let property = await this.getCaseProperties(lab.id) - if ('complete' in property){ - property = property['complete'] + let propsLab = await this.getCaseProperties(lab.id) + let extendPeriod = null + let property = null + if ('complete' in propsLab){ + property = propsLab['complete'] }else{ property = null } + if ('extendPeriod' in propsLab){ + extendPeriod = new Date((propsLab['extendPeriod'])) + }else{ + extendPeriod = null + } if (lab.title == lab.description && lab.title == lab.keywords){ - labProgressManager.i.lab[lab.title.substring(lab.title.length-1)] = {'id':lab.id,'desc':lab.description,'keywords':lab.keywords,'property':property} + labProgressManager.i.lab[lab.title.substring(lab.title.length-1)] = {'id':lab.id,'desc':lab.description,'keywords':lab.keywords,'property':property, 'extendPeriod':extendPeriod} }else if (lab.description == lab.keywords){ - labProgressManager.i.lab[lab.description.substring(lab.description.length-1)] = {'id':lab.id,'desc':lab.description,'keywords':lab.keywords,'property':property} + labProgressManager.i.lab[lab.description.substring(lab.description.length-1)] = {'id':lab.id,'desc':lab.description,'keywords':lab.keywords,'property':property, 'extendPeriod':extendPeriod} } } MessageBus.i.publish('data/lab.info/ready') @@ -210,17 +217,14 @@ let labCompleted = false let labDelivered = false let labLastEdit = null + let labExtended = false + let labExpired = false + let pastRelease = false const highestLab = Object.keys(labList).length - let nLabReleased = 0 + // let nLabReleased = 0 const currentDate = new Date() - // console.log('============',this.convertToLocalTz(new Date(),'date')) - // let tzOffset = this.prependZero(-1*(currentDate.getTimezoneOffset()/60)) - // if (-1*(currentDate.getTimezoneOffset()/60) > 0){ - // tzOffset = `GMT+${tzOffset}00` - // } - // console.log('============',this.getDateString(currentDate)) - // console.log('============',this.getTimeString(this.labRelease[1])) - // console.log('============',this.convertToLocalTz(currentDate,true)) + // console.log(labProgressManager.i.lab); + let createdBtn = false let released = true const lateReleaseTxt = 'Não publicado...(atraso)' @@ -228,6 +232,29 @@ for (var i = 1; i <= Object.keys(this.labRelease).length; i++) { labCompleted = false labDelivered = false + labExtended = false + labExpired = false + pastRelease = false + + + if (this.setDateToISO(currentDate) > this.setDateToISO(this.labExpiration[i])){ + labExpired = true + } + // console.log(`lab ${i}`,this.setDateToISO(currentDate), this.setDateToISO(this.labRelease[i])); + if (this.setDateToISO(currentDate) > this.setDateToISO(this.labRelease[i])){ + pastRelease = true + } + + if (labExpired){ + if (Object.keys(labList).length >= i){ + if (labList[i]['extendPeriod'] != null){ + if((this.setDateToISO((labList[i]['extendPeriod'])) > this.setDateToISO(currentDate))){ + labExtended = true + } + } + } + } + let labTemplate = await MessageBus.i.request( 'data/template/' + `labs/lab_${i}`.replace(/\//g, '.') + '/get', {static: false}, null, true) @@ -237,10 +264,10 @@ createdBtn = false let template = document.createElement('template') - // console.log('============ current greater then release',this.setDateToISO(currentDate) > this.setDateToISO(this.labRelease[i])) - // console.log('============ current date greater then expiration',this.setDateToISO(currentDate) > this.setDateToISO(this.labExpiration[i])) + // console.log('============ current greater then release',pastRelease) + // console.log('============ current date greater then expiration',labExpired) - if (this.setDateToISO(currentDate) > this.setDateToISO(this.labRelease[i]) && highestLab >= i){ + if (pastRelease && highestLab >= i){ if (labProgressManager.i.lab[i]['property'] != null && labProgressManager.i.lab[i]['property'] == '0'){ labDelivered = true } @@ -252,7 +279,7 @@ .replace(/\[labRelease\]/ig, `${this.convertToLocalTz(this.labRelease[i],'string')}`) .replace(/\[labText\]/ig, lateReleaseTxt) - }else if (this.setDateToISO(currentDate) > this.setDateToISO(this.labRelease[i]) && this.setDateToISO(currentDate) > this.setDateToISO(this.labExpiration[i])){ + }else if (pastRelease && labExpired && !labExtended){ // console.log('============ release and expiration greater') template.innerHTML = labProgressManager.lvlContainerExpired .replace(/\[containerColor\]/ig, 'bg-lab-primary') @@ -267,26 +294,44 @@ .replace(/\[labDeliveredColor\]/ig, labDelivered?successColor:failColor) .replace(/\[labLastEdit\]/ig, labLastEdit) .replace(/\[labLastEditColor\]/ig, (failColor)) - }else{ - template.innerHTML = labProgressManager.lvlContainer - .replace(/\[containerColor\]/ig, 'bg-lab-primary') - .replace(/\[btnColor\]/ig, 'btn-lab-primary') - .replace(/\[labNumber\]/ig, Object.keys(labList)[i-1]) - .replace(/\[progress\]/ig, 'Em aberto') - .replace(/\[progressColor\]/ig, labCompleted?successColor:'bg-lab-dark text-lab-light') - .replace(/\[this.labExpirationColor\]/ig, 'bg-lab-dark text-lab-light-pink') - .replace(/\[this.labExpiration\]/ig, - `${this.convertToLocalTz(this.labExpiration[i],'string')}`) - .replace(/\[labDelivered\]/ig, labDelivered?'Sim!':'Não') - .replace(/\[labDeliveredColor\]/ig, labDelivered?successColor:failColor) - .replace(/\[labLastEdit\]/ig, labLastEdit) - .replace(/\[labLastEditColor\]/ig, (failColor)) - .replace(/\[labId\]/ig, labList[i]['id']) - .replace(/\[buttonIcon\]/ig, 'play') + }else if (pastRelease && !labExpired || (pastRelease && labExpired && labExtended)){ + if (labExtended){ + template.innerHTML = labProgressManager.lvlContainer + .replace(/\[containerColor\]/ig, 'bg-lab-primary') + .replace(/\[btnColor\]/ig, 'btn-lab-primary') + .replace(/\[labNumber\]/ig, Object.keys(labList)[i-1]) + .replace(/\[progress\]/ig, 'Submissão extendida') + .replace(/\[progressColor\]/ig, labCompleted?successColor:'bg-lab-dark text-lab-light') + .replace(/\[this.labExpirationColor\]/ig, 'bg-lab-dark text-lab-light-pink') + .replace(/\[this.labExpiration\]/ig, + `${this.convertToLocalTz(labList[i]['extendPeriod'],'string')}`) + .replace(/\[labDelivered\]/ig, labDelivered?'Sim!':'Não') + .replace(/\[labDeliveredColor\]/ig, labDelivered?successColor:failColor) + .replace(/\[labLastEdit\]/ig, labLastEdit) + .replace(/\[labLastEditColor\]/ig, (failColor)) + .replace(/\[labId\]/ig, labList[i]['id']) + .replace(/\[buttonIcon\]/ig, 'play') + }else{ + template.innerHTML = labProgressManager.lvlContainer + .replace(/\[containerColor\]/ig, 'bg-lab-primary') + .replace(/\[btnColor\]/ig, 'btn-lab-primary') + .replace(/\[labNumber\]/ig, Object.keys(this.labRelease)[i-1]) + .replace(/\[progress\]/ig, 'Em aberto') + .replace(/\[progressColor\]/ig, labCompleted?successColor:'bg-lab-dark text-lab-light') + .replace(/\[this.labExpirationColor\]/ig, 'bg-lab-dark text-lab-light-pink') + .replace(/\[this.labExpiration\]/ig, + `${this.convertToLocalTz(this.labExpiration[i],'string')}`) + .replace(/\[labDelivered\]/ig, labDelivered?'Sim!':'Não') + .replace(/\[labDeliveredColor\]/ig, labDelivered?successColor:failColor) + .replace(/\[labLastEdit\]/ig, labLastEdit) + .replace(/\[labLastEditColor\]/ig, (failColor)) + .replace(/\[labId\]/ig, labList[i]['id']) + .replace(/\[buttonIcon\]/ig, 'play') + } } - }else if(this.setDateToISO(currentDate) > this.setDateToISO(this.labRelease[i]) && this.setDateToISO(currentDate) > this.setDateToISO(this.labExpiration[i])){ + }else if(pastRelease && labExpired && !labExtended){ template.innerHTML = labProgressManager.lvlContainerExpired .replace(/\[containerColor\]/ig, 'bg-lab-primary') .replace(/\[btnColor\]/ig, 'btn-lab-secondary') @@ -300,7 +345,7 @@ .replace(/\[labDeliveredColor\]/ig, labDelivered?successColor:failColor) .replace(/\[labLastEdit\]/ig, labLastEdit) .replace(/\[labLastEditColor\]/ig, (failColor)) - }else if (currentDate > this.labRelease[i]){ + }else if (pastRelease){ if (released == false){ template.innerHTML = labProgressManager.lvlContainerLocked .replace(/\[difficulty\]/ig, i) @@ -309,22 +354,41 @@ }else{ createdBtn = true - template.innerHTML = labProgressManager.lvlContainer - .replace(/\[containerColor\]/ig, 'bg-lab-primary') - .replace(/\[btnColor\]/ig, 'btn-lab-secondary') - .replace(/\[labNumber\]/ig, Object.keys(this.labRelease)[i-1]) - .replace(/\[progress\]/ig, 'Em aberto') - .replace(/\[progressColor\]/ig, labCompleted?successColor:'bg-lab-dark text-lab-light') - .replace(/\[this.labExpirationColor\]/ig, 'bg-lab-dark text-lab-light-pink') - .replace(/\[this.labExpiration\]/ig, - `${this.convertToLocalTz(this.labExpiration[i],'string')}`) - .replace(/\[labDelivered\]/ig, labDelivered?'Sim!':'Não') - .replace(/\[labDeliveredColor\]/ig, labDelivered?successColor:failColor) - .replace(/\[labLastEdit\]/ig, labLastEdit) - .replace(/\[labLastEditColor\]/ig, (failColor)) - .replace(/\[buttonIcon\]/ig, 'plus') + if (!labExpired || (pastRelease && labExpired && labExtended)){ + if (labExtended){ + template.innerHTML = labProgressManager.lvlContainer + .replace(/\[containerColor\]/ig, 'bg-lab-primary') + .replace(/\[btnColor\]/ig, 'btn-lab-primary') + .replace(/\[labNumber\]/ig, Object.keys(labList)[i-1]) + .replace(/\[progress\]/ig, 'Submissão extendida') + .replace(/\[progressColor\]/ig, labCompleted?successColor:'bg-lab-dark text-lab-light') + .replace(/\[this.labExpirationColor\]/ig, 'bg-lab-dark text-lab-light-pink') + .replace(/\[this.labExpiration\]/ig, + `${this.convertToLocalTz(labList[i]['extendPeriod'],'string')}`) + .replace(/\[labDelivered\]/ig, labDelivered?'Sim!':'Não') + .replace(/\[labDeliveredColor\]/ig, labDelivered?successColor:failColor) + .replace(/\[labLastEdit\]/ig, labLastEdit) + .replace(/\[labLastEditColor\]/ig, (failColor)) + .replace(/\[buttonIcon\]/ig, 'plus') + }else{ + template.innerHTML = labProgressManager.lvlContainer + .replace(/\[containerColor\]/ig, 'bg-lab-primary') + .replace(/\[btnColor\]/ig, 'btn-lab-secondary') + .replace(/\[labNumber\]/ig, Object.keys(this.labRelease)[i-1]) + .replace(/\[progress\]/ig, 'Em aberto') + .replace(/\[progressColor\]/ig, labCompleted?successColor:'bg-lab-dark text-lab-light') + .replace(/\[this.labExpirationColor\]/ig, 'bg-lab-dark text-lab-light-pink') + .replace(/\[this.labExpiration\]/ig, + `${this.convertToLocalTz(this.labExpiration[i],'string')}`) + .replace(/\[labDelivered\]/ig, labDelivered?'Sim!':'Não') + .replace(/\[labDeliveredColor\]/ig, labDelivered?successColor:failColor) + .replace(/\[labLastEdit\]/ig, labLastEdit) + .replace(/\[labLastEditColor\]/ig, (failColor)) + .replace(/\[buttonIcon\]/ig, 'plus') + } } - }else if (currentDate < this.labRelease[i]){ + } + }else if (!pastRelease){ template.innerHTML = labProgressManager.lvlContainerLocked .replace(/\[difficulty\]/ig, i) .replace(/\[labRelease\]/ig, `${this.convertToLocalTz(this.labRelease[i],'string')}`) diff --git a/src/adonisjs/public/infra/conditional-layout.js b/src/adonisjs/public/infra/conditional-layout.js index b3bb9e4d..ee5af479 100644 --- a/src/adonisjs/public/infra/conditional-layout.js +++ b/src/adonisjs/public/infra/conditional-layout.js @@ -327,13 +327,23 @@ class LayoutController { document.querySelector('#harena-case-property').remove() document.querySelector('#harena-inf331-complete-lab').remove() }) - if (expirationDate < new Date()){ + let currentDate = labProgressManager.i.setDateToISO(new Date()) + if (expirationDate < currentDate && LayoutController.case.message.property.extendPeriod == null){ const saveBtn = document.querySelector('#btn-save-draft') saveBtn.innerHTML = 'Data da entrega expirada' btnLabDelivered.firstElementChild.innerHTML = btnLabDelivered.firstElementChild.innerHTML == 'Entregar'?'Não entregue':'Entregue' saveBtn.classList.add('disabled') saveBtn.classList.add('no-pointer') saveBtn.nextElementSibling.topic = "" + }else if (LayoutController.case.message.property.extendPeriod != null){ + if (labProgressManager.i.setDateToISO(new Date(LayoutController.case.message.property.extendPeriod)) < currentDate){ + const saveBtn = document.querySelector('#btn-save-draft') + saveBtn.innerHTML = 'Data da entrega expirada' + btnLabDelivered.firstElementChild.innerHTML = btnLabDelivered.firstElementChild.innerHTML == 'Entregar'?'Não entregue':'Entregue' + saveBtn.classList.add('disabled') + saveBtn.classList.add('no-pointer') + saveBtn.nextElementSibling.topic = "" + } } } /*else if(userGrade === 'professor' || userGrade === 'coordinator'){ From 57c74a3b8c01e32734c73f84167c8d279a64411d Mon Sep 17 00:00:00 2001 From: Heitor Mattosinho Date: Mon, 11 Sep 2023 16:08:35 -0300 Subject: [PATCH 2/3] fix (inf331): lab progress listing unnecessary cases --- src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js | 4 +++- src/adonisjs/public/infra/token-validator-mc.js | 3 +++ src/adonisjs/public/infra/token-validator-swe.js | 3 +++ src/adonisjs/public/infra/token-validator.js | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js b/src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js index b64bfbc5..70263555 100644 --- a/src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js +++ b/src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js @@ -72,12 +72,14 @@ let prognosisList = {} await axios(config) .then(function (endpointResponse) { + // for (let c of endpointResponse.data.cases){} labList = endpointResponse.data.cases }) .catch(function (error) { console.log(error) }) for (let lab of labList) { + if (lab.username == sessionStorage.getItem('harena-user-username')){ let propsLab = await this.getCaseProperties(lab.id) let extendPeriod = null let property = null @@ -95,7 +97,7 @@ labProgressManager.i.lab[lab.title.substring(lab.title.length-1)] = {'id':lab.id,'desc':lab.description,'keywords':lab.keywords,'property':property, 'extendPeriod':extendPeriod} }else if (lab.description == lab.keywords){ labProgressManager.i.lab[lab.description.substring(lab.description.length-1)] = {'id':lab.id,'desc':lab.description,'keywords':lab.keywords,'property':property, 'extendPeriod':extendPeriod} - } + }} } MessageBus.i.publish('data/lab.info/ready') } diff --git a/src/adonisjs/public/infra/token-validator-mc.js b/src/adonisjs/public/infra/token-validator-mc.js index ce87b4ea..15efcfc8 100644 --- a/src/adonisjs/public/infra/token-validator-mc.js +++ b/src/adonisjs/public/infra/token-validator-mc.js @@ -42,6 +42,7 @@ class TokenController { sessionStorage.setItem('harena-user-institution', endpointResponse.data.institution) sessionStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) sessionStorage.setItem('harena-user-id', endpointResponse.data.userId) + sessionStorage.setItem('harena-user-username', endpointResponse.data.username) // localStorage.setItem('harena-user-grade', endpointResponse.data.grade) // localStorage.setItem('harena-user-institution', endpointResponse.data.institution) // localStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) @@ -119,6 +120,8 @@ class TokenController { sessionStorage.setItem('harena-user-grade', endpointResponse.data.grade) sessionStorage.setItem('harena-user-institution', endpointResponse.data.institution) sessionStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) + sessionStorage.setItem('harena-user-id', endpointResponse.data.userId) + sessionStorage.setItem('harena-user-username', endpointResponse.data.username) // localStorage.setItem('harena-user-grade', endpointResponse.data.grade) // localStorage.setItem('harena-user-institution', endpointResponse.data.institution) // localStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) diff --git a/src/adonisjs/public/infra/token-validator-swe.js b/src/adonisjs/public/infra/token-validator-swe.js index c1b7d08b..885ba7fd 100644 --- a/src/adonisjs/public/infra/token-validator-swe.js +++ b/src/adonisjs/public/infra/token-validator-swe.js @@ -42,6 +42,7 @@ class TokenController { sessionStorage.setItem('harena-user-institution', endpointResponse.data.institution) sessionStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) sessionStorage.setItem('harena-user-id', endpointResponse.data.userId) + sessionStorage.setItem('harena-user-username', endpointResponse.data.username) // localStorage.setItem('harena-user-grade', endpointResponse.data.grade) // localStorage.setItem('harena-user-institution', endpointResponse.data.institution) // localStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) @@ -119,6 +120,8 @@ class TokenController { sessionStorage.setItem('harena-user-grade', endpointResponse.data.grade) sessionStorage.setItem('harena-user-institution', endpointResponse.data.institution) sessionStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) + sessionStorage.setItem('harena-user-id', endpointResponse.data.userId) + sessionStorage.setItem('harena-user-username', endpointResponse.data.username) // localStorage.setItem('harena-user-grade', endpointResponse.data.grade) // localStorage.setItem('harena-user-institution', endpointResponse.data.institution) // localStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) diff --git a/src/adonisjs/public/infra/token-validator.js b/src/adonisjs/public/infra/token-validator.js index a09d1b7f..45e40475 100644 --- a/src/adonisjs/public/infra/token-validator.js +++ b/src/adonisjs/public/infra/token-validator.js @@ -42,6 +42,7 @@ class TokenController { sessionStorage.setItem('harena-user-institution', endpointResponse.data.institution) sessionStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) sessionStorage.setItem('harena-user-id', endpointResponse.data.userId) + sessionStorage.setItem('harena-user-username', endpointResponse.data.username) // localStorage.setItem('harena-user-grade', endpointResponse.data.grade) // localStorage.setItem('harena-user-institution', endpointResponse.data.institution) // localStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) @@ -119,6 +120,8 @@ class TokenController { sessionStorage.setItem('harena-user-grade', endpointResponse.data.grade) sessionStorage.setItem('harena-user-institution', endpointResponse.data.institution) sessionStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) + sessionStorage.setItem('harena-user-id', endpointResponse.data.userId) + sessionStorage.setItem('harena-user-username', endpointResponse.data.username) // localStorage.setItem('harena-user-grade', endpointResponse.data.grade) // localStorage.setItem('harena-user-institution', endpointResponse.data.institution) // localStorage.setItem('harena-user-institution-id', endpointResponse.data.institutionId) From f0194cdd6b9f56ebae076f8babea6fde02fa964c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Santanch=C3=A8?= Date: Tue, 12 Sep 2023 19:23:28 -0300 Subject: [PATCH 3/3] feat (template): new sequence template --- .../templates/simple/case/sequence-dynamic.md | 21 +++++++++++ .../templates/simple/case/sequence-static.md | 33 ++++++++++++++++++ .../public/templates/simple/case/sequence.png | Bin 0 -> 12994 bytes .../templates/simple/knot/seq_description.md | 9 +++++ .../templates/simple/knot/seq_question.md | 11 ++++++ .../simple/knot/seq_question_certainty.md | 15 ++++++++ src/adonisjs/public/templates/templates.json | 27 ++++++++++++-- 7 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 src/adonisjs/public/templates/simple/case/sequence-dynamic.md create mode 100644 src/adonisjs/public/templates/simple/case/sequence-static.md create mode 100644 src/adonisjs/public/templates/simple/case/sequence.png create mode 100644 src/adonisjs/public/templates/simple/knot/seq_description.md create mode 100644 src/adonisjs/public/templates/simple/knot/seq_question.md create mode 100644 src/adonisjs/public/templates/simple/knot/seq_question_certainty.md diff --git a/src/adonisjs/public/templates/simple/case/sequence-dynamic.md b/src/adonisjs/public/templates/simple/case/sequence-dynamic.md new file mode 100644 index 00000000..2b13db65 --- /dev/null +++ b/src/adonisjs/public/templates/simple/case/sequence-dynamic.md @@ -0,0 +1,21 @@ +# Scene 1 (detailed) # + +**Scene 1** + +Write here. + +* Next -> Flow.Next + +# Final (detailed,end) + +Write here. + +* Next Case -> Case.Next + +# Answer (note, division) # + +**You answered:** ^Previous.input1^ + +___ Template ___ + +* template: simple/case/sequence diff --git a/src/adonisjs/public/templates/simple/case/sequence-static.md b/src/adonisjs/public/templates/simple/case/sequence-static.md new file mode 100644 index 00000000..71bc8da6 --- /dev/null +++ b/src/adonisjs/public/templates/simple/case/sequence-static.md @@ -0,0 +1,33 @@ +___ Flow ___ + +* Sequential: + * _sequential_ + +___ Data ___ + +* theme: simple(blue) +* namespaces: + * evidence: http://purl.org/versum/evidence/ +* templates: + * categories: + * detailed: + * Description: simple/knot/seq_description + * Question: simple/knot/seq_question + * Question Certainty: simple/knot/seq_question_certainty + * Quiz: simple/knot/quiz + * Quiz Short: simple/knot/quiz_short + * Visit Day: simple/knot/visit_day + * input: + * Description: simple/knot/seq_description + * Question: simple/knot/seq_question + * Question Certainty: simple/knot/seq_question_certainty + * Quiz: simple/knot/quiz + * Quiz Short: simple/knot/quiz_short + * Visit Day: simple/knot/visit_day + * quiz: + * Description: simple/knot/seq_description + * Question: simple/knot/seq_question + * Question Certainty: simple/knot/seq_question_certainty + * Quiz: simple/knot/quiz + * Quiz Short: simple/knot/quiz_short + * Visit Day: simple/knot/visit_day diff --git a/src/adonisjs/public/templates/simple/case/sequence.png b/src/adonisjs/public/templates/simple/case/sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..92e9803c6f0dd84ce7ed0b04484a7c9a5628372c GIT binary patch literal 12994 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 A5&!@I literal 0 HcmV?d00001 diff --git a/src/adonisjs/public/templates/simple/knot/seq_description.md b/src/adonisjs/public/templates/simple/knot/seq_description.md new file mode 100644 index 00000000..87f3353e --- /dev/null +++ b/src/adonisjs/public/templates/simple/knot/seq_description.md @@ -0,0 +1,9 @@ +# Scene _knot_number_ (detailed) # + +**Scene X** + +{{description +Write here. +}} + +* Next -> Flow.Next \ No newline at end of file diff --git a/src/adonisjs/public/templates/simple/knot/seq_question.md b/src/adonisjs/public/templates/simple/knot/seq_question.md new file mode 100644 index 00000000..78a7b78e --- /dev/null +++ b/src/adonisjs/public/templates/simple/knot/seq_question.md @@ -0,0 +1,11 @@ +# Question _knot_number_ (input) # + +**Question X** + +{{question +> Write here the **question**. +? answer + * type: text +}} + +* Next -> Flow.Next diff --git a/src/adonisjs/public/templates/simple/knot/seq_question_certainty.md b/src/adonisjs/public/templates/simple/knot/seq_question_certainty.md new file mode 100644 index 00000000..073eff84 --- /dev/null +++ b/src/adonisjs/public/templates/simple/knot/seq_question_certainty.md @@ -0,0 +1,15 @@ +# Question _knot_number_ (input) # + +> Write here the **lead-in**. +? answer + * type: text + +> How certain are you of your diagnosis? +? confidence + * type: slider + * min: 0 + * max: 100 + * value: 50 + * index: true + +* Next -> Flow.Next diff --git a/src/adonisjs/public/templates/templates.json b/src/adonisjs/public/templates/templates.json index 4208471f..c4045e79 100644 --- a/src/adonisjs/public/templates/templates.json +++ b/src/adonisjs/public/templates/templates.json @@ -5,6 +5,13 @@ "icon": "plain/case/plain.png", "scope": "case", "environment": "jacinto"}, +"Sequence": + {"questId": "sequence", + "description": "Basic sequence of events.", + "path": "simple/case/sequence", + "icon": "simple/case/sequence.png", + "scope": "case", + "environment": "jacinto"}, "Lab 1": {"questId": "labs", "description": "Lab 1.", @@ -25,7 +32,7 @@ "path": "labs/lab_3", "icon": "labs/labs.png", "scope": "case", - "environment": "jacinto"}, + "environment": "development"}, "Zombie": {"questId": "zombie", "description": "Zombie Venom.", @@ -38,7 +45,8 @@ "description": "Novo visual do Jacinto.", "path": "jacinto/case/standard_eletro", "icon": "jacinto/images/standard_eletro.png", - "scope": "case"}, + "scope": "case", + "environment": "development"}, "Quiz da Emergência": {"questId": "quiz-da-emergencia", "description": "Um quiz com quatro alternativas.", @@ -107,11 +115,26 @@ "path": "simple/knot/quiz", "icon": "simple/knot/quiz.png", "scope": "knot"}, + "Description Sequence": + {"description": "Description block (sequence).", + "path": "simple/knot/seq_description", + "icon": "simple/images/description.png", + "scope": "knot"}, "Description": {"description": "Description of a case or report.", "path": "simple/knot/description", "icon": "simple/images/description.png", "scope": "knot"}, + "Question Sequence": + {"description": "Question with a text input (sequence).", + "path": "simple/knot/seq_question", + "icon": "simple/images/description.png", + "scope": "knot"}, + "Question with Certainty Sequence": + {"description": "Question with a text input and certainty (sequence).", + "path": "simple/knot/seq_question_certainty", + "icon": "simple/images/description.png", + "scope": "knot"}, "Input": {"description": "Question with a text input.", "path": "simple/knot/input",