- const attention_card_template = (self) => {
- return `<style>
- .attention--attention-card {
- border-radius: 22px !important;
- box-shadow: 0 6px 18px rgba(0, 0, 0, .15);
- z-index: 10;
- min-width: 14rem !important;
- }
- .attention--attention-card-header {
- position: absolute;
- z-index: 0;
- top: -2rem;
- border-radius: 12px 12px 0 0;
- width: 100%;
- }
- .attention-badge {
- border-radius: 22px !important;
- }
- .bg-orange {
- background-color: #CF9D2B;
- }
- </style>
- <div class="card position-relative mt-5">
- <div class="card-header text-white p-2 attention--attention-card-header ${self.bg_picker()} d-flex justify-content-between">
- <p class=" ">Afiliado: ${self.$data.contract}</p>
- <p class="text-capitalize">${self.$data.attention_type}</p>
- </div>
- <div class="card-body attention--attention-card bg-white px-2 pt-2">
- <div class="justify-content-between d-flex ">
- <i class="uil uil-angle-down font-size-16 text-dark ml-auto" id="collapse_card"></i>
- <a href="#"><i class="uil uil-pen font-size-16 text-dark" id=""></i></a>
- <div class="dropdown">
- <div class="dropdown">
- <a href="#" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true"
- aria-expanded="false">
- <i class="uil uil-ellipsis-v font-size-16 text-dark"></i></a>
- <ul class="dropdown-menu multi-level" id="dropdown_options" role="menu"
- aria-labelledby="dropdownMenu">
- </ul>
- </div>
- </div>
- </div>
- <div id="condensed_info" class="d-none flex-column"></div>
- <div id="card_body">
- <p><b>${self.$data.customer_name}</b></p>
- <p><b>Problema:</b> ${self.$data.attention_data['attention_description'].value}</p>
- <p class="mt-n3"><b>Dirección de atención:</b> ${self.$data.attention_data['customer_address'].value}</p>
- <hr>
- <div class="d-flex flex-column px-2" id="badges_container"></div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="remove" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
- aria-hidden="true">
- <div class="modal-dialog modal-lg" role="document">
- <div class="modal-content">
- <div class="modal-header flex-column">
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- <h5 class="modal-title">Remover caso de</h5>
- </div>
- <div class="modal-body">
- <div class="form-group">
- <label>Motivo</label>
- <textarea class="form-control"></textarea>
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
- <button type="button" class="btn btn-danger" id="remove_case_btn" data-dismiss="modal">Remover caso
- </button>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="${self.$data.id}_swap_ambulance" tabindex="-1" role="dialog"
- aria-labelledby="exampleModalLabel"
- aria-hidden="true">
- <div class="modal-dialog modal-lg" role="document">
- <div class="modal-content">
- <div class="modal-header flex-column">
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- <h5 class="modal-title">Cambiar ambulancia para ${self.$data.customer_name}</h5>
- </div>
- <div class="modal-body">
- <div class="form-group">
- <label>Ambulancia Actual</label>
- <select class="form-control" id="current_ambulance">
- </select>
- </div>
- <div class="form-group">
- <label>Nueva Ambulancia</label>
- <select class="form-control" id="new_ambulance">
- </select>
- </div>
- <div class="form-group">
- <label>Razón de cambio</label>
- <textarea class="form-control" id="ambulance_swap_reason"></textarea>
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
- <button type="button" class="btn btn-primary" id="change_ambulance_btn" data-dismiss="modal">
- Cambiar ambulancia
- </button>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="${self.$data.id}_change_attention_date" tabindex="-1" role="dialog"
- aria-labelledby="exampleModalLabel"
- aria-hidden="true">
- <div class="modal-dialog modal-lg" role="document">
- <div class="modal-content">
- <div class="modal-header flex-column">
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- <h5 class="modal-title">Cambiar fecha de atención para ${self.$data.customer_name}</h5>
- </div>
- <div class="modal-body">
- <div class="form-group py-2">
- <input type="date" class="form-control attention-form" id="new_attention_date" placeholder=""
- name="Fecha de atención" maxlength="" minlength="">
- </div>
- <div class="form-group py-2">
- <input type="time" class="form-control attention-form" id="new_attention_hour" placeholder=""
- name="Hora de atención" maxlength="" minlength="">
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
- <button type="button" class="btn btn-primary" id="change_attention_date_btn" data-dismiss="modal">
- Cambiar fecha de atención
- </button>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="${self.$data.id}_remove" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
- aria-hidden="true">
- <div class="modal-dialog modal-lg" role="document">
- <div class="modal-content">
- <div class="modal-header flex-column">
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- <h5 class="modal-title">Remover caso de ${self.$data.customer_name}</h5>
- </div>
- <div class="modal-body">
- <div class="form-group">
- <label>Motivo</label>
- <textarea class="form-control"></textarea>
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
- <button type="button" class="btn btn-danger" id="remove_attention_btn" data-dismiss="modal">Remover caso
- </button>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="${self.$data.id}_end_attention" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
- aria-hidden="true">
- <div class="modal-dialog modal-lg" role="document">
- <div class="modal-content">
- <div class="modal-header flex-column">
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- <h5 class="modal-title">Finalizar caso de ${self.$data.customer_name}</h5>
- </div>
- <div class="modal-body">
- <div class="form-group">
- <label>Motivo</label>
- <textarea class="form-control"></textarea>
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
- <button type="button" class="btn btn-danger" id="end_attention_btn" data-dismiss="modal">Finalizar caso
- </button>
- </div>
- </div>
- </div>
- </div>
- `;
- }
- class Attention_card extends HTMLElement {
- constructor() {
- super();
- }
- construct() {
- this.innerHTML = attention_card_template(this)
- this.$states = new State_machine();
- this.$badges = {};
- this.ambulance_list = {};
- this.$badges_container = this.querySelector('#badges_container')
- this.cache = JSON.parse(sessionStorage.getItem('que'))[this.$data.id];
- this.ambulances = Object.values(JSON.parse(sessionStorage.getItem('ambulance')));
- this.$dropdown_options = this.querySelector('#dropdown_options')
- this.$data = this.cache
- this.$states.current_states = this.cache.status;
- this.$collapsed = false;
- }
- create_action_menu() {
- console.log(this.$data.que)
- this.$dropdown_options.innerHTML = `
- <li class="dropdown-item"><a href="javascript:void(0);" class="text-dark"><i
- class="uil uil-cloud mr-2"></i>Agregar seguimiento</a></li>
- <li id="change_attention_date_dropdown" class="dropdown-item ${this.$data.que !== "programmed_que" ? "d-none" : ""}"><a href="javascript:void(0);" class="text-dark"><i
- class="uil uil-calendar-alt mr-2"></i>Cambiar Fecha de atención</a></li>
- <li id="swap_ambulance" class="dropdown-item ${!this.$states.contains('ambulance_dispatched') ? "d-none" : ""}"><a href="javascript:void(0);" class="text-dark"><i
- class="uil uil-exchange mr-2"></i>Intercambiar Ambulancia</a></li>
- <li class="dropdown-submenu dropdown-item ${this.$data.que === "programmed_que" ? "d-none" : ""}"><a tabindex="-1" class="text-dark"> <i
- class="uil uil-ambulance mr-2"></i>${this.$states.contains('ambulance_dispatched') ? "Despachar Ambulancia de refuerzo" : "Despachar ambulancia"} </a>
- <ul class="dropdown-menu" id="ambulance_list_dropdown">
- <li class="dropdown-item"><a tabindex="-1" href="#">Second level</a></li>
- </ul>
- </li>
- <li class="dropdown-submenu dropdown-item ${!this.$states.contains('ambulance_dispatched') ? "d-none" : "Despachar ambulancia"}"><a tabindex="-1" class="text-dark"> <i
- class="uil uil-location-pin-alt mr-2"></i>Marcar llegada de ambulancia </a>
- <ul class="dropdown-menu" id="arrival_list_dropdown">
- </ul>
- </li>
- <div class="dropdown-divider"></div>
- <li class="dropdown-item" id="remove_attention"><a href="javascript:void(0);" class="text-danger" id="remove_attention"><i
- class="uil uil-times-circle mr-2"></i>Remover Atención</a></li>
- <li class="dropdown-item" id="end_attention"><a href="javascript:void(0);" class="text-warning" id="remove_attention"><i
- class="uil uil-arrow-to-right mr-2"></i>Finalizar Atención</a></li>
- `
- //action_menu stuff
- this.querySelector('#remove_attention').onclick = () => {
- this.remove_attention();
- }
- }
- save_data() {
- console.log(this.$data)
- //add to cache
- this.$data.status = this.$states.current_states
- //update cache
- que_manager.update_client(this.$data.id, this.$data);
- }
- create_states(state, value) {
- this.$states.set_state(state, value)
- //add to cache
- this.$data.status = this.$states.current_states
- //update cache
- que_manager.update_client(this.$data.id, this.$data);
- this.parse_badges();
- }
- load_cache_from_state() {
- if (this.$data.que === "programmed_que" && !this.$states.contains('programmed_attention')) {
- this.create_states("programmed_attention", {
- date: this.$data.attention_data['attention_date'].value,
- hour: this.$data.attention_data['attention_hour'].value
- })
- this.querySelector('#new_attention_date').value = this.$data.attention_data['attention_date'].value
- this.querySelector('#new_attention_hour').value = this.$data.attention_data['attention_hour'].value
- } else if(this.$data.que === "programmed_que"){
- this.querySelector('#new_attention_date').value = this.$states.contains('programmed_attention').value.date
- this.querySelector('#new_attention_hour').value = this.$states.contains('programmed_attention').value.hour
- }
- if (!this.$states.contains('attention_type')) {
- this.create_states('attention_type', this.$data.attention_type);
- }
- if (!this.$states.contains('attention_wait_ts') && this.$data.que === "wait_que") {
- this.create_states('attention_wait_ts', Math.round((new Date()).getTime() / 1000))
- this.add_badge('attention_wait_ts', dayjs.unix(this.$data.status.attention_wait_ts.value).fromNow(), "bg-success text-white")
- }
- if (this.$states.contains('ambulance_dispatched')) {
- let ambulance_data = this.$states.contains('ambulance_dispatched')
- ambulance_data.value.forEach(ambulance => {
- this.add_badge(ambulance, `${ambulance} en camino`, 'badge-info')
- })
- this.create_action_menu();
- this.create_ambulance_arrival_list();
- }
- if (this.$states.contains('attention_arrived')) {
- let ambulance_data = this.$states.contains('ambulance_arrived')
- ambulance_data.value.forEach(ambulance => {
- this.add_badge(ambulance, `${ambulance} Arrivó`, 'badge-info')
- })
- this.create_action_menu();
- this.create_ambulance_arrival_list();
- }
- if (this.$states.contains('attention_arrived')) {
- let ts = this.$states.contains('attention_arrived').value
- this.add_badge('attention_arrived', dayjs.unix(ts).fromNow(), `bg-success text-white`)
- this.delete_badge('attention_wait_ts')
- }
- }
- on_state() {
- this.$states.on_state("ambulance_dispatched", (data) => {
- let ambulance_data = this.$states.current_states['ambulance_dispatched']
- this.create_action_menu();
- //parse_stuff
- this.parse_ambulance_in_dropdown();
- ambulance_data.value.forEach(ambulance => {
- this.add_badge(ambulance, `${ambulance} en camino`, 'badge-info')
- })
- })
- this.$states.on_state("attention_arrived", (data) => {
- let ts = this.$states.contains('attention_arrived').value
- this.add_badge('attention_arrived', dayjs.unix(ts).fromNow(), `bg-success text-white`)
- })
- }
- //card
- bg_picker() {
- switch (this.$data.attention_type) {
- case 'emergencias':
- return 'bg-danger text-white'
- // code block
- break;
- case 'urgencia':
- return 'bg-warning text-white'
- // code block
- break;
- case 'consulta medica':
- return 'bg-primary text-white'
- // code block
- break;
- case 'accidente de auto':
- return 'bg-orange text-white'
- // code block
- break;
- case 'traslado':
- return 'bg-success text-white'
- // code block
- break;
- case 'atencion programada':
- return 'bg-success text-white'
- // code block
- break;
- default:
- return 'bg-info text-white'
- // code block
- }
- }
- //BADGES
- add_badge(name, value, color) {
- let badge = document.createElement('span');
- badge.innerText = value
- badge.className = `badge ${color} attention-badge my-1`
- badge.style.fontSize = '.98rem'
- this.$badges[name] = {elem: badge, name: name, value: value, color: color}
- this.parse_badges()
- }
- delete_badge(name) {
- delete this.$badges[name];
- this.parse_badges();
- }
- parse_badges() {
- this.$badges_container.innerHTML = ""
- Object.values(this.$badges).forEach(badge => {
- this.$badges_container.appendChild(badge.elem)
- })
- }
- collapse_card() {
- let condensed = this.querySelector('#condensed_info')
- let collapse_btn = this.querySelector('#collapse_card')
- let info_cont = this.querySelector('#card_body');
- collapse_btn.onclick = () => {
- info_cont.classList.toggle('d-none')
- condensed.classList.toggle('d-none');
- condensed.classList.toggle('d-flex');
- condensed.innerHTML = `
- <p><b>${this.$data.customer_name}</b></p>
- <span class="badge ${this.timer_color(this.$data.status.attention_wait_ts.value)} text-white attention-badge" style="font-size: .98rem">${
- this.$data.status.attention_wait_ts !== undefined ?
- dayjs.unix(this.$data.status.attention_wait_ts.value).fromNow() : this.get_programmed_attention_date()}</span>
- `
- }
- }
- //time
- timer(cb = new Function()) {
- setInterval(() => {
- cb()
- }, 1000)
- }
- get_programmed_attention_date() {
- let attention_date = this.$states.contains('programmed_attention')
- if (attention_date) {
- let date_string = dayjs(`${attention_date.value.date} ${attention_date.value.hour}:00`).format("YYYY-MM-DD HH:mm:ss")
- let appoint_date = dayjs(date_string)
- return appoint_date.fromNow();
- }
- }
- get_programmed_attention_minutes() {
- let attention_date = this.$states.contains('programmed_attention')
- if (attention_date) {
- console.log(attention_date)
- let date_string = dayjs(`${attention_date.value.date} ${attention_date.value.hour}:00`).format("YYYY-MM-DD HH:mm:ss")
- let appoint_date = dayjs(date_string)
- return appoint_date.diff(dayjs(dayjs().format("YYYY-MM-DD HH:mm:ss")), 'minute')
- }
- }
- edit_programmed_attention_date() {
- let drop_down_btn = this.querySelector('#change_attention_date_dropdown');
- let change_attention_date_btn = this.querySelector('#change_attention_date_btn');
- drop_down_btn.onclick = () => {
- $(`#${this.$data.id}_change_attention_date`).modal('show');
- }
- change_attention_date_btn.onclick = () => {
- this.create_states("programmed_attention", {
- date: this.querySelector('#new_attention_date').value,
- hour: this.querySelector('#new_attention_hour').value
- })
- this.add_badge('programmed_attention', this.get_programmed_attention_date(), "bg-primary text-white")
- }
- }
- put_in_wait_que() {
- this.$data.que = "wait_que"
- this.save_data();
- this.load_cache_from_state();
- emitter_events.emit('REPARSE')
- }
- timer_color(ts = this.$data.status.attention_wait_ts.value) {
- //get minutes
- let old_string = dayjs.unix(this.$data.status.attention_wait_ts.value).format("YYYY-MM-DD HH:mm:ss")
- let old_time = dayjs(old_string)
- let now = dayjs()
- let minutes = now.diff(old_time, 'minute')
- if (minutes >= 0 && minutes < 9) {
- return "bg-success"
- } else if (minutes >= 9 && minutes < 19) {
- return "bg-warning"
- } else if (minutes >= 19) {
- return "bg-danger"
- }
- }
- //Ambulance
- swap_ambulance() {
- let swap_btn = this.querySelector('#swap_ambulance')
- swap_btn.onclick = () => {
- $(`#${this.$data.id}_swap_ambulance`).modal('show')
- }
- }
- set_ambulance() {
- let ambulances = Array.from(this.querySelectorAll('.ambulance-picker'));
- ambulances.forEach(ambulance => {
- ambulance.onclick = () => {
- let ambulance_data = this.$states.contains('ambulance_dispatched')
- if (!ambulance_data) {
- this.create_states('ambulance_dispatched', [ambulance.id])
- this.create_ambulance_arrival_list()
- emitter_events.emit("ambulance_dispatched", ambulance.id)
- } else {
- let test_for_dupli = ambulance_data.value.some(el => el === ambulance.id)
- if (test_for_dupli === false) {
- ambulance_data.value.push(ambulance.id);
- this.create_states('ambulance_dispatched', ambulance_data.value)
- this.create_ambulance_arrival_list()
- emitter_events.emit("ambulance_dispatched", ambulance.id)
- }
- }
- }
- })
- this.swap_ambulance();
- }
- parse_ambulance_in_dropdown() {
- let ambulance_container = this.querySelector('#ambulance_list_dropdown');
- ambulance_container.innerHTML = ""
- this.ambulances.forEach(ambulance => {
- if (ambulance.bussy !== true) {
- if (this.$states.contains('ambulance_dispatched')) {
- let current_ambulances = this.$states.contains('ambulance_dispatched').value
- let test_for_dupli = current_ambulances.some(elem => elem === ambulance.ambulance_name)
- if (test_for_dupli !== true) {
- let dropdown_item = document.createElement('li');
- let dropdown_link = document.createElement('a');
- dropdown_link.innerHTML = `<a href="javascript:void(0);" class="text-dark" id="dispatch_ambulance"><i class="uil uil-ambulance mr-2"></i>${ambulance.ambulance_name}</a></li>`
- dropdown_item.className = "dropdown-item ambulance-picker";
- dropdown_item.id = ambulance.ambulance_name;
- dropdown_link.className = "text-dark";
- dropdown_link.href = "#";
- dropdown_item.appendChild(dropdown_link);
- ambulance_container.appendChild(dropdown_item)
- }
- } else {
- let dropdown_item = document.createElement('li');
- let dropdown_link = document.createElement('a');
- dropdown_link.innerHTML = `<a href="javascript:void(0);" class="text-dark" id="dispatch_ambulance"><i class="uil uil-ambulance mr-2"></i>${ambulance.ambulance_name}</a></li>`
- dropdown_item.className = "dropdown-item ambulance-picker";
- dropdown_item.id = ambulance.ambulance_name;
- dropdown_link.className = "text-dark";
- dropdown_link.href = "#";
- dropdown_item.appendChild(dropdown_link);
- ambulance_container.appendChild(dropdown_item)
- }
- }
- })
- this.set_ambulance()
- }
- create_ambulance_arrival_list() {
- let arrival_list = this.querySelector('#arrival_list_dropdown');
- arrival_list.innerHTML = ""
- this.$states.current_states['ambulance_dispatched'].value.forEach(ambulance => {
- let current_ambulances = this.$states.contains('ambulance_arrived').value
- let test_for_dupli = current_ambulances ? current_ambulances.some(elem => elem === ambulance) : false
- if (test_for_dupli !== true) {
- let dropdown_item = document.createElement('li');
- let dropdown_link = document.createElement('a');
- dropdown_link.innerHTML = `<a href="javascript:void(0);" class="text-dark" id="dispatch_ambulance"><i class="uil uil-ambulance mr-2"></i>${ambulance}</a></li>`
- dropdown_item.className = "dropdown-item ambulance-arrival";
- dropdown_item.id = ambulance;
- dropdown_link.className = "text-dark";
- dropdown_link.href = "#";
- dropdown_link.onclick = () => {
- this.set_ambulance_arrival(ambulance)
- }
- dropdown_item.appendChild(dropdown_link);
- arrival_list.appendChild(dropdown_item)
- }
- })
- }
- set_ambulance_arrival(ambulance) {
- if (!this.$states.contains('ambulance_arrived')) {
- this.$data.que = 'attention';
- this.create_states('attention_arrived', Math.round((new Date()).getTime() / 1000))
- this.create_states('ambulance_arrived', [ambulance])
- emitter_events.emit('REPARSE');
- this.create_ambulance_arrival_list();
- } else {
- let arrived = this.$states.contains('ambulance_arrived').value
- arrived.push(ambulance);
- this.create_states('ambulance_arrived', arrived)
- emitter_events.on('attention_arrived')
- this.create_ambulance_arrival_list();
- }
- }
- remove_attention() {
- $(`#${this.$data.id}_remove`).modal('toggle')
- this.querySelector('#remove_attention_btn').onclick = () => {
- console.log('remove')
- que_manager.remove_client(this.$data.id);
- let ambulances_list = this.$states.contains('ambulance_dispatched');
- let ambulance_cache = JSON.parse(sessionStorage.getItem('ambulance'));
- //free up ambulances
- if (ambulances_list) {
- Object.values(ambulance_cache).forEach(ambulance => {
- ambulances_list.value.forEach(item => {
- if (ambulance.ambulance_name === item) {
- ambulance.bussy = false;
- }
- })
- })
- }
- sessionStorage.setItem('ambulance', JSON.stringify(ambulance_cache))
- emitter_events.emit('ambulance_busy_state_set')
- this.remove()
- }
- }
- connectedCallback() {
- this.construct();
- if (this.isConnected) {
- this.on_state();
- //action_menu
- this.create_action_menu();
- //initial_states
- this.load_cache_from_state();
- this.edit_programmed_attention_date();
- //parse dropdown
- this.parse_ambulance_in_dropdown();
- //React to events
- emitter_events.on('AMBULANCE_CREATED', data => {
- this.ambulances = Object.values(JSON.parse(sessionStorage.getItem('ambulance')));
- this.parse_ambulance_in_dropdown();
- })
- emitter_events.on('ambulance_busy_state_set', (data) => {
- this.ambulances = Object.values(JSON.parse(sessionStorage.getItem('ambulance')));
- this.parse_ambulance_in_dropdown();
- })
- emitter_events.on('attention_arrived', () => {
- let ambulance_data = this.$states.contains('ambulance_arrived')
- ambulance_data.value.forEach(ambulance => {
- this.add_badge(ambulance, `${ambulance} Arrivó`, 'badge-info')
- })
- this.create_action_menu();
- this.create_ambulance_arrival_list();
- })
- this.collapse_card()
- window.onkeydown = (e) => {
- if (e.key === 'p') {
- this.put_in_wait_que()
- }
- }
- //clock
- this.timer(() => {
- if (this.$states.contains('attention_wait_ts')) {
- if (this.$states.contains('attention_arrived')) {
- let ts = this.$states.contains('attention_arrived').value
- this.add_badge('attention_arrived', dayjs.unix(ts).fromNow(), `bg-success text-white`)
- this.delete_badge('attention_wait_ts')
- } else {
- //get moment
- this.add_badge('attention_wait_ts', dayjs.unix(this.$data.status.attention_wait_ts.value).fromNow(), `${this.timer_color(this.$data.status.attention_wait_ts)} text-white`)
- this.parse_badges()
- }
- } else if (this.$states.contains('programmed_attention')) {
- this.add_badge('programmed_attention', this.get_programmed_attention_date(), "bg-primary text-white")
- if (this.get_programmed_attention_minutes() < 30) {
- console.log('go to attention')
- this.put_in_wait_que();
- }
- }
- })
- }
- }
- }
- customElements.define('attention-card', Attention_card);