Skip to content

Commit

Permalink
(Part-2) Added loading message
Browse files Browse the repository at this point in the history
Signed-off-by: Yash Bothra <yashrajbothra786@gmail.com>
  • Loading branch information
yashrajbothra committed Mar 13, 2020
1 parent 820d193 commit 827fe16
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 15 deletions.
32 changes: 25 additions & 7 deletions interface/main/main_screen.php
Expand Up @@ -414,17 +414,20 @@ function generate_html_end()
//display the php file containing the password expiration message.
$frame1url = "pwd_expires_alert.php?csrf_token_form=" . attr_url(CsrfUtils::collectCsrfToken());
$frame1target = "adm";
$frame1label = "";
} elseif (!empty($_POST['patientID'])) {
$patientID = 0 + $_POST['patientID'];
if (empty($_POST['encounterID'])) {
// Open patient summary screen (without a specific encounter)
$frame1url = "../patient_file/summary/demographics.php?set_pid=" . attr_url($patientID);
$frame1target = "pat";
$frame1label = xl('Patient Search/Add Screen');
} else {
// Open patient summary screen with a specific encounter
$encounterID = 0 + $_POST['encounterID'];
$frame1url = "../patient_file/summary/demographics.php?set_pid=" . attr_url($patientID) . "&set_encounterid=" . attr_url($encounterID);
$frame1target = "pat";
$frame1label = xl('Patient Search/Add Screen');
}
} elseif (isset($_GET['mode']) && $_GET['mode'] == "loadcalendar") {
$frame1url = "calendar/index.php?pid=" . attr_url($_GET['pid']);
Expand All @@ -433,18 +436,30 @@ function generate_html_end()
}

$frame1target = "cal";
$frame1label = xl('Calendar Screen');
} else {
// standard layout
$map_paths_to_targets = array(
'main_info.php' => ('cal'),
'../new/new.php' => ('pat'),
'../../interface/main/finder/dynamic_finder.php' => ('fin'),
'../../interface/patient_tracker/patient_tracker.php?skip_timeout_reset=1' => ('flb'),
'../../interface/main/messages/messages.php?form_active=1' => ('msg')
'main_info.php' => array(
'target' => 'cal' , "label" => xl('Calendar Screen')
),
'../new/new.php' => array(
'target' => 'pat' , "label" => xl('Patient Search/Add Screen')
),
'../../interface/main/finder/dynamic_finder.php' => array(
'target' => 'fin' , "label" => xl('Patient Finder Screen')
),
'../../interface/patient_tracker/patient_tracker.php?skip_timeout_reset=1' => array(
'target' => 'flb' , "label" => xl('Patient Flow Board')
),
'../../interface/main/messages/messages.php?form_active=1' => array(
'target' => 'msg' , "label" => xl('Messages Screen')
)
);
if ($GLOBALS['default_top_pane']) {
$frame1url=attr($GLOBALS['default_top_pane']);
$frame1target = $map_paths_to_targets[$GLOBALS['default_top_pane']];
$frame1target = $map_paths_to_targets[$GLOBALS['default_top_pane']]['target'];
$frame1label = $map_paths_to_targets[$GLOBALS['default_top_pane']]['label'];
if (empty($frame1target)) {
$frame1target = "msc";
}
Expand All @@ -454,7 +469,8 @@ function generate_html_end()
}
if ($GLOBALS['default_second_tab']) {
$frame2url=attr($GLOBALS['default_second_tab']);
$frame2target = $map_paths_to_targets[$GLOBALS['default_second_tab']];
$frame2target = $map_paths_to_targets[$GLOBALS['default_second_tab']]['target'];
$frame2label = $map_paths_to_targets[$GLOBALS['default_second_tab']]['label'];
if (empty($frame2target)) {
$frame2target = "msc";
}
Expand All @@ -473,8 +489,10 @@ function generate_html_end()
// Will set Session variables to communicate settings to tab layout
$_SESSION['frame1url'] = $frame1url;
$_SESSION['frame1target'] = $frame1target;
$_SESSION['frame1label'] = $frame1label;
$_SESSION['frame2url'] = $frame2url;
$_SESSION['frame2target'] = $frame2target;
$_SESSION['frame2label'] = $frame2label;
// mdsupport - Apps processing invoked for valid app selections from list
if ((isset($_POST['appChoice'])) && ($_POST['appChoice'] !== '*OpenEMR')) {
$_SESSION['app1'] = $_POST['appChoice'];
Expand Down
18 changes: 14 additions & 4 deletions interface/main/tabs/js/tabs_view_model.js
Expand Up @@ -10,15 +10,24 @@
* @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
*/

function tabStatus(title,url,name,closable,visible,locked)
function tabStatus(title,url,name,loading_label,closable,visible,locked)
{
var self=this;
self.visible=ko.observable(visible);
self.locked=ko.observable(locked);
self.closable=ko.observable(closable);
self.title=ko.observable(title);
//Start Spinning motor
self.spinner=ko.observable("fa-spin");
self.url=ko.observable(url);
self.name=ko.observable(name);
self.loading_text=ko.observable(loading_label + "...");
self.loading_text_status = ko.observable(true);
self.title.subscribe(function() {
self.loading_text_status(false);
//Stop Spinning motor
self.spinner("");
});
self.window=null;
return this;
}
Expand Down Expand Up @@ -113,7 +122,7 @@ function tabCloseByName(name)
}
}

function navigateTab(url,name,afterLoadFunction)
function navigateTab(url,name,afterLoadFunction,loading_label='')
{

top.restoreSession();
Expand All @@ -131,7 +140,7 @@ function navigateTab(url,name,afterLoadFunction)
}
else
{
curTab=new tabStatus(xl("Loading") + " <a style='font-size:80%'><i class='fa fa-spinner fa-pulse'></i></a>",url,name,true,false,false);
curTab=new tabStatus(xl("Loading") + "...",url,name,loading_label,true,false,false);
app_view_model.application_data.tabs.tabsList.push(curTab);
if(typeof afterLoadFunction === 'function'){
afterLoadFunction();
Expand Down Expand Up @@ -307,6 +316,7 @@ function menuActionClick(data,evt)

// Fixups for loading a new encounter form, as these are now in tabs.
var dataurl = data.url();
var dataLabel = data.label()
var matches = dataurl.match(/load_form.php\?formname=(\w+)/);
if (matches) {
// If the encounter frameset already exists, just tell it to add a tab for this form.
Expand All @@ -324,7 +334,7 @@ function menuActionClick(data,evt)

navigateTab(webroot_url + dataurl, data.target, function () {
activateTabByName(data.target,true);
});
},xl("Loading") + " " + dataLabel);

var par = $(evt.currentTarget).closest("ul.menuEntries");
par.wrap("<ul class='timedReplace' style='display:none;'></ul>");
Expand Down
4 changes: 2 additions & 2 deletions interface/main/tabs/main.php
Expand Up @@ -274,12 +274,12 @@ function setupI18n(lang_id) {
<script type="text/javascript">
<?php if (!empty($_SESSION['frame1url']) && !empty($_SESSION['frame1target'])) { ?>
// Use session variables and tabStatus object to set up initial/default first tab
app_view_model.application_data.tabs.tabsList.push(new tabStatus(<?php echo xlj("Loading"); ?> + " <a style='font-size:80%'><i class='fa fa-spinner fa-pulse'></i></a>",<?php echo json_encode("../".$_SESSION['frame1url']); ?>,<?php echo json_encode($_SESSION['frame1target']); ?>,true,true,false));
app_view_model.application_data.tabs.tabsList.push(new tabStatus(<?php echo xlj("Loading"); ?> + "...",<?php echo json_encode("../".$_SESSION['frame1url']); ?>,<?php echo json_encode($_SESSION['frame1target']); ?>,<?php echo xlj("Loading"); ?> + " " + <?php echo json_encode($_SESSION['frame1label']); ?>,true,true,false));
<?php } ?>

<?php if (!empty($_SESSION['frame2url']) && !empty($_SESSION['frame2target'])) { ?>
// Use session variables and tabStatus object to set up initial/default second tab, if none is set in globals, this tab will not be displayed initially
app_view_model.application_data.tabs.tabsList.push(new tabStatus(<?php echo xlj("Loading"); ?> + " <a style='font-size:80%'><i class='fa fa-spinner fa-pulse'></i></a>",<?php echo json_encode("../".$_SESSION['frame2url']); ?>,<?php echo json_encode($_SESSION['frame2target']); ?>,true,false,false));
app_view_model.application_data.tabs.tabsList.push(new tabStatus(<?php echo xlj("Loading"); ?> + "...",<?php echo json_encode("../".$_SESSION['frame2url']); ?>,<?php echo json_encode($_SESSION['frame2target']); ?>,<?php echo xlj("Loading"); ?> + " " + <?php echo json_encode($_SESSION['frame2label']); ?>,true,false,false));
<?php } ?>

app_view_model.application_data.user(new user_data_view_model(<?php echo json_encode($_SESSION["authUser"])
Expand Down
5 changes: 3 additions & 2 deletions interface/main/tabs/templates/tabs_template.php
Expand Up @@ -17,8 +17,8 @@
</div>
<!-- ko foreach: tabsList -->
<div class="tabSpan bgcolor2" data-bind="click: tabClicked, css: {tabNotchosen: !visible()}">
<span class="tabTitle" data-bind="html: title, click: tabClicked, css: {tabHidden: !visible()}"></span>
<span class="fa fa-fw fa-refresh" data-bind="click: tabRefresh"></span>
<span class="tabTitle" data-bind="text: title, click: tabClicked, css: {tabHidden: !visible()}"></span>
<span class="fa fa-fw fa-refresh" data-bind="click: tabRefresh, class: spinner"></span>
<!--ko if:!locked() -->
<span class="fa fa-fw fa-unlock" data-bind="click: tabLockToggle"></span>
<!-- /ko -->
Expand All @@ -38,6 +38,7 @@

<!-- ko foreach: tabs.tabsList -->
<div class="frameDisplay" data-bind="visible:visible">
<h5 class="text-center position-relative" style="top:50%;" data-bind="text: loading_text,visible:loading_text_status"></h5>
<iframe data-bind="location: $data, iframeName: $data.name, ">

</iframe>
Expand Down

0 comments on commit 827fe16

Please sign in to comment.