Skip to content

Commit

Permalink
Merge pull request #449 from harena-lab/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
santanche authored Sep 21, 2023
2 parents 5c2666e + 67a1aa7 commit f09a963
Show file tree
Hide file tree
Showing 5 changed files with 189 additions and 27 deletions.
20 changes: 12 additions & 8 deletions src/adonisjs/public/author/env/inf331_2023/js/lab-progress.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
3:this.setDateToISO(hourExpiration(new Date('2023/09/11 GMT-0300'),14)),4:this.setDateToISO(hourExpiration(new Date('2023/09/16 GMT-0300'),18)),
5:this.setDateToISO(hourExpiration(new Date('2023/09/20 GMT-0300'),18)),6:this.setDateToISO(hourExpiration(new Date('2023/09/27 GMT-0300'),18))}
this.labExpiration = {1:this.setDateToISO(hourExpiration(new Date('2023/09/18 GMT-0300'),23)), 2:this.setDateToISO(hourExpiration(new Date('2023/09/18 GMT-0300'),23)),
3:this.setDateToISO(hourExpiration(new Date('2023/09/18 GMT-0300'),23)),4:this.setDateToISO(hourExpiration(new Date('2023/09/23 GMT-0300'),23)),
3:this.setDateToISO(hourExpiration(new Date('2023/09/18 GMT-0300'),23)),4:this.setDateToISO(hourExpiration(new Date('2023/09/30 GMT-0300'),23)),
5:this.setDateToISO(hourExpiration(new Date('2023/09/30 GMT-0300'),23)),6:this.setDateToISO(hourExpiration(new Date('2023/10/06 GMT-0300'),23))}
this.start = this.start.bind(this)
MessageBus.i.subscribe('control/html/ready', this.start)
Expand Down Expand Up @@ -231,6 +231,7 @@
let createdBtn = false
let released = true
const lateReleaseTxt = 'Não publicado...(atraso)'
const progressLate = 'Aberto (com perda na nota)'
progressWrapper.innerHTML = ''
for (let i = 1; i <= Object.keys(this.labRelease).length; i++) {
labCompleted = false
Expand Down Expand Up @@ -285,19 +286,21 @@

}else if (pastRelease && labExpired && !labExtended){
// console.log('============ release and expiration greater')
template.innerHTML = labProgressManager.lvlContainerExpired
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, 'Fechado')
.replace(/\[progressColor\]/ig, labCompleted?successColor:'bg-lab-dark text-lab-light')
.replace(/\[progress\]/ig, progressLate)
.replace(/\[progressColor\]/ig, failColor)
.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
Expand Down Expand Up @@ -336,19 +339,21 @@


}else if(pastRelease && labExpired && !labExtended){
template.innerHTML = labProgressManager.lvlContainerExpired
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, 'Fechado')
.replace(/\[progressColor\]/ig, labCompleted?successColor:'bg-lab-dark text-lab-light')
.replace(/\[progress\]/ig, progressLate)
.replace(/\[progressColor\]/ig, failColor)
.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 (pastRelease){
if (released == false){
template.innerHTML = labProgressManager.lvlContainerLocked
Expand All @@ -357,7 +362,6 @@
.replace(/\[labText\]/ig, lateReleaseTxt)

}else{
console.log('heere',i);
createdBtn = true
if (!labExpired || (pastRelease && labExpired && labExtended)){
if (labExtended){
Expand Down
38 changes: 19 additions & 19 deletions src/adonisjs/public/infra/conditional-layout.js
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ class LayoutController {
if(userGrade === 'student'){
let labN = LayoutController.case.message.keywords
labN = labN.substring(labN.length-1)
const expirationDate = labProgressManager.i.labExpiration[labN]
const expirationDate = new Date()
//Verifies property 'feedback' to disable button and change layout
if(LayoutController.case.message.property.complete){
if(LayoutController.case.message.property.complete == 0){
Expand Down Expand Up @@ -327,24 +327,24 @@ class LayoutController {
document.querySelector('#harena-case-property').remove()
document.querySelector('#harena-inf331-complete-lab').remove()
})
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 = ""
}
}
// 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'){
if(document.querySelector('#harena-inf331-complete-lab'))
Expand Down
143 changes: 143 additions & 0 deletions src/adonisjs/public/templates/labs/lab_4-dynamic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# Tarefa 1 #

<h2>Pré-componentes Push e Pull</h2>
<h3>Versão <b>Push</b></h3>
<hr>
<hr>

{{explica1
**Parte 1 - Função de segundo grau**

Escreva uma classe `SecondDegree` cujos objetos produzam valores de uma função de segundo grau na abordagem **Push** e os enviem para um objeto `BarChart`.
}}

<code>
{{codigo1
Escreva a classe aqui.
}}
</code>

<br>

{{explica2
**Parte 2 - Plotagem de parábola**

Escreva um programa que conecte um objeto da classe `SecondDegree` a um objeto da classe `BarChart` de forma que seja plotada uma parábola na abordagem **Push**. Por conta do comportamento da classe `BarChart`, a parábola será plotada virada, ou seja eixos X e Y trocados.
}}

<code>
{{codigo2
Escreva todo o código desta parte da tarefa aqui.
}}
</code>

<br>

# Tarefa 2 #

<h2>Pré-componentes Push e Pull</h2>
<h3>Versão <b>Pull</b></h3>
<hr>
<hr>

{{explica1
**Parte 1 - Função de segundo grau**

Escreva uma classe `SecondDegree` cujos objetos produzam valores de uma função de segundo grau na abordagem **Pull**, ou seja, são produzidos sob demanda a partir de solicitação dos métodos `first` e `next`.
}}

<code>
{{codigo1
Escreva a classe aqui.
}}
</code>

<br>

{{explica2
**Parte 2 - Plotagem de parábola**

Escreva um programa que conecte um objeto da classe `SecondDegree` a um objeto da classe `BarChart` de forma que seja plotada uma parábola na abordagem **Pull**. Por conta do comportamento da classe `BarChart`, a parábola será plotada virada, ou seja eixos X e Y trocados.
}}

<code>
{{codigo2
Escreva todo o código desta parte da tarefa aqui.
}}
</code>

<br>

# Tarefa 3 #

<h2>Visão Interna do Componente</h2>
<h3>Linha de Montagem</h3>
<hr>
<hr>

{{explica1
**Parte 1 - Função de segundo grau**

Evolua a sua classe para produção de valores de uma função de segundo grau - `SecondDegree` (abordagem pull) - organizando-a em um pacote, com construtor sem argumentos e acesso a propriedades (`gets` e `sets`).
}}

<code>
{{codigo1
Escreva a classe aqui.
}}
</code>

<br>

{{explica2
**Parte 2 - Plotagem de parábola**

Escreva um programa que conecte um objeto da classe `SecondDegree` a um objeto da classe `BarChart` de forma que seja plotada uma parábola usando seu novo modelo.
}}

<code>
{{codigo2
Escreva todo o código desta parte da tarefa aqui.
}}
</code>

<br>

# Tarefa 4 #

<h2>Visão Interna do Componente</h2>
<h3>Acesso Exclusivo por Interfaces</h3>
<hr>
<hr>

{{explica1
**Parte 1 - Função de segundo grau**

Evolua o seu componente para produção de valores de uma função de segundo grau - `SecondDegree` (abordagem pull) – tornando o acesso exclusivo por interfaces.
}}

<code>
{{codigo1
Escreva a classe aqui.
}}
</code>

<br>

{{explica2
**Parte 2 - Plotagem de parábola**

Escreva um programa que conecte um objeto da classe `SecondDegree` a um objeto da classe `BarChart` de forma que seja plotada uma parábola usando seu novo modelo com acesso exclusivo por interfaces. Preste atenção que o componente deverá suportar o `ISequence` para conseguir se conectar ao `BarChart`.
}}

<code>
{{codigo2
Escreva todo o código desta parte da tarefa aqui.
}}
</code>

<br>

___ Template ___

* template: labs/lab_4
8 changes: 8 additions & 0 deletions src/adonisjs/public/templates/labs/lab_4-static.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
___ Flow ___

* Sequential:
* _sequential_

___ Data ___

* theme: simple(blue)
7 changes: 7 additions & 0 deletions src/adonisjs/public/templates/templates.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@
"icon": "labs/labs.png",
"scope": "case",
"environment": "development"},
"Lab 4":
{"questId": "labs",
"description": "Lab 4.",
"path": "labs/lab_4",
"icon": "labs/labs.png",
"scope": "case",
"environment": "jacinto"},
"Zombie":
{"questId": "zombie",
"description": "Zombie Venom.",
Expand Down

0 comments on commit f09a963

Please sign in to comment.