From e99fb596201c5429c1d6572d3560d77af284cca2 Mon Sep 17 00:00:00 2001 From: Hao Sun Date: Wed, 1 Sep 2021 10:31:41 +0800 Subject: [PATCH] * fix tutorial mode not work as expected sometimes. --- module/company/view/browse.html.php | 2 +- module/index/js/index.js | 14 ++++++++++---- module/tutorial/js/index.js | 16 ++++++++++++---- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/module/company/view/browse.html.php b/module/company/view/browse.html.php index 68d7de4ca1..498251d03c 100644 --- a/module/company/view/browse.html.php +++ b/module/company/view/browse.html.php @@ -39,7 +39,7 @@ js::set('confirmDelete', $lang->user->confirmDelete); } else { - common::printLink('user', 'create', "dept={$deptID}", " " . $lang->user->create, '', "class='btn btn-primary'"); + common::printLink('user', 'create', "dept={$deptID}", " " . $lang->user->create, '', "class='btn btn-primary create-user-btn'"); } ?> diff --git a/module/index/js/index.js b/module/index/js/index.js index 17c79c5277..feac1c1a87 100644 --- a/module/index/js/index.js +++ b/module/index/js/index.js @@ -220,6 +220,12 @@ /* If first show without url, then use the default url */ if(!url) url = appsMap[appCode].url; + + var iframe = $iframe.get(0); + iframe.onload = iframe.onreadystatechange = function(e) + { + $app.trigger('loadapp', app); + }; } /* Set tab cookie */ @@ -278,7 +284,7 @@ updateAppUrl(appCode, null, null, true); } - app.$app.trigger('show.zentaoapp', app); + app.$app.trigger('showapp', app); return true; } @@ -318,7 +324,7 @@ app.show = false; lastOpenedApp = null; - app.$app.trigger('hide.zentaoapp', app); + app.$app.trigger('hideapp', app); /* Active last app */ var lastApp = getLastApp(true) || getLastApp(); @@ -388,7 +394,7 @@ var firstClass = $("#bars li:first").attr('class'); if(firstClass == 'divider') $("#bars li.divider:first").remove(); - app.$app.trigger('close.zentaoapp', app); + app.$app.trigger('closeapp', app); } /** @@ -416,7 +422,7 @@ iframe.src = url || app.url || iframe.src; } - if(!notTriggerEvent) app.$app.trigger('reload.zentaoapp', app); + if(!notTriggerEvent) app.$app.trigger('reloadapp', app); } /** diff --git a/module/tutorial/js/index.js b/module/tutorial/js/index.js index 3d06692640..ea16cd18c6 100644 --- a/module/tutorial/js/index.js +++ b/module/tutorial/js/index.js @@ -414,14 +414,20 @@ $(function() var checkTutorialState = function() { - var iWindow = getAppWindow(); - iWindow = window.frames['iframePage']; tryCheckTask(); + var iWindow = getAppWindow(); var title = (iWindow.$ ? iWindow.$('head > title').text() : '') + $('head > title').text(); var url = createLink('tutorial', 'index', 'referer=' + Base64.encode(iWindow.location.href) + '&task=' + current); try{window.history.replaceState({}, title, url);}catch(e){} }; + var checkTimer = 0; + var tryCheckTutorialState = function(delay) + { + clearTimeout(checkTimer); + checkTimer = setTimeout(checkTutorialState, delay || 200); + }; + var showTask = function(taskName) { clearTips(); @@ -472,7 +478,6 @@ $(function() var progress = Math.round(100*finishCount/totalCount); $progress.toggleClass('finish', isFinishAll).find('.progress-bar').css('width', (100*finishCount/totalCount) + '%'); $progress.find('.progress-text').text(progress + '%'); - if(progress == 100) $.getJSON(createLink('tutorial', 'ajaxFinish')); showTask(current); }; @@ -482,7 +487,10 @@ $(function() var appsIframe = $('#iframePage').get(0); appsIframe.onload = appsIframe.onreadystatechange = function() { - appsWindow.$(appsWindow.document).on('show.zentaoapp close.zentaoapp hide.zentaoapp', checkTutorialState); + appsWindow.$(appsWindow.document).on('reloadapp loadapp showapp closeapp hideapp', function() + { + tryCheckTutorialState(1000); + }); /* Open referer page in app tab */ if(tutorialReferer) appsWindow.$.apps.open(tutorialReferer);