<commit_before><template>
    <div class="col s12 m12 l12">
        <ul class="collapsible" data-collapsible="acordion">
            <li>
                <div class="collapsible-header">
                    <badge :pendente="disciplina.pendente"></badge>
                    {{ disciplina.descricao }}
                </div>
                <div class="collapsible-body center" v-if="disciplina.pendente">
                    <lista-de-unidades :unidades="disciplina.unidades" :disciplina="disciplina"></lista-de-unidades>                    
                </div>
                
                <div v-show="disciplina.pendente === false">
                    <h5 class="center"><strong>Prova Agendada</strong></h5>
                    <table class="highlight centered">
                        <thead>
                            <tr>
                                <th>Unidade</th>
                                <th>Data</th>
                                <th>Horário</th>
                                <th>Sala</th>
                                
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>{{ unidadeAgendada }}</td>
                                <td>{{ dataAgendada }}</td>
                                <td>{{ horarioAgendado }}</td>
                                <td>{{ salaAgendada }}</td>
                            </tr>
                        </tbody>
                    </table>
                    <br>
                    <div class="row center">
                        <a @click="cancelarDisciplina(disciplina.descricao)" class='card-panel teal lighten-2 waves-effect waves-light btn'>Cancelar Agendamento</a>
                    </div>
                    <br>
                </div>
            </li>

        </ul>

    </div>
</template>

<script>
    import moment from 'moment';
    import ListaDeUnidades from './ListaDeUnidades';
    import Badge from './Badge';
    import sweetalert from 'sweetalert';
    import {firebase} from '../../Firebase'

    const firebaseDatabase = firebase.database();
    const disciplinasRef = firebaseDatabase.ref('usuarios');

    export default {
        props: ['disciplina'],
        components: {
            ListaDeUnidades,
            Badge,
        },
        data() {
            return {
                unidadeAgendada: '',
                dataAgendada: '',
                horarioAgendado: '',
                salaAgendada: '',
                usuario: [],
                uidUsuarioLogado: '',
            }
        },
        created: function() {
            this.uidUsuarioLogado = JSON.parse(localStorage.getItem("firebase:authUser:AIzaSyCGdLFWep-fuAlpc9RterbDSPxtn0SEIHU:[DEFAULT]"));
            this.uidUsuarioLogado = this.uidUsuarioLogado.uid;
            var disciplinasPromise = disciplinasRef.once('value');
            disciplinasPromise.then((snapshot) => {
                snapshot.forEach((item) => {               
                this.usuario = item.val();
                });
                this.usuarioDisciplinasAgendadas();
            });
        },
        mounted: function() {
            $('.collapsible').collapsible();
            $('select').material_select();
            this.disciplina.pendente = true;
        },
        methods: {
            usuarioDisciplinasAgendadas: function() {
                var qtdUsuarios = this.usuario.length;
                for (var i = 0; i < qtdUsuarios; i++) {
                    if(this.usuario[i].uid == this.uidUsuarioLogado) {
                        var qtdDisciplinasAgendadas = this.usuario[i].disciplinasAgendadas.length;
                        for(var j = 0; j < qtdDisciplinasAgendadas; j++) {
                            if (this.disciplina.descricao == this.usuario[i].disciplinasAgendadas[j].disciplinaAgendada) {
                                this.disciplina.pendente = false;
                                this.unidadeAgendada = this.usuario[i].disciplinasAgendadas[j].unidadeAgendada;
                                this.dataAgendada = moment(JSON.parse(this.usuario[i].disciplinasAgendadas[j].dataAgendada+'000')).format('DD/MM/YYYY');
                                this.horarioAgendado = moment(JSON.parse(this.usuario[i].disciplinasAgendadas[j].dataAgendada+'000')).format('hh:mm');
                                this.salaAgendada = this.usuario[i].disciplinasAgendadas[j].salaAgendada;
                                break;
                            }
                        }
                    }
                }
            },
            cancelarDisciplina: function(disciplina) {
                // var horarioMoment = moment(JSON.parse(horario+'000')).format('DD/MM/YYYY - hh:mm') -->
                sweetalert({

                    title: 'Cancelar Agendamento?',
                    html: true,
                    text:
                        '<ul>' + 
                            '<li>' + disciplina + '</li>' + 
                            '<li>' + this.unidadeAgendada + '</li>' + 
                            '<li>' + this.dataAgendada + '</li>' + 
                            '<li>' + this.horarioAgendado + 'h</li>' + 
                            '<li> Sala ' + this.salaAgendada + '</li>' +
                        '</ul>',
                    type: 'warning',
                    showCancelButton: true,
                    cancelButtonText: 'Cancelar',
                    confirmButtonColor: '#DD6B55',
                    confirmButtonText: 'Confirmar Cancelamento',
                    closeOnConfirm: true,
                },
                () => {
                    var disciplinasAgendadas = JSON.parse(localStorage.getItem("Agendamentos")); // puxa os dados do local storage para a variável disciplinasAgendadas
                    var qtdDeDisciplinas = disciplinasAgendadas.length;
                    for (var i = 0; i < qtdDeDisciplinas; i++) {
                        if (disciplinasAgendadas[i].disciplinaAgendada === disciplina) {
                        disciplinasAgendadas.splice(i, 1);
                        break;
                        };
                    };
                    localStorage.setItem("Agendamentos", JSON.stringify(disciplinasAgendadas)); // salva novamente no local storage sobrescrevendo o que está lá
                    this.disciplina.pendente = true;
                });
            },
        },
    };
</script>
<commit_msg>Otimização na recuperação do usuário e suas disciplinas agendadas<commit_after><template>
  <div class="col s12 m12 l12">
    <ul class="collapsible" data-collapsible="acordion">
      <li>
        <div class="collapsible-header">
          <badge :pendente="disciplina.pendente"></badge>
          {{ disciplina.descricao }}
        </div>
        <div class="collapsible-body center" v-if="disciplina.pendente">
          <lista-de-unidades :unidades="disciplina.unidades" :disciplina="disciplina"></lista-de-unidades>
        </div>

        <div v-show="disciplina.pendente === false">
          <h5 class="center"><strong>Prova Agendada</strong></h5>
          <table class="highlight centered">
            <thead>
              <tr>
                <th>Unidade</th>
                <th>Data</th>
                <th>Horário</th>
                <th>Sala</th>

              </tr>
            </thead>
            <tbody>
              <tr>
                <td>{{ unidadeAgendada }}</td>
                <td>{{ dataAgendada }}</td>
                <td>{{ horarioAgendado }}</td>
                <td>{{ salaAgendada }}</td>
              </tr>
            </tbody>
          </table>
          <br>
          <div class="row center">
            <a @click="cancelarDisciplina(disciplina.descricao)" class='card-panel teal lighten-2 waves-effect waves-light btn'>Cancelar Agendamento</a>
          </div>
          <br>
        </div>
      </li>

    </ul>

  </div>
</template>


<script>

import moment from 'moment';
import ListaDeUnidades from './ListaDeUnidades';
import Badge from './Badge';
import sweetalert from 'sweetalert';
import {firebase} from '../../Firebase'

const firebaseDatabase = firebase.database();
const disciplinasRef = firebaseDatabase.ref('usuarios');

export default {
  props: ['disciplina'],
  components: {
    ListaDeUnidades,
    Badge,
  },
  data() {
    return {
      unidadeAgendada: '',
      dataAgendada: '',
      horarioAgendado: '',
      salaAgendada: '',
      usuario: [],
    }
  },
  created: function () {
    var disciplinasPromise = disciplinasRef.once('value');
    disciplinasPromise.then((snapshot) => {
      snapshot.forEach((user) => {
        for (var i = 0; i < user.val().length; i++) {
          if (user.val()[i].uid == firebase.auth().currentUser.uid) {
            this.usuario = user.val()[i];
          }
        }
      });
      this.usuarioDisciplinasAgendadas();
    });
  },
  mounted: function () {
    $('.collapsible').collapsible();
    $('select').material_select();
    this.disciplina.pendente = true;
  },
  methods: {
    usuarioDisciplinasAgendadas: function () {
      for (var i = 0; i < this.usuario.disciplinasAgendadas.length; i++) {
        if (this.disciplina.descricao == this.usuario.disciplinasAgendadas[i].disciplinaAgendada) {
          this.disciplina.pendente = false;
          this.unidadeAgendada = this.usuario.disciplinasAgendadas[i].unidadeAgendada;
          this.dataAgendada = moment(JSON.parse(this.usuario.disciplinasAgendadas[i].dataAgendada + '000')).format('DD/MM/YYYY');
          this.horarioAgendado = moment(JSON.parse(this.usuario.disciplinasAgendadas[i].dataAgendada + '000')).format('hh:mm');
          this.salaAgendada = this.usuario.disciplinasAgendadas[i].salaAgendada;
          break;
        }
      }
    },
    cancelarDisciplina: function (disciplina) {
      // var horarioMoment = moment(JSON.parse(horario+'000')).format('DD/MM/YYYY - hh:mm') -->
      sweetalert({
          title: 'Cancelar Agendamento?',
          html: true,
          text: '<ul>' +
            '<li>' + disciplina + '</li>' +
            '<li>' + this.unidadeAgendada + '</li>' +
            '<li>' + this.dataAgendada + '</li>' +
            '<li>' + this.horarioAgendado + 'h</li>' +
            '<li> Sala ' + this.salaAgendada + '</li>' +
            '</ul>',
          type: 'warning',
          showCancelButton: true,
          cancelButtonText: 'Cancelar',
          confirmButtonColor: '#DD6B55',
          confirmButtonText: 'Confirmar Cancelamento',
          closeOnConfirm: true,
        },
        () => {
          var disciplinasAgendadas = JSON.parse(localStorage.getItem("Agendamentos")); // puxa os dados do local storage para a variável disciplinasAgendadas
          var qtdDeDisciplinas = disciplinasAgendadas.length;
          for (var i = 0; i < qtdDeDisciplinas; i++) {
            if (disciplinasAgendadas[i].disciplinaAgendada === disciplina) {
              disciplinasAgendadas.splice(i, 1);
              break;
            };
          };
          localStorage.setItem("Agendamentos", JSON.stringify(disciplinasAgendadas)); // salva novamente no local storage sobrescrevendo o que está lá
          this.disciplina.pendente = true;
        });
    },
  },
}; 

</script>


{'fraction_non_alphanumeric': 0.1309219232465814, 'fraction_numerical': 0.0045875606528451695, 'mean_word_length': 1.5224744103248775, 'pattern_counts': {'":': 0, '<': 145, '<?xml version=': 0, '>': 147, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6952792', 'n_tokens_mistral': 3337, 'n_tokens_neox': 3240, 'n_words': 534}