@magic-xpa/engine 4.800.0-dev480.94 → 4.801.0-dev481.221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/magic-xpa-engine.umd.js +1330 -1130
- package/bundles/magic-xpa-engine.umd.js.map +1 -1
- package/bundles/magic-xpa-engine.umd.min.js +2 -2
- package/bundles/magic-xpa-engine.umd.min.js.map +1 -1
- package/esm2015/index.js +2 -1
- package/esm2015/src/ClientManager.js +2 -2
- package/esm2015/src/ConstInterface.js +7 -3
- package/esm2015/src/CurrentClientVersion.js +2 -2
- package/esm2015/src/commands/ClientToServer/CommandFactory.js +15 -1
- package/esm2015/src/commands/ClientToServer/ExecOperCommand.js +4 -1
- package/esm2015/src/commands/ClientToServer/SelectProgramCommand.js +15 -0
- package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +1 -7
- package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +2 -2
- package/esm2015/src/env/Environment.js +11 -1
- package/esm2015/src/event/ActionManager.js +3 -2
- package/esm2015/src/event/EventHandler.js +10 -4
- package/esm2015/src/event/EventsManager.js +120 -20
- package/esm2015/src/event/IEventsManager.js +1 -1
- package/esm2015/src/exp/ExpressionDict.js +3 -1
- package/esm2015/src/exp/ExpressionEvaluator.js +30 -19
- package/esm2015/src/gui/MgForm.js +16 -24
- package/esm2015/src/remote/RemoteCommandsProcessor.js +48 -21
- package/esm2015/src/rt/Operation.js +10 -30
- package/esm2015/src/tasks/MGData.js +11 -1
- package/esm2015/src/tasks/MGDataCollection.js +12 -2
- package/esm2015/src/tasks/Task.js +55 -46
- package/esm2015/src/util/PrmMap.js +11 -1
- package/fesm2015/magic-xpa-engine.js +359 -167
- package/fesm2015/magic-xpa-engine.js.map +1 -1
- package/index.d.ts +1 -0
- package/package.json +4 -4
- package/src/ConstInterface.d.ts +6 -2
- package/src/commands/ClientToServer/CommandFactory.d.ts +1 -0
- package/src/commands/ClientToServer/ExecOperCommand.d.ts +2 -1
- package/src/commands/ClientToServer/SelectProgramCommand.d.ts +6 -0
- package/src/commands/ServerToClient/EnhancedVerifyCommand.d.ts +0 -1
- package/src/env/Environment.d.ts +3 -0
- package/src/event/EventsManager.d.ts +11 -1
- package/src/event/IEventsManager.d.ts +1 -0
- package/src/exp/ExpressionEvaluator.d.ts +1 -0
- package/src/gui/MgForm.d.ts +1 -1
- package/src/rt/Operation.d.ts +2 -3
- package/src/tasks/MGData.d.ts +2 -0
- package/src/tasks/MGDataCollection.d.ts +1 -0
- package/src/tasks/Task.d.ts +0 -1
- package/src/util/PrmMap.d.ts +1 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { StringBuilder, Int32, NString, ApplicationException, NNumber, List, Debug, Char, RefParam, NumberStyles, Exception, HashUtils, DateTime, Dictionary, Stack, NChar, WebException, Thread, Encoding, Hashtable, NotImplementedException, Array_Enumerator, ISO_8859_1_Encoding, Int64 } from '@magic-xpa/mscorelib';
|
|
3
3
|
import { XMLConstants, StorageAttribute, ViewRefreshMode, InternalInterface, Logger, StorageAttributeCheck, StrUtil, SubformType, TableBehaviour, MgControlType, ScrollBarThumbType, ForceExit, XmlParser, Misc, Base64, Priority, SyncExecutionHelper, Queue, Constants, DateTimeUtils, Logger_LogLevels, Logger_MessageDirection, MsgInterface, RequestInfo, OSEnvironment, JSON_Utils, UtilDateJpn, UtilStrByteMode, CallOsShow, PICInterface, WindowType, BrkScope, RaiseAt, CtrlButtonTypeGui } from '@magic-xpa/utils';
|
|
4
|
-
import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, ControlTable, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, PIC, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, DataModificationTypes,
|
|
4
|
+
import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, ControlTable, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, PIC, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
|
|
5
5
|
import { isNullOrUndefined, isUndefined } from 'util';
|
|
6
6
|
import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
|
|
7
7
|
import { timer, Subject } from 'rxjs';
|
|
@@ -166,8 +166,6 @@ ConstInterface.MG_ATTR_TITLE = "title";
|
|
|
166
166
|
ConstInterface.MG_ATTR_TITLE_EXP = "titleExp";
|
|
167
167
|
ConstInterface.MG_ATTR_IMAGE = "image";
|
|
168
168
|
ConstInterface.MG_ATTR_BUTTONS = "buttons";
|
|
169
|
-
ConstInterface.MG_ATTR_DEFAULT_BUTTON = "defaultButton";
|
|
170
|
-
ConstInterface.MG_ATTR_DEFAULT_BUTTON_EXP = "defaultButtonExp";
|
|
171
169
|
ConstInterface.MG_ATTR_RETURN_VAL = "returnVal";
|
|
172
170
|
ConstInterface.MG_ATTR_ERR_LOG_APPEND = "errorLogAppend";
|
|
173
171
|
ConstInterface.MG_ATTR_EVENTVALUE = "eventvalue";
|
|
@@ -277,6 +275,7 @@ ConstInterface.MG_ATTR_DEFAULT_COLOR = "defaultColor";
|
|
|
277
275
|
ConstInterface.MG_ATTR_DEFAULT_FOCUS_COLOR = "defaultFocusColor";
|
|
278
276
|
ConstInterface.MG_ATTR_DEFAULT_DISABLED_COLOR = "defaultDisabledColor";
|
|
279
277
|
ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_TIMEOUT = "ContextInactivityTimeout";
|
|
278
|
+
ConstInterface.MG_ATTR_CLIENT_CONTEXT_INACTIVITY_TIMEOUT = "ClientContextInactivityTimeout";
|
|
280
279
|
ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_TIMEOUT_LOWER = "contextinactivitytimeout";
|
|
281
280
|
ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_WARNING_TIME = "ContextInactivityWarningTime";
|
|
282
281
|
ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_WARNING_TIME_LOWER = "contextinactivitywarningtime";
|
|
@@ -626,6 +625,10 @@ ConstInterface.WEBCLIENT_REINITIALIZE_REQUEST = "WCREINITIALIZEREQUEST=Y";
|
|
|
626
625
|
ConstInterface.MAIN_PROG_VIEW = "MainProgramsDataView";
|
|
627
626
|
ConstInterface.GLOBAL_PARAM_LIST = "GlobalParamList";
|
|
628
627
|
ConstInterface.LAST_EXCEPTION = "LastException";
|
|
628
|
+
ConstInterface.CTX_REMOVED_FROM_SRVR = "CtxRemovedFromSrvr";
|
|
629
|
+
ConstInterface.LAST_ROUTE_EVENT = "LastRouteEvent";
|
|
630
|
+
ConstInterface.LAST_ROUTE_EVENT_ARG_LIST = "LastRouteEventArgList";
|
|
631
|
+
ConstInterface.LAST_ROUTE_EVENT_SRC_TSK = "LastRouteEventSourceTask";
|
|
629
632
|
ConstInterface.IS_SESSION_REINITIALIZING = "IsSessionReInitializing";
|
|
630
633
|
ConstInterface.RC_AUTHENTICATION_REQUEST = "RCAUTHENTICATIONREQUEST=Y";
|
|
631
634
|
ConstInterface.V24_RIA_ERROR_PREFIX = "<RIA_ERROR_RESPONSE>";
|
|
@@ -755,7 +758,8 @@ ConstInterface.MG_ATTR_VAL_SERVER_TRANS_CACHE_EMPTY = "serverTransCacheEmpty";
|
|
|
755
758
|
ConstInterface.MG_ATTR_SPECIAL_ANSI_BLOB_CHECK_NULL = "SpecialAnsiBlobCheckNull";
|
|
756
759
|
ConstInterface.MG_ATTR_SPECIAL_TABLE_REDUCE_TITLE_HEIGHT = "SpecialTableReduceTitleHeight";
|
|
757
760
|
ConstInterface.MG_ATTR_SPECIAL_DOTNET_ALLOW_ZERO_DATE = "SpecialDotNetAllowZeroDate";
|
|
758
|
-
ConstInterface.MG_ATTR_SPECIAL_REUSE_TABLE_EDITOR = "SpecialReuseTableEditor";
|
|
761
|
+
ConstInterface.MG_ATTR_SPECIAL_REUSE_TABLE_EDITOR = "SpecialReuseTableEditor";
|
|
762
|
+
ConstInterface.MG_TAG_LAST_ROUTE = "LastRoute";
|
|
759
763
|
|
|
760
764
|
class ClientOriginatedCommand {
|
|
761
765
|
get ShouldSerialize() {
|
|
@@ -4546,6 +4550,9 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
|
|
|
4546
4550
|
' in ' + '[' + this.Operation.getEventHandler().getEventHandlerInfo() + ']' +
|
|
4547
4551
|
' on ' + '[' + this.Operation.Task.getTaskInfo() + ']';
|
|
4548
4552
|
}
|
|
4553
|
+
getTask() {
|
|
4554
|
+
return this.Operation.Task;
|
|
4555
|
+
}
|
|
4549
4556
|
}
|
|
4550
4557
|
|
|
4551
4558
|
class Scrambler {
|
|
@@ -5309,6 +5316,7 @@ class MGDataCollection {
|
|
|
5309
5316
|
this._iteratorTaskIdx = 0;
|
|
5310
5317
|
this.currMgdID = 0;
|
|
5311
5318
|
this.StartupMgData = null;
|
|
5319
|
+
this._lastRouteSentToServer = "";
|
|
5312
5320
|
}
|
|
5313
5321
|
GetTaskByID(id) {
|
|
5314
5322
|
let task = null;
|
|
@@ -5425,6 +5433,13 @@ class MGDataCollection {
|
|
|
5425
5433
|
}
|
|
5426
5434
|
buildXML(message, serializeTasks) {
|
|
5427
5435
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5436
|
+
let lastRoute = Commands.getLastRoute();
|
|
5437
|
+
if (lastRoute !== this._lastRouteSentToServer) {
|
|
5438
|
+
message.Append(XMLConstants.START_TAG + ConstInterface.MG_TAG_LAST_ROUTE);
|
|
5439
|
+
message.Append(" " + ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + lastRoute + "\"");
|
|
5440
|
+
message.Append(XMLConstants.TAG_TERM);
|
|
5441
|
+
this._lastRouteSentToServer = lastRoute;
|
|
5442
|
+
}
|
|
5428
5443
|
for (let i = 0; i < this.getSize(); i = i + 1) {
|
|
5429
5444
|
let mgd = this.getMGData(i);
|
|
5430
5445
|
if (mgd !== null && !mgd.IsAborting) {
|
|
@@ -5601,7 +5616,9 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5601
5616
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5602
5617
|
RemoteCommandsProcessor.IsSessionReInitializing = true;
|
|
5603
5618
|
yield this.StoreSessionReInitializingDataOnLocalStorage();
|
|
5604
|
-
let navigateRootRoute =
|
|
5619
|
+
let navigateRootRoute = false;
|
|
5620
|
+
if (!RuntimeContextBase.Instance.RemovedContextFromServer)
|
|
5621
|
+
navigateRootRoute = Environment.Instance.getSpecialRouteToRootProgOnContextRecreation() ? true : false;
|
|
5605
5622
|
Commands.addRefreshPage(navigateRootRoute, RemoteCommandsProcessor.InitialUrl);
|
|
5606
5623
|
throw new Exception('');
|
|
5607
5624
|
});
|
|
@@ -5615,6 +5632,9 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5615
5632
|
dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
|
|
5616
5633
|
dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
|
|
5617
5634
|
dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
|
|
5635
|
+
if (RuntimeContextBase.Instance.RemovedContextFromServer)
|
|
5636
|
+
dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
|
|
5637
|
+
EventsManager.Instance.storeLastSavedRouteEventOnLocalStorage();
|
|
5618
5638
|
});
|
|
5619
5639
|
}
|
|
5620
5640
|
RestoreSessionReInitializingDataFromLocalStorage(key) {
|
|
@@ -5797,7 +5817,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5797
5817
|
if (cmdsToServer.getCmd(i) instanceof ExecOperCommand) {
|
|
5798
5818
|
let operCmd = currMGData.CmdsToServer.getCmd(i);
|
|
5799
5819
|
this._requestInfo.serverCallAt = operCmd.getCommandInfo();
|
|
5800
|
-
this._requestInfo.runtimeTaskTree = this.GetTaskTree(operCmd.
|
|
5820
|
+
this._requestInfo.runtimeTaskTree = this.GetTaskTree(operCmd.getTask());
|
|
5801
5821
|
operExecution = true;
|
|
5802
5822
|
break;
|
|
5803
5823
|
}
|
|
@@ -5859,8 +5879,11 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5859
5879
|
if (val === 'true') {
|
|
5860
5880
|
RemoteCommandsProcessor.IsSessionReInitializing = (val === "true") ? true : false;
|
|
5861
5881
|
RemoteCommandsProcessor.lastExceptionMessage = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.LAST_EXCEPTION);
|
|
5862
|
-
|
|
5863
|
-
|
|
5882
|
+
let ctxRemoved = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.CTX_REMOVED_FROM_SRVR);
|
|
5883
|
+
if (ctxRemoved !== '1') {
|
|
5884
|
+
Logger.Instance.WriteErrorToLog(RemoteCommandsProcessor.lastExceptionMessage);
|
|
5885
|
+
Logger.Instance.WriteToLog("Session is reinitializing...", true);
|
|
5886
|
+
}
|
|
5864
5887
|
}
|
|
5865
5888
|
}
|
|
5866
5889
|
if (sendingInstruction === CommandsProcessorBase_SendingInstruction.NO_TASKS_OR_COMMANDS)
|
|
@@ -5897,8 +5920,13 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5897
5920
|
if (RemoteCommandsProcessor.IsSessionReInitializing) {
|
|
5898
5921
|
reqBuf = reqBuf + this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.MAIN_PROG_VIEW);
|
|
5899
5922
|
}
|
|
5900
|
-
|
|
5901
|
-
|
|
5923
|
+
if (RuntimeContextBase.Instance.RemovedContextFromServer)
|
|
5924
|
+
requestStatus.value = RequestStatus.Retry;
|
|
5925
|
+
else {
|
|
5926
|
+
if (RuntimeContextBase.Instance.RemovingContextFromServer)
|
|
5927
|
+
RuntimeContextBase.Instance.RemovedContextFromServer = true;
|
|
5928
|
+
respBuf = yield this.DispatchRequest(this.ServerUrl, reqBuf, sessionStage, requestStatus);
|
|
5929
|
+
}
|
|
5902
5930
|
if (requestStatus.value == RequestStatus.Retry) {
|
|
5903
5931
|
yield this.ReStartSession();
|
|
5904
5932
|
}
|
|
@@ -5918,6 +5946,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5918
5946
|
yield this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
|
|
5919
5947
|
if (RemoteCommandsProcessor.IsSessionReInitializing) {
|
|
5920
5948
|
AccessHelper.globalParams.RestoreGlobalParams(globalParamsString);
|
|
5949
|
+
let dataStorage = window.localStorage;
|
|
5950
|
+
let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
|
|
5951
|
+
if (ctxRemoved === "1") {
|
|
5952
|
+
EventsManager.Instance.restoreLastSavedRouteEventFromLocalStorage();
|
|
5953
|
+
dataStorage.removeItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
|
|
5954
|
+
dataStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT);
|
|
5955
|
+
dataStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
|
|
5956
|
+
dataStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
|
|
5957
|
+
}
|
|
5921
5958
|
RemoteCommandsProcessor.IsSessionReInitializing = false;
|
|
5922
5959
|
}
|
|
5923
5960
|
if (sendingInstruction === CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS) {
|
|
@@ -5974,19 +6011,24 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5974
6011
|
requestStatus.value = RequestStatus.Abort;
|
|
5975
6012
|
if (sessionStage == CommandsProcessorBase_SessionStage.NORMAL) {
|
|
5976
6013
|
if (ex.GetCode() == ServerError.ERR_CTX_NOT_FOUND || ex.GetCode() == ServerError.ERR_THREAD_ABORTED) {
|
|
5977
|
-
|
|
5978
|
-
|
|
5979
|
-
|
|
5980
|
-
|
|
5981
|
-
|
|
5982
|
-
|
|
5983
|
-
|
|
5984
|
-
|
|
5985
|
-
|
|
5986
|
-
|
|
5987
|
-
|
|
5988
|
-
|
|
5989
|
-
|
|
6014
|
+
if (RuntimeContextBase.Instance.RemovedContextFromServer) {
|
|
6015
|
+
requestStatus.value = RequestStatus.Retry;
|
|
6016
|
+
}
|
|
6017
|
+
else {
|
|
6018
|
+
switch (Environment.Instance.getWebClientReinitSession()) {
|
|
6019
|
+
case 'Y':
|
|
6020
|
+
requestStatus.value = RequestStatus.Retry;
|
|
6021
|
+
break;
|
|
6022
|
+
case 'A':
|
|
6023
|
+
let retval = yield GUIManager.Instance.MessageBox("Error", "Unknown error occurred at server-side." +
|
|
6024
|
+
" Would you like to reinitialize the session?", Styles.MSGBOX_BUTTON_YES_NO);
|
|
6025
|
+
requestStatus.value = (retval == Styles.MSGBOX_RESULT_YES) ? RequestStatus.Retry : RequestStatus.Abort;
|
|
6026
|
+
break;
|
|
6027
|
+
case 'N':
|
|
6028
|
+
default:
|
|
6029
|
+
requestStatus.value = RequestStatus.Abort;
|
|
6030
|
+
break;
|
|
6031
|
+
}
|
|
5990
6032
|
}
|
|
5991
6033
|
if (requestStatus.value == RequestStatus.Abort) {
|
|
5992
6034
|
Environment.Instance.setWebClientReinitSession('N');
|
|
@@ -6420,7 +6462,7 @@ class InteractiveCommunicationsFailureHandler {
|
|
|
6420
6462
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6421
6463
|
let exceptionCaption = "";
|
|
6422
6464
|
let exceptionMessage = url.split('?')[0] + OSEnvironment.EolSeq + OSEnvironment.EolSeq + ex.message + OSEnvironment.EolSeq + OSEnvironment.EolSeq;
|
|
6423
|
-
this.ShouldRetryLastRequest = ((yield GUIManager.Instance.MessageBox(exceptionCaption, exceptionMessage + "Do you wish to retry connecting?", Styles.MSGBOX_BUTTON_YES_NO
|
|
6465
|
+
this.ShouldRetryLastRequest = ((yield GUIManager.Instance.MessageBox(exceptionCaption, exceptionMessage + "Do you wish to retry connecting?", Styles.MSGBOX_BUTTON_YES_NO)) === Styles.MSGBOX_RESULT_YES);
|
|
6424
6466
|
});
|
|
6425
6467
|
}
|
|
6426
6468
|
}
|
|
@@ -7775,6 +7817,8 @@ ExpressionDict.expDesc = [
|
|
|
7775
7817
|
new ExpDesc('B', 0, -2, -2, '*', false),
|
|
7776
7818
|
new ExpDesc('*', 0, 1, 1, 'A', false),
|
|
7777
7819
|
new ExpDesc('B', 0, 1, 1, 'A', false),
|
|
7820
|
+
null,
|
|
7821
|
+
new ExpDesc('U', 0, 0, 0, '', false),
|
|
7778
7822
|
];
|
|
7779
7823
|
|
|
7780
7824
|
var DataViewCommandType;
|
|
@@ -8434,6 +8478,19 @@ class ContextTimeoutResetCommand extends EventCommand {
|
|
|
8434
8478
|
}
|
|
8435
8479
|
}
|
|
8436
8480
|
|
|
8481
|
+
class SelectProgramCommand extends ExecOperCommand {
|
|
8482
|
+
getCommandInfo() {
|
|
8483
|
+
let eventsManager = AccessHelper.eventsManager;
|
|
8484
|
+
let rtEvt = eventsManager.getLastRtEvent();
|
|
8485
|
+
return 'Select Program ' + 'on Control ' + rtEvt.Control.Name;
|
|
8486
|
+
}
|
|
8487
|
+
getTask() {
|
|
8488
|
+
let eventsManager = AccessHelper.eventsManager;
|
|
8489
|
+
let rtEvt = eventsManager.getLastRtEvent();
|
|
8490
|
+
return rtEvt.getTask();
|
|
8491
|
+
}
|
|
8492
|
+
}
|
|
8493
|
+
|
|
8437
8494
|
class CommandFactory {
|
|
8438
8495
|
static CreateEventCommand(taskTag, magicEvent) {
|
|
8439
8496
|
let eventCommand = new EventCommand(magicEvent);
|
|
@@ -8651,6 +8708,19 @@ class CommandFactory {
|
|
|
8651
8708
|
cmd.Val = value;
|
|
8652
8709
|
return cmd;
|
|
8653
8710
|
}
|
|
8711
|
+
static CreateSelectProgramCommand(taskTag, handlerId, operIdx, ditIdx, value) {
|
|
8712
|
+
let execOperCommand = new SelectProgramCommand();
|
|
8713
|
+
execOperCommand.OperIdx = operIdx;
|
|
8714
|
+
execOperCommand.TaskTag = taskTag;
|
|
8715
|
+
execOperCommand.HandlerId = handlerId;
|
|
8716
|
+
execOperCommand.DitIdx = ditIdx;
|
|
8717
|
+
let cmd = execOperCommand;
|
|
8718
|
+
if (value !== null && value.length === 0)
|
|
8719
|
+
cmd.Val = " ";
|
|
8720
|
+
else
|
|
8721
|
+
cmd.Val = value;
|
|
8722
|
+
return cmd;
|
|
8723
|
+
}
|
|
8654
8724
|
static CreateEvaluateCommand(taskTag, expType, expIdx, expValLen, mprgCreator) {
|
|
8655
8725
|
let evaluateCommand = new EvaluateCommand();
|
|
8656
8726
|
evaluateCommand.TaskTag = taskTag;
|
|
@@ -8741,6 +8811,8 @@ class MirrorPrmMap extends PrmMap {
|
|
|
8741
8811
|
if (this.values != null) {
|
|
8742
8812
|
xml.Append("<" + this.mirroredID + ">");
|
|
8743
8813
|
for (let key of this.values.Keys) {
|
|
8814
|
+
if (this.CheckIfSystemReservedParam(key))
|
|
8815
|
+
continue;
|
|
8744
8816
|
xml.Append("<" + ConstInterface.MG_TAG_PARAM + " " +
|
|
8745
8817
|
XMLConstants.MG_ATTR_NAME + "=\"" + XmlParser.escape(key) + "\" ");
|
|
8746
8818
|
xml.Append(this.values.get_Item(key).mirrorToXML());
|
|
@@ -8750,6 +8822,14 @@ class MirrorPrmMap extends PrmMap {
|
|
|
8750
8822
|
}
|
|
8751
8823
|
return xml.ToString();
|
|
8752
8824
|
}
|
|
8825
|
+
CheckIfSystemReservedParam(key) {
|
|
8826
|
+
if (key == "UTF8TRANS" || key === "REMOTE_HOST" || key === "REMOTE_ADDR" ||
|
|
8827
|
+
key === "CTX" || key === "MGARG0" || key === "DATA" || key === "MGCURRENTREQUESTID" ||
|
|
8828
|
+
key === "HTTP_MGXPARIAGLOBALUNIQUESESSIONID" || key === "MG_POST_BODY")
|
|
8829
|
+
return true;
|
|
8830
|
+
else
|
|
8831
|
+
return false;
|
|
8832
|
+
}
|
|
8753
8833
|
mirrorToXML() {
|
|
8754
8834
|
let xml = new StringBuilder();
|
|
8755
8835
|
if (this.changes.length > 0) {
|
|
@@ -8826,6 +8906,7 @@ class Environment {
|
|
|
8826
8906
|
constructor() {
|
|
8827
8907
|
this._environments = new Hashtable();
|
|
8828
8908
|
this._contextInactivityTimeout = 0;
|
|
8909
|
+
this._clientContextInactivityTimeout = 0;
|
|
8829
8910
|
this._contextInactivityWarningTime = 0;
|
|
8830
8911
|
this._toolitipTimeout = 0;
|
|
8831
8912
|
this._contextUnloadTimeout = 0;
|
|
@@ -9005,6 +9086,9 @@ class Environment {
|
|
|
9005
9086
|
case ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_TIMEOUT:
|
|
9006
9087
|
this._contextInactivityTimeout = XmlParser.getInt(valueStr);
|
|
9007
9088
|
break;
|
|
9089
|
+
case ConstInterface.MG_ATTR_CLIENT_CONTEXT_INACTIVITY_TIMEOUT:
|
|
9090
|
+
this._clientContextInactivityTimeout = XmlParser.getInt(valueStr);
|
|
9091
|
+
break;
|
|
9008
9092
|
case ConstInterface.MG_ATTR_CONTEXT_INACTIVITY_WARNING_TIME:
|
|
9009
9093
|
this._contextInactivityWarningTime = XmlParser.getInt(valueStr);
|
|
9010
9094
|
break;
|
|
@@ -9208,6 +9292,9 @@ class Environment {
|
|
|
9208
9292
|
CanReplaceDecimalSeparator() {
|
|
9209
9293
|
return !this.IgnoreReplaceDecimalSeparator && this._canReplaceDecimalSeparator;
|
|
9210
9294
|
}
|
|
9295
|
+
getClientContextInactivityTimeout() {
|
|
9296
|
+
return this._clientContextInactivityTimeout;
|
|
9297
|
+
}
|
|
9211
9298
|
getContextInactivityTimeout() {
|
|
9212
9299
|
return this._contextInactivityTimeout;
|
|
9213
9300
|
}
|
|
@@ -9313,6 +9400,9 @@ class Environment {
|
|
|
9313
9400
|
setContextInactivityTimeout(val) {
|
|
9314
9401
|
this._contextInactivityTimeout = val;
|
|
9315
9402
|
}
|
|
9403
|
+
setClientContextInactivityTimeout(val) {
|
|
9404
|
+
this._clientContextInactivityTimeout = val;
|
|
9405
|
+
}
|
|
9316
9406
|
setContextInactivityWarningTime(val) {
|
|
9317
9407
|
this._contextInactivityWarningTime = val;
|
|
9318
9408
|
}
|
|
@@ -9565,8 +9655,6 @@ class Operation {
|
|
|
9565
9655
|
this._buttons = '\0';
|
|
9566
9656
|
this._checkByServer = false;
|
|
9567
9657
|
this._cmdToServer = null;
|
|
9568
|
-
this._defaultButton = 0;
|
|
9569
|
-
this._defaultButtonExp = null;
|
|
9570
9658
|
this._display = 'S';
|
|
9571
9659
|
this._errLogAppend = false;
|
|
9572
9660
|
this._evtHandler = null;
|
|
@@ -9771,13 +9859,6 @@ class Operation {
|
|
|
9771
9859
|
case ConstInterface.MG_ATTR_BUTTONS:
|
|
9772
9860
|
this._buttons = valueStr[0];
|
|
9773
9861
|
break;
|
|
9774
|
-
case ConstInterface.MG_ATTR_DEFAULT_BUTTON:
|
|
9775
|
-
this._defaultButton = XmlParser.getInt(valueStr);
|
|
9776
|
-
break;
|
|
9777
|
-
case ConstInterface.MG_ATTR_DEFAULT_BUTTON_EXP:
|
|
9778
|
-
expId = XmlParser.getInt(valueStr);
|
|
9779
|
-
this._defaultButtonExp = taskRef.getExpById(expId);
|
|
9780
|
-
break;
|
|
9781
9862
|
case ConstInterface.MG_ATTR_RETURN_VAL:
|
|
9782
9863
|
this._returnVal = Operation.InitField(valueStr, this._task);
|
|
9783
9864
|
break;
|
|
@@ -9915,8 +9996,10 @@ class Operation {
|
|
|
9915
9996
|
if (subformTask != null) {
|
|
9916
9997
|
let terminateTaskGracefully = true;
|
|
9917
9998
|
let rtEvnt = AccessHelper.eventsManager.getLastRtEvent();
|
|
9918
|
-
if (this._isRoute && rtEvnt !== null && rtEvnt.isGuiTriggeredEvent())
|
|
9999
|
+
if (this._isRoute && rtEvnt !== null && rtEvnt.isGuiTriggeredEvent()) {
|
|
9919
10000
|
terminateTaskGracefully = false;
|
|
10001
|
+
AccessHelper.eventsManager.setStopExecution(true);
|
|
10002
|
+
}
|
|
9920
10003
|
if (yield subformTask.endTask(true, false, !terminateTaskGracefully, true)) {
|
|
9921
10004
|
let parentTask = destSubForm.getForm().getTask();
|
|
9922
10005
|
parentTask.TaskService.RemoveRecomputes(parentTask, subformTask);
|
|
@@ -9985,10 +10068,9 @@ class Operation {
|
|
|
9985
10068
|
if (!NString.IsNullOrEmpty(textToDisplay)) {
|
|
9986
10069
|
let mlsTransTextToDisplay = LanguageData.Instance.translate(textToDisplay);
|
|
9987
10070
|
let mlsTransTitleToDisplay = LanguageData.Instance.translate(titleToDisplay);
|
|
9988
|
-
let tmpdefaultButton = this._defaultButtonExp == null ? this._defaultButton : (yield this._defaultButtonExp.evaluateWithResType(StorageAttribute.NUMERIC)).MgNumVal.NUM_2_LONG();
|
|
9989
10071
|
let verifyMode = Operation.getButtons(this._buttons);
|
|
9990
10072
|
verifyMode = verifyMode || Operation.getImage(this._image);
|
|
9991
|
-
verifyMode = verifyMode
|
|
10073
|
+
verifyMode = verifyMode;
|
|
9992
10074
|
if (UtilStrByteMode.isLocaleDefLangJPN()) {
|
|
9993
10075
|
let delimPos = mlsTransTextToDisplay.indexOf('|');
|
|
9994
10076
|
if (0 <= delimPos && delimPos < mlsTransTextToDisplay.length) {
|
|
@@ -10059,23 +10141,6 @@ class Operation {
|
|
|
10059
10141
|
}
|
|
10060
10142
|
return tmpImage;
|
|
10061
10143
|
}
|
|
10062
|
-
static getDefaultButton(defaultButtonID) {
|
|
10063
|
-
let tmpdefaultButton = 0;
|
|
10064
|
-
switch (defaultButtonID) {
|
|
10065
|
-
case 1:
|
|
10066
|
-
tmpdefaultButton = Styles.MSGBOX_DEFAULT_BUTTON_1;
|
|
10067
|
-
break;
|
|
10068
|
-
case 2:
|
|
10069
|
-
tmpdefaultButton = Styles.MSGBOX_DEFAULT_BUTTON_2;
|
|
10070
|
-
break;
|
|
10071
|
-
case 3:
|
|
10072
|
-
tmpdefaultButton = Styles.MSGBOX_DEFAULT_BUTTON_3;
|
|
10073
|
-
break;
|
|
10074
|
-
default:
|
|
10075
|
-
break;
|
|
10076
|
-
}
|
|
10077
|
-
return tmpdefaultButton;
|
|
10078
|
-
}
|
|
10079
10144
|
static setoperVerifyReturnValue(returnValue, returnVal) {
|
|
10080
10145
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10081
10146
|
if (returnVal !== null) {
|
|
@@ -10201,6 +10266,7 @@ class Operation {
|
|
|
10201
10266
|
aRtEvt.setArgList(this._argList);
|
|
10202
10267
|
if (aRtEvt.getTask().isMainProg())
|
|
10203
10268
|
aRtEvt.setMainPrgCreator(mprgCreator);
|
|
10269
|
+
AccessHelper.eventsManager.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
|
|
10204
10270
|
AccessHelper.eventsManager.pushExecStack(this._task.getTaskTag(), this._evtHandler.getId().toString(), this._serverId);
|
|
10205
10271
|
yield AccessHelper.eventsManager.handleEvent(aRtEvt, returnedFromServer);
|
|
10206
10272
|
AccessHelper.eventsManager.popExecStack();
|
|
@@ -10211,6 +10277,7 @@ class Operation {
|
|
|
10211
10277
|
aRtEvt.setArgList(arglist);
|
|
10212
10278
|
aRtEvt.setTask(null);
|
|
10213
10279
|
AccessHelper.eventsManager.addToTail(aRtEvt);
|
|
10280
|
+
AccessHelper.eventsManager.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
|
|
10214
10281
|
}
|
|
10215
10282
|
});
|
|
10216
10283
|
}
|
|
@@ -10327,6 +10394,9 @@ class Operation {
|
|
|
10327
10394
|
toString() {
|
|
10328
10395
|
return NString.Format("Executing operation number {0}", this._serverId + 1);
|
|
10329
10396
|
}
|
|
10397
|
+
GetRuntimeEvent() {
|
|
10398
|
+
return this._rtEvt;
|
|
10399
|
+
}
|
|
10330
10400
|
}
|
|
10331
10401
|
|
|
10332
10402
|
class MirrorString {
|
|
@@ -12378,6 +12448,9 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
12378
12448
|
resVal.IsNull = false;
|
|
12379
12449
|
this.eval_op_delete_cookie(valStack.pop().StrVal, resVal);
|
|
12380
12450
|
break;
|
|
12451
|
+
case ExpressionInterface.EXP_OP_ROUTEGET:
|
|
12452
|
+
this.eval_op_route_get(resVal);
|
|
12453
|
+
break;
|
|
12381
12454
|
default:
|
|
12382
12455
|
return;
|
|
12383
12456
|
}
|
|
@@ -14930,27 +15003,30 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
14930
15003
|
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14931
15004
|
resVal.StrVal = '';
|
|
14932
15005
|
let args = this.params2arguments(expVal, 0, expVal.length);
|
|
14933
|
-
var
|
|
14934
|
-
|
|
15006
|
+
var expiresDate, path, domain, secure, sameSite;
|
|
15007
|
+
expiresDate = args[1];
|
|
15008
|
+
let expiresTime = args[2];
|
|
14935
15009
|
let nativeDt;
|
|
14936
|
-
if (
|
|
14937
|
-
let breakParams =
|
|
14938
|
-
DisplayConvertor.Instance.date_break_datemode(breakParams,
|
|
14939
|
-
|
|
14940
|
-
|
|
15010
|
+
if (expiresDate) {
|
|
15011
|
+
let breakParams = DisplayConvertor.Instance.getNewDateBreakParams();
|
|
15012
|
+
DisplayConvertor.Instance.date_break_datemode(breakParams, expiresDate, false, this.ExpTask.getCompIdx());
|
|
15013
|
+
let year = breakParams.year;
|
|
15014
|
+
let month = breakParams.month;
|
|
15015
|
+
let day = breakParams.day;
|
|
14941
15016
|
if (breakParams.year == 0 && breakParams.month == 0 && breakParams.day == 0)
|
|
14942
15017
|
return null;
|
|
14943
|
-
nativeDt = new Date(breakParams.year, breakParams.month, breakParams.day);
|
|
14944
|
-
|
|
14945
|
-
|
|
14946
|
-
|
|
14947
|
-
|
|
14948
|
-
|
|
14949
|
-
|
|
14950
|
-
|
|
14951
|
-
|
|
15018
|
+
nativeDt = new Date(breakParams.year, breakParams.month - 1, breakParams.day);
|
|
15019
|
+
if (expiresTime) {
|
|
15020
|
+
let timeBreakParams = DisplayConvertor.Instance.getNewTimeBreakParams();
|
|
15021
|
+
DisplayConvertor.time_break(timeBreakParams, expiresTime);
|
|
15022
|
+
nativeDt.setHours(timeBreakParams.hour);
|
|
15023
|
+
nativeDt.setMinutes(timeBreakParams.minute);
|
|
15024
|
+
nativeDt.setSeconds(timeBreakParams.second);
|
|
15025
|
+
}
|
|
15026
|
+
}
|
|
15027
|
+
path = args[3];
|
|
15028
|
+
domain = args[4];
|
|
14952
15029
|
resVal.BoolVal = CookieService.setCookie(cookieName, args[0], nativeDt, path, domain, secure, sameSite);
|
|
14953
|
-
;
|
|
14954
15030
|
}
|
|
14955
15031
|
eval_op_get_cookie(cookieName, resVal) {
|
|
14956
15032
|
resVal.StrVal = CookieService.getCookie(cookieName);
|
|
@@ -14960,6 +15036,11 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
14960
15036
|
resVal.BoolVal = CookieService.deleteCookie(cookieName);
|
|
14961
15037
|
;
|
|
14962
15038
|
}
|
|
15039
|
+
eval_op_route_get(resVal) {
|
|
15040
|
+
resVal.Attr = StorageAttribute.UNICODE;
|
|
15041
|
+
resVal.IsNull = false;
|
|
15042
|
+
resVal.StrVal = Commands.getLastRoute();
|
|
15043
|
+
}
|
|
14963
15044
|
params2arguments(Exp_params, startAt, count) {
|
|
14964
15045
|
let NULL_STR = '';
|
|
14965
15046
|
let attr = new Array();
|
|
@@ -20259,6 +20340,7 @@ class MgForm extends MgFormBase {
|
|
|
20259
20340
|
super();
|
|
20260
20341
|
this.IsMovingInView = false;
|
|
20261
20342
|
this.PrevDisplayLine = 0;
|
|
20343
|
+
this.RefreshAllRows = false;
|
|
20262
20344
|
this.IgnoreFirstRecordCycle = false;
|
|
20263
20345
|
this.MovedToFirstControl = false;
|
|
20264
20346
|
this._suffixDone = false;
|
|
@@ -20593,8 +20675,10 @@ class MgForm extends MgFormBase {
|
|
|
20593
20675
|
let currLine = -1;
|
|
20594
20676
|
if (!this._task.DataView.isEmptyDataview())
|
|
20595
20677
|
currLine = this.getVisibleLine();
|
|
20596
|
-
if (this.isTableWithAbsoluteScrollbar())
|
|
20678
|
+
if (this.isTableWithAbsoluteScrollbar()) {
|
|
20597
20679
|
this.GetDataview().TotalRecordsCount += 1;
|
|
20680
|
+
this.RefreshAllRows = true;
|
|
20681
|
+
}
|
|
20598
20682
|
let newRecIdx = yield this.GetDataview().addRecord(doSuffix, false, isCrelineAbove);
|
|
20599
20683
|
if (newRecIdx > -1) {
|
|
20600
20684
|
if (this.isLineMode()) {
|
|
@@ -20628,8 +20712,10 @@ class MgForm extends MgFormBase {
|
|
|
20628
20712
|
yield this.RefreshDisplay(Constants.TASK_REFRESH_TABLE);
|
|
20629
20713
|
}
|
|
20630
20714
|
}
|
|
20631
|
-
else if (this.isTableWithAbsoluteScrollbar())
|
|
20715
|
+
else if (this.isTableWithAbsoluteScrollbar()) {
|
|
20632
20716
|
this.GetDataview().TotalRecordsCount -= 1;
|
|
20717
|
+
this.RefreshAllRows = false;
|
|
20718
|
+
}
|
|
20633
20719
|
});
|
|
20634
20720
|
}
|
|
20635
20721
|
delCurrRec() {
|
|
@@ -20660,8 +20746,10 @@ class MgForm extends MgFormBase {
|
|
|
20660
20746
|
this.GetDataview().setTopRecIdx(this.GetDataview().getCurrRecIdx());
|
|
20661
20747
|
if (_super.isLineMode.call(this)) {
|
|
20662
20748
|
if (_super.HasTable.call(this)) {
|
|
20663
|
-
if (this.isTableWithAbsoluteScrollbar())
|
|
20749
|
+
if (this.isTableWithAbsoluteScrollbar()) {
|
|
20664
20750
|
this.GetDataview().TotalRecordsCount--;
|
|
20751
|
+
this.RefreshAllRows = true;
|
|
20752
|
+
}
|
|
20665
20753
|
this.removeRecordsAfterIdx(this.GetDataview().getCurrRecIdx());
|
|
20666
20754
|
yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
|
|
20667
20755
|
}
|
|
@@ -20731,8 +20819,10 @@ class MgForm extends MgFormBase {
|
|
|
20731
20819
|
throw ex;
|
|
20732
20820
|
}
|
|
20733
20821
|
if (_super.HasTable.call(this)) {
|
|
20734
|
-
if (this.isTableWithAbsoluteScrollbar() && recRemoved)
|
|
20822
|
+
if (this.isTableWithAbsoluteScrollbar() && recRemoved) {
|
|
20735
20823
|
this.GetDataview().TotalRecordsCount--;
|
|
20824
|
+
this.RefreshAllRows = true;
|
|
20825
|
+
}
|
|
20736
20826
|
this.removeRecordsAfterIdx(this.GetDataview().getCurrRecIdx());
|
|
20737
20827
|
}
|
|
20738
20828
|
}
|
|
@@ -20998,7 +21088,7 @@ class MgForm extends MgFormBase {
|
|
|
20998
21088
|
let prevTopIdx = this.GetDataview().getTopRecIdx();
|
|
20999
21089
|
try {
|
|
21000
21090
|
index = idx + diffRef.value;
|
|
21001
|
-
if (!this.isRowValidated(idx) || sendAll) {
|
|
21091
|
+
if (!this.isRowValidated(idx) || sendAll || this.RefreshAllRows) {
|
|
21002
21092
|
if (index >= 0)
|
|
21003
21093
|
_super.checkAndCreateRow.call(this, index);
|
|
21004
21094
|
if (saveRowIdx + diffRef.value !== index) {
|
|
@@ -21025,6 +21115,7 @@ class MgForm extends MgFormBase {
|
|
|
21025
21115
|
}
|
|
21026
21116
|
}
|
|
21027
21117
|
this.RefreshUI();
|
|
21118
|
+
this.RefreshAllRows = false;
|
|
21028
21119
|
return updated;
|
|
21029
21120
|
});
|
|
21030
21121
|
}
|
|
@@ -21081,24 +21172,6 @@ class MgForm extends MgFormBase {
|
|
|
21081
21172
|
getPrevLine(line) {
|
|
21082
21173
|
return line - 1;
|
|
21083
21174
|
}
|
|
21084
|
-
getDefaultButton(checkVisibleEnable) {
|
|
21085
|
-
const _super = Object.create(null, {
|
|
21086
|
-
getProp: { get: () => super.getProp },
|
|
21087
|
-
getCtrlByName: { get: () => super.getCtrlByName }
|
|
21088
|
-
});
|
|
21089
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
21090
|
-
let defaultButton = null;
|
|
21091
|
-
let prop = _super.getProp.call(this, PropInterface.PROP_TYPE_DEFAULT_BUTTON);
|
|
21092
|
-
if (prop !== null) {
|
|
21093
|
-
defaultButton = _super.getCtrlByName.call(this, yield prop.getValue(), MgControlType.CTRL_TYPE_BUTTON);
|
|
21094
|
-
if (checkVisibleEnable && defaultButton !== null) {
|
|
21095
|
-
if (!defaultButton.isVisible() || !defaultButton.isEnabled())
|
|
21096
|
-
defaultButton = null;
|
|
21097
|
-
}
|
|
21098
|
-
}
|
|
21099
|
-
return defaultButton;
|
|
21100
|
-
});
|
|
21101
|
-
}
|
|
21102
21175
|
clearTableColumnSortMark(clearSortMark) {
|
|
21103
21176
|
if (clearSortMark) {
|
|
21104
21177
|
}
|
|
@@ -22621,6 +22694,11 @@ class EventHandler {
|
|
|
22621
22694
|
oper = this._operationTab.getOperation(execFlowIdx);
|
|
22622
22695
|
operType = oper.getType();
|
|
22623
22696
|
blockIfReturnedFromServer = false;
|
|
22697
|
+
if (RemoteCommandsProcessor.GetInstance().DelayCommandExecution) {
|
|
22698
|
+
this._task.setUseLoopStack(depth > 0);
|
|
22699
|
+
yield oper.operServer(null);
|
|
22700
|
+
break;
|
|
22701
|
+
}
|
|
22624
22702
|
if (returnedFromServer && oper.getServerId() < nextOperIdx)
|
|
22625
22703
|
if (operType !== ConstInterface.MG_OPER_BLOCK)
|
|
22626
22704
|
continue;
|
|
@@ -22746,10 +22824,10 @@ class EventHandler {
|
|
|
22746
22824
|
returnedFromServer = false;
|
|
22747
22825
|
}
|
|
22748
22826
|
}
|
|
22749
|
-
if (
|
|
22750
|
-
retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
|
|
22751
|
-
else if (routeOperationExecuted)
|
|
22827
|
+
if (routeOperationExecuted)
|
|
22752
22828
|
retvals = new RetVals(false, true);
|
|
22829
|
+
else if (blockIfReturnedFromServer)
|
|
22830
|
+
retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
|
|
22753
22831
|
else
|
|
22754
22832
|
retvals = null;
|
|
22755
22833
|
return retvals;
|
|
@@ -23596,7 +23674,8 @@ ActionManager.actEnabled = [
|
|
|
23596
23674
|
InternalInterface.MG_ACT_INDEX_CHANGE,
|
|
23597
23675
|
InternalInterface.MG_ACT_WEBCLIENT_ROUTE,
|
|
23598
23676
|
InternalInterface.MG_ACT_SET_EXTERNAL_VALUE,
|
|
23599
|
-
InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER
|
|
23677
|
+
InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER,
|
|
23678
|
+
InternalInterface.MG_ACT_CONTEXT_REMOVE
|
|
23600
23679
|
];
|
|
23601
23680
|
ActionManager.actNavigation = [
|
|
23602
23681
|
InternalInterface.MG_ACT_TBL_PRVLINE,
|
|
@@ -24239,16 +24318,12 @@ class Task extends TaskBase {
|
|
|
24239
24318
|
result = yield this.DataviewManager.Execute(dataViewCommand);
|
|
24240
24319
|
if (!result.Success)
|
|
24241
24320
|
return null;
|
|
24242
|
-
this.ResumeSubformLayout();
|
|
24243
24321
|
}
|
|
24244
24322
|
nonInteractiveTask = yield this.StartSubTasks(moveToFirstControl, nonInteractiveTask, callByDestSubForm);
|
|
24245
24323
|
this.InStartProcess = false;
|
|
24246
24324
|
return nonInteractiveTask;
|
|
24247
24325
|
});
|
|
24248
24326
|
}
|
|
24249
|
-
CanResumeSubformLayout() {
|
|
24250
|
-
return this.DataViewWasRetrieved;
|
|
24251
|
-
}
|
|
24252
24327
|
InitializeExecution() {
|
|
24253
24328
|
super.setBrkLevel(ConstInterface.BRK_LEVEL_REC_MAIN, -1);
|
|
24254
24329
|
this._firstRecordCycle = true;
|
|
@@ -24291,20 +24366,9 @@ class Task extends TaskBase {
|
|
|
24291
24366
|
this.ActionManager.enableList(actList, true, false);
|
|
24292
24367
|
if (this.IsSubForm)
|
|
24293
24368
|
this.ActionManager.enable(InternalInterface.MG_ACT_POST_REFRESH_BY_PARENT, true);
|
|
24294
|
-
if (this.Form != null && (yield this.Form.getDefaultButton(false)) != null)
|
|
24295
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_DEFAULT_BUTTON, true);
|
|
24296
24369
|
yield this.enableModes();
|
|
24297
24370
|
if (yield this.checkProp(PropInterface.PROP_TYPE_SELECTION, false)) {
|
|
24298
|
-
|
|
24299
|
-
let defaultButtonName = yield (this.Form.getProp(PropInterface.PROP_TYPE_DEFAULT_BUTTON)).getValue();
|
|
24300
|
-
let ctrl = this.Form.getCtrlByCtrlName(defaultButtonName);
|
|
24301
|
-
let aRtEvt = new RunTimeEvent(ctrl);
|
|
24302
|
-
if (aRtEvt.getType() === ConstInterface.EVENT_TYPE_INTERNAL &&
|
|
24303
|
-
aRtEvt.getInternalCode() === InternalInterface.MG_ACT_SELECT)
|
|
24304
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24305
|
-
}
|
|
24306
|
-
else
|
|
24307
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24371
|
+
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24308
24372
|
}
|
|
24309
24373
|
let enablePrintdata = yield this.checkProp(PropInterface.PROP_TYPE_PRINT_DATA, false);
|
|
24310
24374
|
this.ActionManager.enable(InternalInterface.MG_ACT_PRINT_DATA, enablePrintdata);
|
|
@@ -24986,9 +25050,9 @@ class Task extends TaskBase {
|
|
|
24986
25050
|
if (this.hasSubTasks()) {
|
|
24987
25051
|
if (!RemoteCommandsProcessor.GetInstance().DelayCommandExecution) {
|
|
24988
25052
|
let pendingTransactions = true;
|
|
24989
|
-
let clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
|
|
25053
|
+
let clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
|
|
24990
25054
|
if (!clientOperExist) {
|
|
24991
|
-
clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
|
|
25055
|
+
clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
|
|
24992
25056
|
if (!clientOperExist)
|
|
24993
25057
|
pendingTransactions = this.CheckIfPendingTransactions(this);
|
|
24994
25058
|
}
|
|
@@ -25007,6 +25071,10 @@ class Task extends TaskBase {
|
|
|
25007
25071
|
succeeded = (!AccessHelper.eventsManager.GetStopExecutionFlag() || dueToVerifyError);
|
|
25008
25072
|
}
|
|
25009
25073
|
}
|
|
25074
|
+
else {
|
|
25075
|
+
if (RemoteCommandsProcessor.GetInstance().DelayCommandExecution)
|
|
25076
|
+
this.SetServerSideTaskSuffix(this);
|
|
25077
|
+
}
|
|
25010
25078
|
if (this === mgdTab.StartupMgData.getFirstTask()) {
|
|
25011
25079
|
for (i = mgdTab.getSize() - 1; i > 0 && succeeded; i--) {
|
|
25012
25080
|
if (mgdTab.getMGData(i) != null) {
|
|
@@ -25065,8 +25133,12 @@ class Task extends TaskBase {
|
|
|
25065
25133
|
AccessHelper.eventsManager.setProcessingTopMostEndTask(true);
|
|
25066
25134
|
yield AccessHelper.eventsManager.handleEvents(baseMgd, 0);
|
|
25067
25135
|
AccessHelper.eventsManager.setProcessingTopMostEndTask(false);
|
|
25068
|
-
if (this.isAborting())
|
|
25136
|
+
if (this.isAborting()) {
|
|
25137
|
+
RemoteCommandsProcessor.GetInstance().DelayCommandExecution = false;
|
|
25138
|
+
this.DelayCommandExecution = false;
|
|
25139
|
+
this.allowRemoteCmdExecution = true;
|
|
25069
25140
|
return true;
|
|
25141
|
+
}
|
|
25070
25142
|
}
|
|
25071
25143
|
yield TaskServiceBase.Exit(this, reversibleExit, subformDestination);
|
|
25072
25144
|
if (this._parentTask != null && this._parentTask.isMainProg()) {
|
|
@@ -25120,36 +25192,52 @@ class Task extends TaskBase {
|
|
|
25120
25192
|
}
|
|
25121
25193
|
}
|
|
25122
25194
|
CheckIfClientOperationExistsInSubformTasks(task, eventCode) {
|
|
25123
|
-
|
|
25124
|
-
|
|
25125
|
-
|
|
25126
|
-
|
|
25127
|
-
|
|
25128
|
-
|
|
25129
|
-
|
|
25130
|
-
|
|
25131
|
-
|
|
25132
|
-
|
|
25133
|
-
|
|
25134
|
-
pendingTransactions = true;
|
|
25135
|
-
}
|
|
25136
|
-
if (handler != null && pendingTransactions == true) {
|
|
25137
|
-
let cnt = handler.getOperationTab().getSize();
|
|
25138
|
-
for (let i = 0; i < cnt; i++) {
|
|
25139
|
-
let oper = handler.getOperationTab().getOperation(i);
|
|
25140
|
-
if (oper.getExecOnClient()) {
|
|
25195
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25196
|
+
let clientOperationExist = false;
|
|
25197
|
+
var rtEvt = new RunTimeEvent(task);
|
|
25198
|
+
rtEvt.setInternal(eventCode);
|
|
25199
|
+
let handler = null;
|
|
25200
|
+
var evtHanPos = new EventHandlerPosition();
|
|
25201
|
+
evtHanPos.init(rtEvt);
|
|
25202
|
+
handler = evtHanPos.getNext();
|
|
25203
|
+
if (eventCode == InternalInterface.MG_ACT_REC_SUFFIX) {
|
|
25204
|
+
let currRecord = task.DataView.getCurrRec();
|
|
25205
|
+
if (task.DataView.modifiedRecordsNumber() > 0 || (currRecord != null && currRecord.Modified))
|
|
25141
25206
|
clientOperationExist = true;
|
|
25142
|
-
|
|
25207
|
+
if (!clientOperationExist) {
|
|
25208
|
+
let forceSuffix = yield task.checkProp(PropInterface.PROP_TYPE_FORCE_SUFFIX, false);
|
|
25209
|
+
if (forceSuffix === true)
|
|
25210
|
+
if (task.IsInteractive || task.getMode() !== Constants.TASK_MODE_CREATE)
|
|
25211
|
+
clientOperationExist = true;
|
|
25212
|
+
}
|
|
25213
|
+
}
|
|
25214
|
+
if (handler != null && !clientOperationExist) {
|
|
25215
|
+
let cnt = handler.getOperationTab().getSize();
|
|
25216
|
+
for (let i = 0; i < cnt; i++) {
|
|
25217
|
+
let oper = handler.getOperationTab().getOperation(i);
|
|
25218
|
+
if (oper.getExecOnClient()) {
|
|
25219
|
+
clientOperationExist = true;
|
|
25220
|
+
break;
|
|
25221
|
+
}
|
|
25222
|
+
else {
|
|
25223
|
+
if (oper.getType() == ConstInterface.MG_OPER_RAISE_EVENT) {
|
|
25224
|
+
if (oper.GetRuntimeEvent().getType() == ConstInterface.EVENT_TYPE_INTERNAL &&
|
|
25225
|
+
oper.GetRuntimeEvent().getInternalCode() === InternalInterface.MG_ACT_RT_REFRESH_VIEW) {
|
|
25226
|
+
clientOperationExist = true;
|
|
25227
|
+
break;
|
|
25228
|
+
}
|
|
25229
|
+
}
|
|
25230
|
+
}
|
|
25143
25231
|
}
|
|
25144
25232
|
}
|
|
25145
|
-
|
|
25146
|
-
|
|
25147
|
-
|
|
25148
|
-
|
|
25149
|
-
|
|
25233
|
+
if (!clientOperationExist && task.hasSubTasks()) {
|
|
25234
|
+
for (let i = 0; (!clientOperationExist && i < task.getSubTasks().getSize()); i++) {
|
|
25235
|
+
let subTask = task.SubTasks.getTask(i);
|
|
25236
|
+
clientOperationExist = yield this.CheckIfClientOperationExistsInSubformTasks(subTask, eventCode);
|
|
25237
|
+
}
|
|
25150
25238
|
}
|
|
25151
|
-
|
|
25152
|
-
|
|
25239
|
+
return clientOperationExist;
|
|
25240
|
+
});
|
|
25153
25241
|
}
|
|
25154
25242
|
CheckIfPendingTransactions(task) {
|
|
25155
25243
|
let pendingTransactions = false;
|
|
@@ -26644,6 +26732,16 @@ class MGData {
|
|
|
26644
26732
|
}
|
|
26645
26733
|
return false;
|
|
26646
26734
|
}
|
|
26735
|
+
getTaskByTaskDefinitionID(taskDefinitionID) {
|
|
26736
|
+
let task;
|
|
26737
|
+
for (let i = 0; i < this._tasksTab.getSize(); i = i + 1) {
|
|
26738
|
+
task = this._tasksTab.getTask(i);
|
|
26739
|
+
if (task.TaskDefinitionId.Equals(taskDefinitionID)) {
|
|
26740
|
+
return task;
|
|
26741
|
+
}
|
|
26742
|
+
}
|
|
26743
|
+
return null;
|
|
26744
|
+
}
|
|
26647
26745
|
getTimerHandlers() {
|
|
26648
26746
|
return this._timerHandlers;
|
|
26649
26747
|
}
|
|
@@ -26865,6 +26963,7 @@ class EventsManager {
|
|
|
26865
26963
|
this._isHandlingForceExit = false;
|
|
26866
26964
|
this._isNonReversibleExit = false;
|
|
26867
26965
|
this._isInRecordFlushEvent = false;
|
|
26966
|
+
this.lastSavedRouteEvent = null;
|
|
26868
26967
|
this._stopExecution = false;
|
|
26869
26968
|
this._processingTopMostEndTask = false;
|
|
26870
26969
|
this._stopExecutionCtrl = null;
|
|
@@ -26895,6 +26994,17 @@ class EventsManager {
|
|
|
26895
26994
|
this.guiPendingEvent = guiEvent;
|
|
26896
26995
|
}
|
|
26897
26996
|
addToTail(rtEvt) {
|
|
26997
|
+
if (!rtEvt.isIdleTimer()) {
|
|
26998
|
+
if (EventsManager.clientInactivityTimerON) {
|
|
26999
|
+
EventsManager.clientContextInactivityTimerAborted = true;
|
|
27000
|
+
}
|
|
27001
|
+
}
|
|
27002
|
+
else {
|
|
27003
|
+
if (this.getLastSavedRouteEvent() != null) {
|
|
27004
|
+
this.addToTail(this.getLastSavedRouteEvent());
|
|
27005
|
+
this.setLastSavedRouteEvent(null);
|
|
27006
|
+
}
|
|
27007
|
+
}
|
|
26898
27008
|
this._eventsQueue.put(rtEvt);
|
|
26899
27009
|
}
|
|
26900
27010
|
AddKeyboardEvent(mgForm, mgControl, modifier, keyCode, start, end, text, isActChar, suggestedValue, code) {
|
|
@@ -27243,6 +27353,17 @@ class EventsManager {
|
|
|
27243
27353
|
rtEvt.setArgList(args);
|
|
27244
27354
|
EventsManager.Instance.addToTail(rtEvt);
|
|
27245
27355
|
}
|
|
27356
|
+
AddLastSavedRouteEvent(srcTask, args) {
|
|
27357
|
+
let rtEvt = new RunTimeEvent(LastFocusedManager.Instance.getLastFocusedTask(), true);
|
|
27358
|
+
rtEvt.setInternal(InternalInterface.MG_ACT_WEBCLIENT_ROUTE);
|
|
27359
|
+
if (srcTask != null) {
|
|
27360
|
+
rtEvt.setTask(srcTask);
|
|
27361
|
+
if (args != null) {
|
|
27362
|
+
rtEvt.setArgList(args);
|
|
27363
|
+
}
|
|
27364
|
+
this.setLastSavedRouteEvent(rtEvt);
|
|
27365
|
+
}
|
|
27366
|
+
}
|
|
27246
27367
|
AddExternalValueEvent(ctrl, value, refreshDisplay) {
|
|
27247
27368
|
let rtEvt = new RunTimeEvent(ctrl, 0, true);
|
|
27248
27369
|
rtEvt.setInternal(InternalInterface.MG_ACT_SET_EXTERNAL_VALUE);
|
|
@@ -27296,6 +27417,21 @@ class EventsManager {
|
|
|
27296
27417
|
isForceExitPreRecordUpdate(task) {
|
|
27297
27418
|
return this._isHandlingForceExit && this.getForceExit() === ForceExit.PreRecordUpdate && task === this.getForceExitTask();
|
|
27298
27419
|
}
|
|
27420
|
+
ExecuteClientContextInactivityTimer() {
|
|
27421
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27422
|
+
let startTime = Misc.getSystemMilliseconds();
|
|
27423
|
+
let currTime;
|
|
27424
|
+
let clientCtxInactivityTimeout = Environment.Instance.getClientContextInactivityTimeout() * 100;
|
|
27425
|
+
EventsManager.clientInactivityTimerON = true;
|
|
27426
|
+
while (EventsManager.clientInactivityTimerON) {
|
|
27427
|
+
yield Thread.Sleep(1000);
|
|
27428
|
+
var timeLapsed = Misc.getSystemMilliseconds() - startTime;
|
|
27429
|
+
if (EventsManager.clientContextInactivityTimerAborted || timeLapsed >= clientCtxInactivityTimeout) {
|
|
27430
|
+
EventsManager.clientInactivityTimerON = false;
|
|
27431
|
+
}
|
|
27432
|
+
}
|
|
27433
|
+
});
|
|
27434
|
+
}
|
|
27299
27435
|
CheckAndShowSpinner(show) {
|
|
27300
27436
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27301
27437
|
let sendCommand = false;
|
|
@@ -27675,6 +27811,12 @@ class EventsManager {
|
|
|
27675
27811
|
}
|
|
27676
27812
|
});
|
|
27677
27813
|
}
|
|
27814
|
+
checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt) {
|
|
27815
|
+
if (aRtEvt.getType() == ConstInterface.EVENT_TYPE_INTERNAL && aRtEvt.getInternalCode() ==
|
|
27816
|
+
InternalInterface.MG_ACT_WEBCLIENT_ROUTE && RuntimeContextBase.Instance.RemovedContextFromServer) {
|
|
27817
|
+
this.setLastSavedRouteEvent(aRtEvt);
|
|
27818
|
+
}
|
|
27819
|
+
}
|
|
27678
27820
|
handleFocus(ctrl, line, onClick) {
|
|
27679
27821
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27680
27822
|
try {
|
|
@@ -27995,7 +28137,6 @@ class EventsManager {
|
|
|
27995
28137
|
task.ActionManager.enable(InternalInterface.MG_ACT_ZOOM, true);
|
|
27996
28138
|
if (ctrl.isTextControl() || ctrl.isChoiceControl())
|
|
27997
28139
|
ctrl.SetKeyboardLanguage(false);
|
|
27998
|
-
yield ctrl.refreshDefaultButton();
|
|
27999
28140
|
if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON)
|
|
28000
28141
|
task.ActionManager.enable(InternalInterface.MG_ACT_BUTTON, true);
|
|
28001
28142
|
yield task.setCreateDeleteActsEnableState();
|
|
@@ -28056,9 +28197,6 @@ class EventsManager {
|
|
|
28056
28197
|
case InternalInterface.MG_ACT_CTRL_MOUSEUP:
|
|
28057
28198
|
yield this.handleMouseUp(ctrl, displayLine, evt.isProduceClick());
|
|
28058
28199
|
return false;
|
|
28059
|
-
case InternalInterface.MG_ACT_DEFAULT_BUTTON:
|
|
28060
|
-
yield this.onActDefaultButton(form, evt);
|
|
28061
|
-
return false;
|
|
28062
28200
|
case InternalInterface.MG_ACT_SELECTION:
|
|
28063
28201
|
yield this.onActSelection(ctrl, form, evt);
|
|
28064
28202
|
return false;
|
|
@@ -28154,9 +28292,9 @@ class EventsManager {
|
|
|
28154
28292
|
}
|
|
28155
28293
|
if (form.HasTable())
|
|
28156
28294
|
yield form.bringRecordToPage();
|
|
28157
|
-
yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
|
|
28158
28295
|
if (task.getLevel() !== Constants.TASK_LEVEL_TASK)
|
|
28159
28296
|
return false;
|
|
28297
|
+
yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
|
|
28160
28298
|
Logger.Instance.WriteDevToLog("RECORD PREFIX: " + task.queryTaskPath());
|
|
28161
28299
|
(dv.getCurrRec()).setForceSaveOrg(false);
|
|
28162
28300
|
(dv.getCurrRec()).Synced = false;
|
|
@@ -28252,6 +28390,7 @@ class EventsManager {
|
|
|
28252
28390
|
Manager.CleanMessagePane(task);
|
|
28253
28391
|
ctrl.InControl = false;
|
|
28254
28392
|
ctrl.ClipBoardDataExists = false;
|
|
28393
|
+
ctrl.ValidateControl = true;
|
|
28255
28394
|
ctrl.setInControlSuffix(true);
|
|
28256
28395
|
break;
|
|
28257
28396
|
}
|
|
@@ -28276,7 +28415,7 @@ class EventsManager {
|
|
|
28276
28415
|
mgVal = yield ctrl.getMgValue(value);
|
|
28277
28416
|
var rec = task.DataView.getCurrRec();
|
|
28278
28417
|
encodedVal = rec.getXMLForValue(ctrl.getField().getId(), mgVal);
|
|
28279
|
-
cmd = CommandFactory.
|
|
28418
|
+
cmd = CommandFactory.CreateSelectProgramCommand(task.getTaskTag(), null, Int32.MinValue, ctrl.getDitIdx(), encodedVal);
|
|
28280
28419
|
task.getMGData().CmdsToServer.Add(cmd);
|
|
28281
28420
|
let commandsProcessorServer = CommandsProcessorManager.GetCommandsProcessor();
|
|
28282
28421
|
yield commandsProcessorServer.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
|
|
@@ -28323,14 +28462,6 @@ class EventsManager {
|
|
|
28323
28462
|
yield this.handleSelection(ctrl, displayLine, evt.getValue());
|
|
28324
28463
|
});
|
|
28325
28464
|
}
|
|
28326
|
-
onActDefaultButton(form, evt) {
|
|
28327
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
28328
|
-
let ctrl = yield form.getDefaultButton(true);
|
|
28329
|
-
if (ctrl === null)
|
|
28330
|
-
return;
|
|
28331
|
-
yield this.onActSelection(ctrl, form, evt);
|
|
28332
|
-
});
|
|
28333
|
-
}
|
|
28334
28465
|
onSubformClose(task, evt) {
|
|
28335
28466
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28336
28467
|
if ((evt.getArgList() != null) && (evt.getArgList().getSize() === 1)) {
|
|
@@ -28445,9 +28576,6 @@ class EventsManager {
|
|
|
28445
28576
|
case InternalInterface.MG_ACT_SUBFORM_CLOSE:
|
|
28446
28577
|
yield this.onSubformClose(task, evt);
|
|
28447
28578
|
break;
|
|
28448
|
-
case InternalInterface.MG_ACT_DEFAULT_BUTTON:
|
|
28449
|
-
yield this.onActDefaultButton(form, evt);
|
|
28450
|
-
break;
|
|
28451
28579
|
case InternalInterface.MG_ACT_BUTTON:
|
|
28452
28580
|
case InternalInterface.MG_ACT_CTRL_HIT:
|
|
28453
28581
|
if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON &&
|
|
@@ -28464,6 +28592,7 @@ class EventsManager {
|
|
|
28464
28592
|
aRtEvt.setArgList(ctrl.ArgList);
|
|
28465
28593
|
yield aRtEvt.setPublicName();
|
|
28466
28594
|
this.addToTail(aRtEvt);
|
|
28595
|
+
this.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
|
|
28467
28596
|
}
|
|
28468
28597
|
}
|
|
28469
28598
|
else if (ctrl.Type === MgControlType.CTRL_TYPE_TAB) {
|
|
@@ -28755,6 +28884,29 @@ class EventsManager {
|
|
|
28755
28884
|
cmdsToServer.Add(cmd);
|
|
28756
28885
|
yield server.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
|
|
28757
28886
|
break;
|
|
28887
|
+
case InternalInterface.MG_ACT_CONTEXT_REMOVE:
|
|
28888
|
+
let currRecord = LastFocusedManager.Instance.getLastFocusedTask().DataView.getCurrRec();
|
|
28889
|
+
if (ClientManager.TransCacheExists() || (currRecord != null && currRecord.Modified)) {
|
|
28890
|
+
console.log('Pending transaction/record is modified, discarded \'Context Remove\' event.');
|
|
28891
|
+
}
|
|
28892
|
+
else {
|
|
28893
|
+
if (Environment.Instance.getClientContextInactivityTimeout() > 0) {
|
|
28894
|
+
yield this.ExecuteClientContextInactivityTimer();
|
|
28895
|
+
}
|
|
28896
|
+
if (!EventsManager.clientContextInactivityTimerAborted) {
|
|
28897
|
+
let contextTerminationEventCommand = CommandFactory.CreateContextTerminationEventCommand(MGDataCollection.Instance.StartupMgData.getFirstTask().getTaskTag());
|
|
28898
|
+
MGDataCollection.Instance.getCurrMGData().CmdsToServer.Add(contextTerminationEventCommand);
|
|
28899
|
+
RemoteCommandsProcessor.GetInstance().Execute(CommandsProcessorBase_SendingInstruction.ONLY_COMMANDS);
|
|
28900
|
+
console.log('Removed context from server');
|
|
28901
|
+
RuntimeContextBase.Instance.RemovingContextFromServer = true;
|
|
28902
|
+
}
|
|
28903
|
+
else {
|
|
28904
|
+
console.log('Discarded \'Context Remove\' event as user event occurred.');
|
|
28905
|
+
EventsManager.clientContextInactivityTimerAborted = false;
|
|
28906
|
+
break;
|
|
28907
|
+
}
|
|
28908
|
+
}
|
|
28909
|
+
break;
|
|
28758
28910
|
case InternalInterface.MG_ACT_SERVER_TERMINATION:
|
|
28759
28911
|
cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
|
|
28760
28912
|
cmdsToServer.Add(cmd);
|
|
@@ -29253,6 +29405,10 @@ class EventsManager {
|
|
|
29253
29405
|
yield fld.updateDisplay();
|
|
29254
29406
|
task.setLevel(Constants.TASK_LEVEL_RECORD);
|
|
29255
29407
|
ctrl.setInControlSuffix(false);
|
|
29408
|
+
ctrl.IsInteractiveUpdate = false;
|
|
29409
|
+
if (ctrl.PropertyExists(PropInterface.PROP_TYPE_CUSTOM_VALIDATORS))
|
|
29410
|
+
yield ctrl.getProp(PropInterface.PROP_TYPE_CUSTOM_VALIDATORS).RefreshDisplay(true);
|
|
29411
|
+
ctrl.ValidateControl = false;
|
|
29256
29412
|
LastFocusedManager.setLastFocusedControl(task, null);
|
|
29257
29413
|
if (yield task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE))
|
|
29258
29414
|
yield task.endTask(true, false, false);
|
|
@@ -29483,6 +29639,45 @@ class EventsManager {
|
|
|
29483
29639
|
return null;
|
|
29484
29640
|
return this._rtEvents.pop();
|
|
29485
29641
|
}
|
|
29642
|
+
storeLastSavedRouteEventOnLocalStorage() {
|
|
29643
|
+
let dataStorage = window.localStorage;
|
|
29644
|
+
if (this.getLastSavedRouteEvent() != null) {
|
|
29645
|
+
let rtEvt = this.getLastSavedRouteEvent();
|
|
29646
|
+
dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT, "1");
|
|
29647
|
+
dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK, JSON.stringify(rtEvt.getTask().TaskDefinitionId));
|
|
29648
|
+
if (rtEvt.getArgList().getSize() > 0) {
|
|
29649
|
+
let str = new StringBuilder();
|
|
29650
|
+
rtEvt.getArgList().buildXML(str);
|
|
29651
|
+
dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST, str.toString());
|
|
29652
|
+
}
|
|
29653
|
+
}
|
|
29654
|
+
}
|
|
29655
|
+
restoreLastSavedRouteEventFromLocalStorage() {
|
|
29656
|
+
let dataStorage = window.localStorage;
|
|
29657
|
+
let lastRouteEvent = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT);
|
|
29658
|
+
if (lastRouteEvent === "1") {
|
|
29659
|
+
let srcTaskDefinitionStr = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
|
|
29660
|
+
let routeArgListStr = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
|
|
29661
|
+
let taskDefinitionId = new TaskDefinitionId();
|
|
29662
|
+
taskDefinitionId.fromJSON(srcTaskDefinitionStr);
|
|
29663
|
+
let srcTask = MGDataCollection.Instance.getCurrMGData().getTaskByTaskDefinitionID(taskDefinitionId);
|
|
29664
|
+
let args = null;
|
|
29665
|
+
if (routeArgListStr != null) {
|
|
29666
|
+
args = new ArgumentsList();
|
|
29667
|
+
args.fillList(routeArgListStr, srcTask);
|
|
29668
|
+
}
|
|
29669
|
+
EventsManager.Instance.AddLastSavedRouteEvent(srcTask, args);
|
|
29670
|
+
}
|
|
29671
|
+
}
|
|
29672
|
+
getLastSavedRouteEvent() {
|
|
29673
|
+
return this.lastSavedRouteEvent;
|
|
29674
|
+
}
|
|
29675
|
+
setLastSavedRouteEvent(rtEvt) {
|
|
29676
|
+
if (rtEvt == null)
|
|
29677
|
+
this.lastSavedRouteEvent = null;
|
|
29678
|
+
else
|
|
29679
|
+
this.lastSavedRouteEvent = rtEvt.replicate();
|
|
29680
|
+
}
|
|
29486
29681
|
getLastRtEvent() {
|
|
29487
29682
|
if (this._rtEvents.count() === 0)
|
|
29488
29683
|
return null;
|
|
@@ -29810,6 +30005,8 @@ EventsManager.Timer_Timeout_Infinite = -1;
|
|
|
29810
30005
|
EventsManager.REAL_ONLY = true;
|
|
29811
30006
|
EventsManager.MAX_OPER = 9999;
|
|
29812
30007
|
EventsManager.userGrantedForContextActivity = true;
|
|
30008
|
+
EventsManager.clientInactivityTimerON = false;
|
|
30009
|
+
EventsManager.clientContextInactivityTimerAborted = false;
|
|
29813
30010
|
EventsManager.Instance = new EventsManager();
|
|
29814
30011
|
EventsManager.clientBusyTimeStart = 0;
|
|
29815
30012
|
|
|
@@ -30349,7 +30546,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30349
30546
|
constructor() {
|
|
30350
30547
|
super();
|
|
30351
30548
|
this._buttonsID = '\0';
|
|
30352
|
-
this._defaultButton = 0;
|
|
30353
30549
|
this._image = '\0';
|
|
30354
30550
|
this._returnValStr = null;
|
|
30355
30551
|
this._returnVal = null;
|
|
@@ -30364,7 +30560,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30364
30560
|
mlsTransTitle.value = LanguageData.Instance.translate(this._title);
|
|
30365
30561
|
style.value = Operation.getButtons(this._buttonsID);
|
|
30366
30562
|
style.value |= Operation.getImage(this._image);
|
|
30367
|
-
style.value |= Operation.getDefaultButton(this._defaultButton);
|
|
30368
30563
|
if (task !== null) {
|
|
30369
30564
|
if (Task.isMainProgramField(this._returnValStr)) {
|
|
30370
30565
|
this._returnVal = Operation.InitField(this._returnValStr, task);
|
|
@@ -30379,9 +30574,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30379
30574
|
case ConstInterface.MG_ATTR_BUTTONS:
|
|
30380
30575
|
this._buttonsID = value[0];
|
|
30381
30576
|
break;
|
|
30382
|
-
case ConstInterface.MG_ATTR_DEFAULT_BUTTON:
|
|
30383
|
-
this._defaultButton = XmlParser.getInt(value);
|
|
30384
|
-
break;
|
|
30385
30577
|
case ConstInterface.MG_ATTR_RETURN_VAL:
|
|
30386
30578
|
this._returnValStr = value;
|
|
30387
30579
|
break;
|
|
@@ -30898,7 +31090,7 @@ class CommandsTable {
|
|
|
30898
31090
|
}
|
|
30899
31091
|
}
|
|
30900
31092
|
|
|
30901
|
-
let CurrentClientVersion = '4.
|
|
31093
|
+
let CurrentClientVersion = '4.801.0-dev481.221';
|
|
30902
31094
|
|
|
30903
31095
|
class ClientManager {
|
|
30904
31096
|
constructor() {
|
|
@@ -31008,7 +31200,7 @@ class ClientManager {
|
|
|
31008
31200
|
case "getRows":
|
|
31009
31201
|
dvRowIdx = lineIdx - task.DataView.RecordsBeforeCurrentView;
|
|
31010
31202
|
let lastFocusedVal = { guiMgControl: task.getForm().getTableCtrl(), Line: dvRowIdx, Val: "" };
|
|
31011
|
-
Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx,
|
|
31203
|
+
Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx, true, lastFocusedVal);
|
|
31012
31204
|
break;
|
|
31013
31205
|
case "RouterNavigate":
|
|
31014
31206
|
EventsManager.Instance.AddRouteEvent(task, InternalInterface.MG_ACT_WEBCLIENT_ROUTE, guiEvent.RouterPath, guiEvent.RouterOutletName, guiEvent.RouterParams);
|
|
@@ -31362,5 +31554,5 @@ class Process {
|
|
|
31362
31554
|
}
|
|
31363
31555
|
}
|
|
31364
31556
|
|
|
31365
|
-
export { AbortCommand, AccessHelper, ActionManager, AddLocateCommand, AddRangeCommand, AddSortCommand, AddUserLocateDataViewCommand, AddUserLocateRemoteDataViewCommand, AddUserRangeDataviewCommand, AddUserRangeRemoteDataViewCommand, AddUserSortDataViewCommand, AddUserSortRemoteDataViewCommand, Argument, ArgumentsList, Boundary, BrowserEscEventCommand, ClientManager, ClientOriginatedCommand, ClientOriginatedCommandSerializer, ClientOriginatedCommandTaskTag, ClientRefreshCommand, ClientTargetedCommandBase, ClientTargetedCommandType, ColumnSortEventCommand, CommandFactory, CommandSerializationHelper, CommandsProcessorBase, CommandsProcessorBase_SendingInstruction, CommandsProcessorBase_SessionStage, CommandsProcessorManager, CommandsTable, CompMainPrgTable, ComputeEventCommand, ConstInterface, ConstUtils, ContextTerminationEventCommand, ContextTimeoutResetCommand, ControlItemsRefreshCommand, CookieService, CreatedFormVector, CurrentClientVersion, DataSourceIdKey, DataView, DataViewBase, DataViewCommandBase, DataViewCommandType, DataViewOutputCommand, DataviewCommand, DataviewHeaderBase, DataviewHeaderFactory, DataviewHeaders, DataviewHeadersSaxHandler, DataviewManager, DataviewManagerBase, DcValuesReference, DummyDataViewCommand, DvCache, EnhancedVerifyCommand, EnvParamsTable, Environment, EnvironmentDetails, EvaluateCommand, Event, EventCommand, EventHandler, EventHandlerPosition, EventSubType, EventsAllowedType, EventsManager, ExecOperCommand, ExecutionStack, ExecutionStackEntry, ExpDesc, ExpStrTracker, ExpTable, Expression, ExpressionDict, ExpressionEvaluator, ExpressionLocalJpn, Expression_ReturnValue, FetchDataControlValuesEventCommand, Field, FieldBase, FieldsTable as FieldsTableExt, FlowMonitorInterface, FlowMonitorQueue, FormsTable, GUIManager, GlobalCommandsManager, GlobalParams, GlobalParamsQueryCommand, GuiEventsProcessor, HandlersTable, HeapSort, HttpClientAsync, HttpClientBase, HttpClientEvents, HttpClientSync, HttpManager, HttpUtility, IClientTargetedCommand, IndexChangeEventCommand, IniputForceWriteCommand, InteractiveCommunicationsFailureHandler, Key, LanguageData, LastFocusedManager, MGData, MGDataCollection, MagicBridge, MenusDeserializer, MgControl, MgForm, MgPriorityBlockingQueue, MgPriorityQueue, MirrorExpVal, MirrorPrmMap, MirrorString, NonReversibleExitEventCommand, NullValueException, OpenURLCommand, OpeningTaskDetails, Operation, OperationTable, ParamParseResult, PrmMap, Process, QueryCommand, RCTimer, Recompute, RecomputeCommand, RecomputeTable, Recompute_RcmpBy, Record, RecordOutOfDataViewException, RecordOutOfDataViewException_ExceptionType, RecordsTable, RefreshEventCommand, RefreshScreenEventCommand, RemoteCommandsProcessor, RemoteControlItemsRefreshCommand, RemoteDataViewCommandBase, RemoteDataViewCommandFactory, RemoteDataViewCommandUpdateNonModifiable, RemoteDataviewHeader, RemoteDataviewManager, RemoteTaskService, RequestMethod, ResetLocateCommand, ResetRangeCommand, ResetSortCommand, ResetUserLocateRemoteDataviewCommand, ResetUserRangeRemoteDataviewCommand, ResetUserSortRemoteDataviewCommand, ResultCommand, ResultValue, RetVals, ReturnResult, ReturnResultBase, RollbackEventCommand, RollbackEventCommand_RollbackType, RunTimeEvent, RunTimeEventBase, SET_DISPLAYLINE_BY_DV, Scrambler, ServerConfig, ServerError, SetTransactionStateDataviewCommand, SetTransactionStateRemoteDataViewCommand, Sort, SortCollection, SubformOpenEventCommand, SubformRefreshEventCommand, TableCache, TableCacheManager, Task, TaskBase, TaskServiceBase, TaskTransactionManager, Task_Direction, Task_Flow, Task_SubformExecModeEnum, TasksTable, Transaction, TransactionCommand, UniqueIDUtils, UnloadCommand, UserDetails, UserEventsTable, UserRange, VerifyCommand, WriteMessageToServerLogCommand, XMLBasedCommandBuilder, XMLBasedDcValuesBuilder, YesNoExp, getGuiEventObj };
|
|
31557
|
+
export { AbortCommand, AccessHelper, ActionManager, AddLocateCommand, AddRangeCommand, AddSortCommand, AddUserLocateDataViewCommand, AddUserLocateRemoteDataViewCommand, AddUserRangeDataviewCommand, AddUserRangeRemoteDataViewCommand, AddUserSortDataViewCommand, AddUserSortRemoteDataViewCommand, Argument, ArgumentsList, Boundary, BrowserEscEventCommand, ClientManager, ClientOriginatedCommand, ClientOriginatedCommandSerializer, ClientOriginatedCommandTaskTag, ClientRefreshCommand, ClientTargetedCommandBase, ClientTargetedCommandType, ColumnSortEventCommand, CommandFactory, CommandSerializationHelper, CommandsProcessorBase, CommandsProcessorBase_SendingInstruction, CommandsProcessorBase_SessionStage, CommandsProcessorManager, CommandsTable, CompMainPrgTable, ComputeEventCommand, ConstInterface, ConstUtils, ContextTerminationEventCommand, ContextTimeoutResetCommand, ControlItemsRefreshCommand, CookieService, CreatedFormVector, CurrentClientVersion, DataSourceIdKey, DataView, DataViewBase, DataViewCommandBase, DataViewCommandType, DataViewOutputCommand, DataviewCommand, DataviewHeaderBase, DataviewHeaderFactory, DataviewHeaders, DataviewHeadersSaxHandler, DataviewManager, DataviewManagerBase, DcValuesReference, DummyDataViewCommand, DvCache, EnhancedVerifyCommand, EnvParamsTable, Environment, EnvironmentDetails, EvaluateCommand, Event, EventCommand, EventHandler, EventHandlerPosition, EventSubType, EventsAllowedType, EventsManager, ExecOperCommand, ExecutionStack, ExecutionStackEntry, ExpDesc, ExpStrTracker, ExpTable, Expression, ExpressionDict, ExpressionEvaluator, ExpressionLocalJpn, Expression_ReturnValue, FetchDataControlValuesEventCommand, Field, FieldBase, FieldsTable as FieldsTableExt, FlowMonitorInterface, FlowMonitorQueue, FormsTable, GUIManager, GlobalCommandsManager, GlobalParams, GlobalParamsQueryCommand, GuiEventsProcessor, HandlersTable, HeapSort, HttpClientAsync, HttpClientBase, HttpClientEvents, HttpClientSync, HttpManager, HttpUtility, IClientTargetedCommand, IndexChangeEventCommand, IniputForceWriteCommand, InteractiveCommunicationsFailureHandler, Key, LanguageData, LastFocusedManager, MGData, MGDataCollection, MagicBridge, MenusDeserializer, MgControl, MgForm, MgPriorityBlockingQueue, MgPriorityQueue, MirrorExpVal, MirrorPrmMap, MirrorString, NonReversibleExitEventCommand, NullValueException, OpenURLCommand, OpeningTaskDetails, Operation, OperationTable, ParamParseResult, PrmMap, Process, QueryCommand, RCTimer, Recompute, RecomputeCommand, RecomputeTable, Recompute_RcmpBy, Record, RecordOutOfDataViewException, RecordOutOfDataViewException_ExceptionType, RecordsTable, RefreshEventCommand, RefreshScreenEventCommand, RemoteCommandsProcessor, RemoteControlItemsRefreshCommand, RemoteDataViewCommandBase, RemoteDataViewCommandFactory, RemoteDataViewCommandUpdateNonModifiable, RemoteDataviewHeader, RemoteDataviewManager, RemoteTaskService, RequestMethod, ResetLocateCommand, ResetRangeCommand, ResetSortCommand, ResetUserLocateRemoteDataviewCommand, ResetUserRangeRemoteDataviewCommand, ResetUserSortRemoteDataviewCommand, ResultCommand, ResultValue, RetVals, ReturnResult, ReturnResultBase, RollbackEventCommand, RollbackEventCommand_RollbackType, RunTimeEvent, RunTimeEventBase, SET_DISPLAYLINE_BY_DV, Scrambler, SelectProgramCommand, ServerConfig, ServerError, SetTransactionStateDataviewCommand, SetTransactionStateRemoteDataViewCommand, Sort, SortCollection, SubformOpenEventCommand, SubformRefreshEventCommand, TableCache, TableCacheManager, Task, TaskBase, TaskServiceBase, TaskTransactionManager, Task_Direction, Task_Flow, Task_SubformExecModeEnum, TasksTable, Transaction, TransactionCommand, UniqueIDUtils, UnloadCommand, UserDetails, UserEventsTable, UserRange, VerifyCommand, WriteMessageToServerLogCommand, XMLBasedCommandBuilder, XMLBasedDcValuesBuilder, YesNoExp, getGuiEventObj };
|
|
31366
31558
|
//# sourceMappingURL=magic-xpa-engine.js.map
|