Sfoglia il codice sorgente

Main dashboard - auto reload current tab after change in popup

Vijayakrishnan 4 anni fa
parent
commit
6145977f90
2 ha cambiato i file con 47 aggiunte e 27 eliminazioni
  1. 5 3
      public/js/stag-popup.js
  2. 42 24
      resources/views/app/dashboard.blade.php

+ 5 - 3
public/js/stag-popup.js

@@ -26,7 +26,7 @@ function submitStagPopup(_form) {
     });
     return false;
 }
-function closeStagPopup() {
+function closeStagPopup(_noEvent = false) {
     if(!stagPopupsQueue.length) return false;
     let popup = stagPopupsQueue[stagPopupsQueue.length - 1];
     let closeAll = !!popup.attr('close-all-with-self');
@@ -34,14 +34,16 @@ function closeStagPopup() {
     stagPopupsQueue.splice(stagPopupsQueue.length - 1, 1);
     if(closeAll) {
         while(stagPopupsQueue.length) {
-            closeStagPopup();
+            closeStagPopup(true);
         }
     }
     // if all closed
     if(!stagPopupsQueue.length) {
         $('html, body').removeClass('no-scroll');
         $(window.top.document.body).find('#stag_mcp_lhs').removeClass('no-scroll');
-        $(document).trigger('stag-popup-closed');
+        if(!_noEvent) {
+            $('body').trigger('stag-popup-closed');
+        }
     }
     return false;
 }

+ 42 - 24
resources/views/app/dashboard.blade.php

@@ -116,32 +116,44 @@
 
                 <ul class="nav nav-tabs">
                     <li class="nav-item">
-                        <a native class="nav-link" :class="tab == 'appointments' ? 'active' : ''" href="#" v-on:click.prevent="tab='appointments'">Appointments</a>
+                        <a native data-tab="appointments" class="nav-link"
+                           :class="tab == 'appointments' ? 'active' : ''" href="#"
+                           v-on:click.prevent="tab='appointments'">
+                            Appointments
+                        </a>
                     </li>
                     <li class="nav-item">
-                        <a native class="nav-link" :class="tab == 'measurements' ? 'active' : ''" href="#" v-on:click.prevent="tab='measurements'">Measurements</a>
+                        <a native data-tab="measurements" class="nav-link"
+                           :class="tab == 'measurements' ? 'active' : ''" href="#"
+                           v-on:click.prevent="tab='measurements'">
+                            Measurements
+                        </a>
                     </li>
                     <li class="nav-item">
-                        <a native class="nav-link {{count($incomingReports) ? 'text-danger font-weight-bold' : ''}}"
-                           :class="tab == 'incoming_reports' ? 'active' : ''" href="#" v-on:click.prevent="tab='incoming_reports'">
+                        <a native data-tab="incoming_reports" class="nav-link {{count($incomingReports) ? 'text-danger font-weight-bold' : ''}}"
+                           :class="tab == 'incoming_reports' ? 'active' : ''" href="#"
+                           v-on:click.prevent="tab='incoming_reports'">
                             Incoming Reports ({{count($incomingReports)}})
                         </a>
                     </li>
                     <li class="nav-item">
-                        <a native class="nav-link {{$numERx ? 'text-danger font-weight-bold' : ''}}"
-                           :class="tab == 'erx' ? 'active' : ''" href="#" v-on:click.prevent="tab='erx'">
+                        <a native data-tab="erx" class="nav-link {{$numERx ? 'text-danger font-weight-bold' : ''}}"
+                           :class="tab == 'erx' ? 'active' : ''" href="#"
+                           v-on:click.prevent="tab='erx'">
                             ERx ({{$numERx}})
                         </a>
                     </li>
                     <li class="nav-item">
-                        <a native class="nav-link {{$numLabs ? 'text-danger font-weight-bold' : ''}}"
-                           :class="tab == 'labs' ? 'active' : ''" href="#" v-on:click.prevent="tab='labs'">
+                        <a native data-tab="labs" class="nav-link {{$numLabs ? 'text-danger font-weight-bold' : ''}}"
+                           :class="tab == 'labs' ? 'active' : ''" href="#"
+                           v-on:click.prevent="tab='labs'">
                             Labs ({{$numLabs}})
                         </a>
                     </li>
                     <li class="nav-item">
-                        <a native class="nav-link {{$numImaging ? 'text-danger font-weight-bold' : ''}}"
-                           :class="tab == 'imaging' ? 'active' : ''" href="#" v-on:click.prevent="tab='imaging'">
+                        <a native data-tab="imaging" class="nav-link {{$numImaging ? 'text-danger font-weight-bold' : ''}}"
+                           :class="tab == 'imaging' ? 'active' : ''" href="#"
+                           v-on:click.prevent="tab='imaging'">
                             Imaging ({{$numImaging}})
                         </a>
                     </li>
@@ -240,7 +252,7 @@
                 el: '#pro-dashboard-container',
                 delimiters: ['@{{', '}}'],
                 data: {
-                    tab: 'measurements', // appointments | measurements
+                    tab: '{{ request()->input('tab') ? request()->input('tab') : 'measurements' }}',
                     selectedDate: '{{ date('Y-m-d') }}',
                     selectedStatus: 'CREATED',
                     events: [],
@@ -454,21 +466,27 @@
                     // init fast load
                     initFastLoad($('#pro-dashboard-container'));
 
-                    // ticket-popup
-                    $(document)
-                        .off('click', '.ticket-popup-trigger')
-                        .on('click', '.ticket-popup-trigger', function() {
-                            window.noMc = true;
-                            $.get(this.href, (_data) => {
-                                $('.ticket-popup').html(_data);
-                                showStagPopup('ticket-popup');
-                                $('.ticket-popup .stag-popup.stag-slide').attr('close-all-with-self', 1);
-                                runMCInitializer('patient-tickets'); // run specific mc initer
-                            });
-                            return false;
-                        });
                 }
             });
+            // refresh once ticket popup is closed
+            $('body').off('stag-popup-closed')
+            $('body').on('stag-popup-closed', function() {
+                let activeTab = $('.nav-link.active[data-tab]').attr('data-tab');
+                fastLoad('/?tab=' + activeTab);
+            });
+            // ticket-popup
+            $(document)
+                .off('click', '.ticket-popup-trigger')
+                .on('click', '.ticket-popup-trigger', function() {
+                    window.noMc = true;
+                    $.get(this.href, (_data) => {
+                        $('.ticket-popup').html(_data);
+                        showStagPopup('ticket-popup');
+                        $('.ticket-popup .stag-popup.stag-slide').attr('close-all-with-self', 1);
+                        runMCInitializer('patient-tickets'); // run specific mc initer
+                    });
+                    return false;
+                });
         }
         addMCInitializer('pro-dashboard', init, '#pro-dashboard-container');
     })();