@magic-xpa/engine 4.800.0-dev480.93 → 4.800.0
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 +1329 -1138
- 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 +33 -22
- package/esm2015/src/gui/MgForm.js +16 -24
- package/esm2015/src/remote/RemoteCommandsProcessor.js +48 -21
- package/esm2015/src/rt/Operation.js +7 -30
- package/esm2015/src/tasks/MGData.js +11 -1
- package/esm2015/src/tasks/MGDataCollection.js +12 -2
- package/esm2015/src/tasks/Task.js +46 -46
- package/esm2015/src/util/PrmMap.js +11 -1
- package/esm2015/src/util/cookie.service.js +10 -6
- package/fesm2015/magic-xpa-engine.js +358 -175
- 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 +0 -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
- package/src/util/cookie.service.d.ts +2 -2
|
@@ -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
|
}
|
|
@@ -10754,8 +10821,7 @@ class CookieService {
|
|
|
10754
10821
|
}
|
|
10755
10822
|
if (secure === false && sameSite === 'None') {
|
|
10756
10823
|
secure = true;
|
|
10757
|
-
console.warn(`
|
|
10758
|
-
`More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`);
|
|
10824
|
+
console.warn(`cookie ${name} was forced with secure flag because sameSite=None.`);
|
|
10759
10825
|
}
|
|
10760
10826
|
if (secure) {
|
|
10761
10827
|
cookieString += 'secure;';
|
|
@@ -10765,6 +10831,7 @@ class CookieService {
|
|
|
10765
10831
|
}
|
|
10766
10832
|
cookieString += 'sameSite=' + sameSite + ';';
|
|
10767
10833
|
document.cookie = cookieString;
|
|
10834
|
+
return this.getCookie(name);
|
|
10768
10835
|
}
|
|
10769
10836
|
static encode_cookie(cookie_value) {
|
|
10770
10837
|
cookie_value = cookie_value.trim();
|
|
@@ -10786,7 +10853,7 @@ class CookieService {
|
|
|
10786
10853
|
return cookie_value;
|
|
10787
10854
|
}
|
|
10788
10855
|
static getCookie(cookieName) {
|
|
10789
|
-
let name = cookieName + '=';
|
|
10856
|
+
let name = NString.TrimStart(cookieName + '=');
|
|
10790
10857
|
let decodedCookie = decodeURIComponent(document.cookie);
|
|
10791
10858
|
let ca = decodedCookie.split(';');
|
|
10792
10859
|
for (let i = 0; i < ca.length; i++) {
|
|
@@ -10794,7 +10861,7 @@ class CookieService {
|
|
|
10794
10861
|
while (c.charAt(0) == ' ') {
|
|
10795
10862
|
c = c.substring(1);
|
|
10796
10863
|
}
|
|
10797
|
-
if (c.indexOf(name)
|
|
10864
|
+
if (c.indexOf(name) >= 0) {
|
|
10798
10865
|
let decode = CookieService.decode_cookie(c.substring(name.length, c.length));
|
|
10799
10866
|
return decode;
|
|
10800
10867
|
}
|
|
@@ -10807,9 +10874,12 @@ class CookieService {
|
|
|
10807
10874
|
var cookie = cookies[i];
|
|
10808
10875
|
var eqPos = cookie.indexOf('=');
|
|
10809
10876
|
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
|
|
10810
|
-
if (cookieName === name
|
|
10877
|
+
if (cookieName === decodeURI(name)) {
|
|
10811
10878
|
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
|
|
10879
|
+
return true;
|
|
10880
|
+
}
|
|
10812
10881
|
}
|
|
10882
|
+
return false;
|
|
10813
10883
|
}
|
|
10814
10884
|
}
|
|
10815
10885
|
|
|
@@ -12375,6 +12445,9 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
12375
12445
|
resVal.IsNull = false;
|
|
12376
12446
|
this.eval_op_delete_cookie(valStack.pop().StrVal, resVal);
|
|
12377
12447
|
break;
|
|
12448
|
+
case ExpressionInterface.EXP_OP_ROUTEGET:
|
|
12449
|
+
this.eval_op_route_get(resVal);
|
|
12450
|
+
break;
|
|
12378
12451
|
default:
|
|
12379
12452
|
return;
|
|
12380
12453
|
}
|
|
@@ -14927,35 +15000,43 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
14927
15000
|
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14928
15001
|
resVal.StrVal = '';
|
|
14929
15002
|
let args = this.params2arguments(expVal, 0, expVal.length);
|
|
14930
|
-
var
|
|
14931
|
-
|
|
15003
|
+
var expiresDate, path, domain, secure, sameSite;
|
|
15004
|
+
expiresDate = args[1];
|
|
15005
|
+
let expiresTime = args[2];
|
|
14932
15006
|
let nativeDt;
|
|
14933
|
-
if (
|
|
14934
|
-
let breakParams =
|
|
14935
|
-
DisplayConvertor.Instance.date_break_datemode(breakParams,
|
|
14936
|
-
|
|
14937
|
-
|
|
15007
|
+
if (expiresDate) {
|
|
15008
|
+
let breakParams = DisplayConvertor.Instance.getNewDateBreakParams();
|
|
15009
|
+
DisplayConvertor.Instance.date_break_datemode(breakParams, expiresDate, false, this.ExpTask.getCompIdx());
|
|
15010
|
+
let year = breakParams.year;
|
|
15011
|
+
let month = breakParams.month;
|
|
15012
|
+
let day = breakParams.day;
|
|
14938
15013
|
if (breakParams.year == 0 && breakParams.month == 0 && breakParams.day == 0)
|
|
14939
15014
|
return null;
|
|
14940
|
-
nativeDt = new Date(breakParams.year, breakParams.month, breakParams.day);
|
|
14941
|
-
|
|
14942
|
-
|
|
14943
|
-
|
|
14944
|
-
|
|
14945
|
-
|
|
14946
|
-
|
|
14947
|
-
|
|
14948
|
-
|
|
14949
|
-
|
|
14950
|
-
|
|
15015
|
+
nativeDt = new Date(breakParams.year, breakParams.month - 1, breakParams.day);
|
|
15016
|
+
if (expiresTime) {
|
|
15017
|
+
let timeBreakParams = DisplayConvertor.Instance.getNewTimeBreakParams();
|
|
15018
|
+
DisplayConvertor.time_break(timeBreakParams, expiresTime);
|
|
15019
|
+
nativeDt.setHours(timeBreakParams.hour);
|
|
15020
|
+
nativeDt.setMinutes(timeBreakParams.minute);
|
|
15021
|
+
nativeDt.setSeconds(timeBreakParams.second);
|
|
15022
|
+
}
|
|
15023
|
+
}
|
|
15024
|
+
path = args[3];
|
|
15025
|
+
domain = args[4];
|
|
15026
|
+
resVal.BoolVal = CookieService.setCookie(cookieName, args[0], nativeDt, path, domain, secure, sameSite);
|
|
14951
15027
|
}
|
|
14952
15028
|
eval_op_get_cookie(cookieName, resVal) {
|
|
14953
15029
|
resVal.StrVal = CookieService.getCookie(cookieName);
|
|
14954
15030
|
}
|
|
14955
15031
|
eval_op_delete_cookie(cookieName, resVal) {
|
|
14956
15032
|
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14957
|
-
CookieService.deleteCookie(cookieName);
|
|
14958
|
-
|
|
15033
|
+
resVal.BoolVal = CookieService.deleteCookie(cookieName);
|
|
15034
|
+
;
|
|
15035
|
+
}
|
|
15036
|
+
eval_op_route_get(resVal) {
|
|
15037
|
+
resVal.Attr = StorageAttribute.UNICODE;
|
|
15038
|
+
resVal.IsNull = false;
|
|
15039
|
+
resVal.StrVal = Commands.getLastRoute();
|
|
14959
15040
|
}
|
|
14960
15041
|
params2arguments(Exp_params, startAt, count) {
|
|
14961
15042
|
let NULL_STR = '';
|
|
@@ -20256,6 +20337,7 @@ class MgForm extends MgFormBase {
|
|
|
20256
20337
|
super();
|
|
20257
20338
|
this.IsMovingInView = false;
|
|
20258
20339
|
this.PrevDisplayLine = 0;
|
|
20340
|
+
this.RefreshAllRows = false;
|
|
20259
20341
|
this.IgnoreFirstRecordCycle = false;
|
|
20260
20342
|
this.MovedToFirstControl = false;
|
|
20261
20343
|
this._suffixDone = false;
|
|
@@ -20590,8 +20672,10 @@ class MgForm extends MgFormBase {
|
|
|
20590
20672
|
let currLine = -1;
|
|
20591
20673
|
if (!this._task.DataView.isEmptyDataview())
|
|
20592
20674
|
currLine = this.getVisibleLine();
|
|
20593
|
-
if (this.isTableWithAbsoluteScrollbar())
|
|
20675
|
+
if (this.isTableWithAbsoluteScrollbar()) {
|
|
20594
20676
|
this.GetDataview().TotalRecordsCount += 1;
|
|
20677
|
+
this.RefreshAllRows = true;
|
|
20678
|
+
}
|
|
20595
20679
|
let newRecIdx = yield this.GetDataview().addRecord(doSuffix, false, isCrelineAbove);
|
|
20596
20680
|
if (newRecIdx > -1) {
|
|
20597
20681
|
if (this.isLineMode()) {
|
|
@@ -20625,8 +20709,10 @@ class MgForm extends MgFormBase {
|
|
|
20625
20709
|
yield this.RefreshDisplay(Constants.TASK_REFRESH_TABLE);
|
|
20626
20710
|
}
|
|
20627
20711
|
}
|
|
20628
|
-
else if (this.isTableWithAbsoluteScrollbar())
|
|
20712
|
+
else if (this.isTableWithAbsoluteScrollbar()) {
|
|
20629
20713
|
this.GetDataview().TotalRecordsCount -= 1;
|
|
20714
|
+
this.RefreshAllRows = false;
|
|
20715
|
+
}
|
|
20630
20716
|
});
|
|
20631
20717
|
}
|
|
20632
20718
|
delCurrRec() {
|
|
@@ -20657,8 +20743,10 @@ class MgForm extends MgFormBase {
|
|
|
20657
20743
|
this.GetDataview().setTopRecIdx(this.GetDataview().getCurrRecIdx());
|
|
20658
20744
|
if (_super.isLineMode.call(this)) {
|
|
20659
20745
|
if (_super.HasTable.call(this)) {
|
|
20660
|
-
if (this.isTableWithAbsoluteScrollbar())
|
|
20746
|
+
if (this.isTableWithAbsoluteScrollbar()) {
|
|
20661
20747
|
this.GetDataview().TotalRecordsCount--;
|
|
20748
|
+
this.RefreshAllRows = true;
|
|
20749
|
+
}
|
|
20662
20750
|
this.removeRecordsAfterIdx(this.GetDataview().getCurrRecIdx());
|
|
20663
20751
|
yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
|
|
20664
20752
|
}
|
|
@@ -20728,8 +20816,10 @@ class MgForm extends MgFormBase {
|
|
|
20728
20816
|
throw ex;
|
|
20729
20817
|
}
|
|
20730
20818
|
if (_super.HasTable.call(this)) {
|
|
20731
|
-
if (this.isTableWithAbsoluteScrollbar() && recRemoved)
|
|
20819
|
+
if (this.isTableWithAbsoluteScrollbar() && recRemoved) {
|
|
20732
20820
|
this.GetDataview().TotalRecordsCount--;
|
|
20821
|
+
this.RefreshAllRows = true;
|
|
20822
|
+
}
|
|
20733
20823
|
this.removeRecordsAfterIdx(this.GetDataview().getCurrRecIdx());
|
|
20734
20824
|
}
|
|
20735
20825
|
}
|
|
@@ -20995,7 +21085,7 @@ class MgForm extends MgFormBase {
|
|
|
20995
21085
|
let prevTopIdx = this.GetDataview().getTopRecIdx();
|
|
20996
21086
|
try {
|
|
20997
21087
|
index = idx + diffRef.value;
|
|
20998
|
-
if (!this.isRowValidated(idx) || sendAll) {
|
|
21088
|
+
if (!this.isRowValidated(idx) || sendAll || this.RefreshAllRows) {
|
|
20999
21089
|
if (index >= 0)
|
|
21000
21090
|
_super.checkAndCreateRow.call(this, index);
|
|
21001
21091
|
if (saveRowIdx + diffRef.value !== index) {
|
|
@@ -21022,6 +21112,7 @@ class MgForm extends MgFormBase {
|
|
|
21022
21112
|
}
|
|
21023
21113
|
}
|
|
21024
21114
|
this.RefreshUI();
|
|
21115
|
+
this.RefreshAllRows = false;
|
|
21025
21116
|
return updated;
|
|
21026
21117
|
});
|
|
21027
21118
|
}
|
|
@@ -21078,24 +21169,6 @@ class MgForm extends MgFormBase {
|
|
|
21078
21169
|
getPrevLine(line) {
|
|
21079
21170
|
return line - 1;
|
|
21080
21171
|
}
|
|
21081
|
-
getDefaultButton(checkVisibleEnable) {
|
|
21082
|
-
const _super = Object.create(null, {
|
|
21083
|
-
getProp: { get: () => super.getProp },
|
|
21084
|
-
getCtrlByName: { get: () => super.getCtrlByName }
|
|
21085
|
-
});
|
|
21086
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
21087
|
-
let defaultButton = null;
|
|
21088
|
-
let prop = _super.getProp.call(this, PropInterface.PROP_TYPE_DEFAULT_BUTTON);
|
|
21089
|
-
if (prop !== null) {
|
|
21090
|
-
defaultButton = _super.getCtrlByName.call(this, yield prop.getValue(), MgControlType.CTRL_TYPE_BUTTON);
|
|
21091
|
-
if (checkVisibleEnable && defaultButton !== null) {
|
|
21092
|
-
if (!defaultButton.isVisible() || !defaultButton.isEnabled())
|
|
21093
|
-
defaultButton = null;
|
|
21094
|
-
}
|
|
21095
|
-
}
|
|
21096
|
-
return defaultButton;
|
|
21097
|
-
});
|
|
21098
|
-
}
|
|
21099
21172
|
clearTableColumnSortMark(clearSortMark) {
|
|
21100
21173
|
if (clearSortMark) {
|
|
21101
21174
|
}
|
|
@@ -22618,6 +22691,11 @@ class EventHandler {
|
|
|
22618
22691
|
oper = this._operationTab.getOperation(execFlowIdx);
|
|
22619
22692
|
operType = oper.getType();
|
|
22620
22693
|
blockIfReturnedFromServer = false;
|
|
22694
|
+
if (RemoteCommandsProcessor.GetInstance().DelayCommandExecution) {
|
|
22695
|
+
this._task.setUseLoopStack(depth > 0);
|
|
22696
|
+
yield oper.operServer(null);
|
|
22697
|
+
break;
|
|
22698
|
+
}
|
|
22621
22699
|
if (returnedFromServer && oper.getServerId() < nextOperIdx)
|
|
22622
22700
|
if (operType !== ConstInterface.MG_OPER_BLOCK)
|
|
22623
22701
|
continue;
|
|
@@ -22743,10 +22821,10 @@ class EventHandler {
|
|
|
22743
22821
|
returnedFromServer = false;
|
|
22744
22822
|
}
|
|
22745
22823
|
}
|
|
22746
|
-
if (
|
|
22747
|
-
retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
|
|
22748
|
-
else if (routeOperationExecuted)
|
|
22824
|
+
if (routeOperationExecuted)
|
|
22749
22825
|
retvals = new RetVals(false, true);
|
|
22826
|
+
else if (blockIfReturnedFromServer)
|
|
22827
|
+
retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
|
|
22750
22828
|
else
|
|
22751
22829
|
retvals = null;
|
|
22752
22830
|
return retvals;
|
|
@@ -23593,7 +23671,8 @@ ActionManager.actEnabled = [
|
|
|
23593
23671
|
InternalInterface.MG_ACT_INDEX_CHANGE,
|
|
23594
23672
|
InternalInterface.MG_ACT_WEBCLIENT_ROUTE,
|
|
23595
23673
|
InternalInterface.MG_ACT_SET_EXTERNAL_VALUE,
|
|
23596
|
-
InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER
|
|
23674
|
+
InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER,
|
|
23675
|
+
InternalInterface.MG_ACT_CONTEXT_REMOVE
|
|
23597
23676
|
];
|
|
23598
23677
|
ActionManager.actNavigation = [
|
|
23599
23678
|
InternalInterface.MG_ACT_TBL_PRVLINE,
|
|
@@ -24236,16 +24315,12 @@ class Task extends TaskBase {
|
|
|
24236
24315
|
result = yield this.DataviewManager.Execute(dataViewCommand);
|
|
24237
24316
|
if (!result.Success)
|
|
24238
24317
|
return null;
|
|
24239
|
-
this.ResumeSubformLayout();
|
|
24240
24318
|
}
|
|
24241
24319
|
nonInteractiveTask = yield this.StartSubTasks(moveToFirstControl, nonInteractiveTask, callByDestSubForm);
|
|
24242
24320
|
this.InStartProcess = false;
|
|
24243
24321
|
return nonInteractiveTask;
|
|
24244
24322
|
});
|
|
24245
24323
|
}
|
|
24246
|
-
CanResumeSubformLayout() {
|
|
24247
|
-
return this.DataViewWasRetrieved;
|
|
24248
|
-
}
|
|
24249
24324
|
InitializeExecution() {
|
|
24250
24325
|
super.setBrkLevel(ConstInterface.BRK_LEVEL_REC_MAIN, -1);
|
|
24251
24326
|
this._firstRecordCycle = true;
|
|
@@ -24288,20 +24363,9 @@ class Task extends TaskBase {
|
|
|
24288
24363
|
this.ActionManager.enableList(actList, true, false);
|
|
24289
24364
|
if (this.IsSubForm)
|
|
24290
24365
|
this.ActionManager.enable(InternalInterface.MG_ACT_POST_REFRESH_BY_PARENT, true);
|
|
24291
|
-
if (this.Form != null && (yield this.Form.getDefaultButton(false)) != null)
|
|
24292
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_DEFAULT_BUTTON, true);
|
|
24293
24366
|
yield this.enableModes();
|
|
24294
24367
|
if (yield this.checkProp(PropInterface.PROP_TYPE_SELECTION, false)) {
|
|
24295
|
-
|
|
24296
|
-
let defaultButtonName = yield (this.Form.getProp(PropInterface.PROP_TYPE_DEFAULT_BUTTON)).getValue();
|
|
24297
|
-
let ctrl = this.Form.getCtrlByCtrlName(defaultButtonName);
|
|
24298
|
-
let aRtEvt = new RunTimeEvent(ctrl);
|
|
24299
|
-
if (aRtEvt.getType() === ConstInterface.EVENT_TYPE_INTERNAL &&
|
|
24300
|
-
aRtEvt.getInternalCode() === InternalInterface.MG_ACT_SELECT)
|
|
24301
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24302
|
-
}
|
|
24303
|
-
else
|
|
24304
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24368
|
+
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24305
24369
|
}
|
|
24306
24370
|
let enablePrintdata = yield this.checkProp(PropInterface.PROP_TYPE_PRINT_DATA, false);
|
|
24307
24371
|
this.ActionManager.enable(InternalInterface.MG_ACT_PRINT_DATA, enablePrintdata);
|
|
@@ -24983,9 +25047,9 @@ class Task extends TaskBase {
|
|
|
24983
25047
|
if (this.hasSubTasks()) {
|
|
24984
25048
|
if (!RemoteCommandsProcessor.GetInstance().DelayCommandExecution) {
|
|
24985
25049
|
let pendingTransactions = true;
|
|
24986
|
-
let clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
|
|
25050
|
+
let clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
|
|
24987
25051
|
if (!clientOperExist) {
|
|
24988
|
-
clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
|
|
25052
|
+
clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
|
|
24989
25053
|
if (!clientOperExist)
|
|
24990
25054
|
pendingTransactions = this.CheckIfPendingTransactions(this);
|
|
24991
25055
|
}
|
|
@@ -25004,6 +25068,10 @@ class Task extends TaskBase {
|
|
|
25004
25068
|
succeeded = (!AccessHelper.eventsManager.GetStopExecutionFlag() || dueToVerifyError);
|
|
25005
25069
|
}
|
|
25006
25070
|
}
|
|
25071
|
+
else {
|
|
25072
|
+
if (RemoteCommandsProcessor.GetInstance().DelayCommandExecution)
|
|
25073
|
+
this.SetServerSideTaskSuffix(this);
|
|
25074
|
+
}
|
|
25007
25075
|
if (this === mgdTab.StartupMgData.getFirstTask()) {
|
|
25008
25076
|
for (i = mgdTab.getSize() - 1; i > 0 && succeeded; i--) {
|
|
25009
25077
|
if (mgdTab.getMGData(i) != null) {
|
|
@@ -25062,8 +25130,12 @@ class Task extends TaskBase {
|
|
|
25062
25130
|
AccessHelper.eventsManager.setProcessingTopMostEndTask(true);
|
|
25063
25131
|
yield AccessHelper.eventsManager.handleEvents(baseMgd, 0);
|
|
25064
25132
|
AccessHelper.eventsManager.setProcessingTopMostEndTask(false);
|
|
25065
|
-
if (this.isAborting())
|
|
25133
|
+
if (this.isAborting()) {
|
|
25134
|
+
RemoteCommandsProcessor.GetInstance().DelayCommandExecution = false;
|
|
25135
|
+
this.DelayCommandExecution = false;
|
|
25136
|
+
this.allowRemoteCmdExecution = true;
|
|
25066
25137
|
return true;
|
|
25138
|
+
}
|
|
25067
25139
|
}
|
|
25068
25140
|
yield TaskServiceBase.Exit(this, reversibleExit, subformDestination);
|
|
25069
25141
|
if (this._parentTask != null && this._parentTask.isMainProg()) {
|
|
@@ -25117,36 +25189,43 @@ class Task extends TaskBase {
|
|
|
25117
25189
|
}
|
|
25118
25190
|
}
|
|
25119
25191
|
CheckIfClientOperationExistsInSubformTasks(task, eventCode) {
|
|
25120
|
-
|
|
25121
|
-
|
|
25122
|
-
|
|
25123
|
-
|
|
25124
|
-
|
|
25125
|
-
|
|
25126
|
-
|
|
25127
|
-
|
|
25128
|
-
|
|
25129
|
-
|
|
25130
|
-
|
|
25131
|
-
pendingTransactions = true;
|
|
25132
|
-
}
|
|
25133
|
-
if (handler != null && pendingTransactions == true) {
|
|
25134
|
-
let cnt = handler.getOperationTab().getSize();
|
|
25135
|
-
for (let i = 0; i < cnt; i++) {
|
|
25136
|
-
let oper = handler.getOperationTab().getOperation(i);
|
|
25137
|
-
if (oper.getExecOnClient()) {
|
|
25192
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25193
|
+
let clientOperationExist = false;
|
|
25194
|
+
var rtEvt = new RunTimeEvent(task);
|
|
25195
|
+
rtEvt.setInternal(eventCode);
|
|
25196
|
+
let handler = null;
|
|
25197
|
+
var evtHanPos = new EventHandlerPosition();
|
|
25198
|
+
evtHanPos.init(rtEvt);
|
|
25199
|
+
handler = evtHanPos.getNext();
|
|
25200
|
+
if (eventCode == InternalInterface.MG_ACT_REC_SUFFIX) {
|
|
25201
|
+
let currRecord = task.DataView.getCurrRec();
|
|
25202
|
+
if (task.DataView.modifiedRecordsNumber() > 0 || (currRecord != null && currRecord.Modified))
|
|
25138
25203
|
clientOperationExist = true;
|
|
25139
|
-
|
|
25204
|
+
if (!clientOperationExist) {
|
|
25205
|
+
let forceSuffix = yield task.checkProp(PropInterface.PROP_TYPE_FORCE_SUFFIX, false);
|
|
25206
|
+
if (forceSuffix === true)
|
|
25207
|
+
if (task.IsInteractive || task.getMode() !== Constants.TASK_MODE_CREATE)
|
|
25208
|
+
clientOperationExist = true;
|
|
25209
|
+
}
|
|
25210
|
+
}
|
|
25211
|
+
if (handler != null && !clientOperationExist) {
|
|
25212
|
+
let cnt = handler.getOperationTab().getSize();
|
|
25213
|
+
for (let i = 0; i < cnt; i++) {
|
|
25214
|
+
let oper = handler.getOperationTab().getOperation(i);
|
|
25215
|
+
if (oper.getExecOnClient()) {
|
|
25216
|
+
clientOperationExist = true;
|
|
25217
|
+
break;
|
|
25218
|
+
}
|
|
25140
25219
|
}
|
|
25141
25220
|
}
|
|
25142
|
-
|
|
25143
|
-
|
|
25144
|
-
|
|
25145
|
-
|
|
25146
|
-
|
|
25221
|
+
if (!clientOperationExist && task.hasSubTasks()) {
|
|
25222
|
+
for (let i = 0; (!clientOperationExist && i < task.getSubTasks().getSize()); i++) {
|
|
25223
|
+
let subTask = task.SubTasks.getTask(i);
|
|
25224
|
+
clientOperationExist = yield this.CheckIfClientOperationExistsInSubformTasks(subTask, eventCode);
|
|
25225
|
+
}
|
|
25147
25226
|
}
|
|
25148
|
-
|
|
25149
|
-
|
|
25227
|
+
return clientOperationExist;
|
|
25228
|
+
});
|
|
25150
25229
|
}
|
|
25151
25230
|
CheckIfPendingTransactions(task) {
|
|
25152
25231
|
let pendingTransactions = false;
|
|
@@ -26641,6 +26720,16 @@ class MGData {
|
|
|
26641
26720
|
}
|
|
26642
26721
|
return false;
|
|
26643
26722
|
}
|
|
26723
|
+
getTaskByTaskDefinitionID(taskDefinitionID) {
|
|
26724
|
+
let task;
|
|
26725
|
+
for (let i = 0; i < this._tasksTab.getSize(); i = i + 1) {
|
|
26726
|
+
task = this._tasksTab.getTask(i);
|
|
26727
|
+
if (task.TaskDefinitionId.Equals(taskDefinitionID)) {
|
|
26728
|
+
return task;
|
|
26729
|
+
}
|
|
26730
|
+
}
|
|
26731
|
+
return null;
|
|
26732
|
+
}
|
|
26644
26733
|
getTimerHandlers() {
|
|
26645
26734
|
return this._timerHandlers;
|
|
26646
26735
|
}
|
|
@@ -26862,6 +26951,7 @@ class EventsManager {
|
|
|
26862
26951
|
this._isHandlingForceExit = false;
|
|
26863
26952
|
this._isNonReversibleExit = false;
|
|
26864
26953
|
this._isInRecordFlushEvent = false;
|
|
26954
|
+
this.lastSavedRouteEvent = null;
|
|
26865
26955
|
this._stopExecution = false;
|
|
26866
26956
|
this._processingTopMostEndTask = false;
|
|
26867
26957
|
this._stopExecutionCtrl = null;
|
|
@@ -26892,6 +26982,17 @@ class EventsManager {
|
|
|
26892
26982
|
this.guiPendingEvent = guiEvent;
|
|
26893
26983
|
}
|
|
26894
26984
|
addToTail(rtEvt) {
|
|
26985
|
+
if (!rtEvt.isIdleTimer()) {
|
|
26986
|
+
if (EventsManager.clientInactivityTimerON) {
|
|
26987
|
+
EventsManager.clientContextInactivityTimerAborted = true;
|
|
26988
|
+
}
|
|
26989
|
+
}
|
|
26990
|
+
else {
|
|
26991
|
+
if (this.getLastSavedRouteEvent() != null) {
|
|
26992
|
+
this.addToTail(this.getLastSavedRouteEvent());
|
|
26993
|
+
this.setLastSavedRouteEvent(null);
|
|
26994
|
+
}
|
|
26995
|
+
}
|
|
26895
26996
|
this._eventsQueue.put(rtEvt);
|
|
26896
26997
|
}
|
|
26897
26998
|
AddKeyboardEvent(mgForm, mgControl, modifier, keyCode, start, end, text, isActChar, suggestedValue, code) {
|
|
@@ -27240,6 +27341,17 @@ class EventsManager {
|
|
|
27240
27341
|
rtEvt.setArgList(args);
|
|
27241
27342
|
EventsManager.Instance.addToTail(rtEvt);
|
|
27242
27343
|
}
|
|
27344
|
+
AddLastSavedRouteEvent(srcTask, args) {
|
|
27345
|
+
let rtEvt = new RunTimeEvent(LastFocusedManager.Instance.getLastFocusedTask(), true);
|
|
27346
|
+
rtEvt.setInternal(InternalInterface.MG_ACT_WEBCLIENT_ROUTE);
|
|
27347
|
+
if (srcTask != null) {
|
|
27348
|
+
rtEvt.setTask(srcTask);
|
|
27349
|
+
if (args != null) {
|
|
27350
|
+
rtEvt.setArgList(args);
|
|
27351
|
+
}
|
|
27352
|
+
this.setLastSavedRouteEvent(rtEvt);
|
|
27353
|
+
}
|
|
27354
|
+
}
|
|
27243
27355
|
AddExternalValueEvent(ctrl, value, refreshDisplay) {
|
|
27244
27356
|
let rtEvt = new RunTimeEvent(ctrl, 0, true);
|
|
27245
27357
|
rtEvt.setInternal(InternalInterface.MG_ACT_SET_EXTERNAL_VALUE);
|
|
@@ -27293,6 +27405,21 @@ class EventsManager {
|
|
|
27293
27405
|
isForceExitPreRecordUpdate(task) {
|
|
27294
27406
|
return this._isHandlingForceExit && this.getForceExit() === ForceExit.PreRecordUpdate && task === this.getForceExitTask();
|
|
27295
27407
|
}
|
|
27408
|
+
ExecuteClientContextInactivityTimer() {
|
|
27409
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27410
|
+
let startTime = Misc.getSystemMilliseconds();
|
|
27411
|
+
let currTime;
|
|
27412
|
+
let clientCtxInactivityTimeout = Environment.Instance.getClientContextInactivityTimeout() * 100;
|
|
27413
|
+
EventsManager.clientInactivityTimerON = true;
|
|
27414
|
+
while (EventsManager.clientInactivityTimerON) {
|
|
27415
|
+
yield Thread.Sleep(1000);
|
|
27416
|
+
var timeLapsed = Misc.getSystemMilliseconds() - startTime;
|
|
27417
|
+
if (EventsManager.clientContextInactivityTimerAborted || timeLapsed >= clientCtxInactivityTimeout) {
|
|
27418
|
+
EventsManager.clientInactivityTimerON = false;
|
|
27419
|
+
}
|
|
27420
|
+
}
|
|
27421
|
+
});
|
|
27422
|
+
}
|
|
27296
27423
|
CheckAndShowSpinner(show) {
|
|
27297
27424
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27298
27425
|
let sendCommand = false;
|
|
@@ -27672,6 +27799,12 @@ class EventsManager {
|
|
|
27672
27799
|
}
|
|
27673
27800
|
});
|
|
27674
27801
|
}
|
|
27802
|
+
checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt) {
|
|
27803
|
+
if (aRtEvt.getType() == ConstInterface.EVENT_TYPE_INTERNAL && aRtEvt.getInternalCode() ==
|
|
27804
|
+
InternalInterface.MG_ACT_WEBCLIENT_ROUTE && RuntimeContextBase.Instance.RemovedContextFromServer) {
|
|
27805
|
+
this.setLastSavedRouteEvent(aRtEvt);
|
|
27806
|
+
}
|
|
27807
|
+
}
|
|
27675
27808
|
handleFocus(ctrl, line, onClick) {
|
|
27676
27809
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27677
27810
|
try {
|
|
@@ -27992,7 +28125,6 @@ class EventsManager {
|
|
|
27992
28125
|
task.ActionManager.enable(InternalInterface.MG_ACT_ZOOM, true);
|
|
27993
28126
|
if (ctrl.isTextControl() || ctrl.isChoiceControl())
|
|
27994
28127
|
ctrl.SetKeyboardLanguage(false);
|
|
27995
|
-
yield ctrl.refreshDefaultButton();
|
|
27996
28128
|
if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON)
|
|
27997
28129
|
task.ActionManager.enable(InternalInterface.MG_ACT_BUTTON, true);
|
|
27998
28130
|
yield task.setCreateDeleteActsEnableState();
|
|
@@ -28053,9 +28185,6 @@ class EventsManager {
|
|
|
28053
28185
|
case InternalInterface.MG_ACT_CTRL_MOUSEUP:
|
|
28054
28186
|
yield this.handleMouseUp(ctrl, displayLine, evt.isProduceClick());
|
|
28055
28187
|
return false;
|
|
28056
|
-
case InternalInterface.MG_ACT_DEFAULT_BUTTON:
|
|
28057
|
-
yield this.onActDefaultButton(form, evt);
|
|
28058
|
-
return false;
|
|
28059
28188
|
case InternalInterface.MG_ACT_SELECTION:
|
|
28060
28189
|
yield this.onActSelection(ctrl, form, evt);
|
|
28061
28190
|
return false;
|
|
@@ -28151,9 +28280,9 @@ class EventsManager {
|
|
|
28151
28280
|
}
|
|
28152
28281
|
if (form.HasTable())
|
|
28153
28282
|
yield form.bringRecordToPage();
|
|
28154
|
-
yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
|
|
28155
28283
|
if (task.getLevel() !== Constants.TASK_LEVEL_TASK)
|
|
28156
28284
|
return false;
|
|
28285
|
+
yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
|
|
28157
28286
|
Logger.Instance.WriteDevToLog("RECORD PREFIX: " + task.queryTaskPath());
|
|
28158
28287
|
(dv.getCurrRec()).setForceSaveOrg(false);
|
|
28159
28288
|
(dv.getCurrRec()).Synced = false;
|
|
@@ -28249,6 +28378,7 @@ class EventsManager {
|
|
|
28249
28378
|
Manager.CleanMessagePane(task);
|
|
28250
28379
|
ctrl.InControl = false;
|
|
28251
28380
|
ctrl.ClipBoardDataExists = false;
|
|
28381
|
+
ctrl.ValidateControl = true;
|
|
28252
28382
|
ctrl.setInControlSuffix(true);
|
|
28253
28383
|
break;
|
|
28254
28384
|
}
|
|
@@ -28273,7 +28403,7 @@ class EventsManager {
|
|
|
28273
28403
|
mgVal = yield ctrl.getMgValue(value);
|
|
28274
28404
|
var rec = task.DataView.getCurrRec();
|
|
28275
28405
|
encodedVal = rec.getXMLForValue(ctrl.getField().getId(), mgVal);
|
|
28276
|
-
cmd = CommandFactory.
|
|
28406
|
+
cmd = CommandFactory.CreateSelectProgramCommand(task.getTaskTag(), null, Int32.MinValue, ctrl.getDitIdx(), encodedVal);
|
|
28277
28407
|
task.getMGData().CmdsToServer.Add(cmd);
|
|
28278
28408
|
let commandsProcessorServer = CommandsProcessorManager.GetCommandsProcessor();
|
|
28279
28409
|
yield commandsProcessorServer.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
|
|
@@ -28320,14 +28450,6 @@ class EventsManager {
|
|
|
28320
28450
|
yield this.handleSelection(ctrl, displayLine, evt.getValue());
|
|
28321
28451
|
});
|
|
28322
28452
|
}
|
|
28323
|
-
onActDefaultButton(form, evt) {
|
|
28324
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
28325
|
-
let ctrl = yield form.getDefaultButton(true);
|
|
28326
|
-
if (ctrl === null)
|
|
28327
|
-
return;
|
|
28328
|
-
yield this.onActSelection(ctrl, form, evt);
|
|
28329
|
-
});
|
|
28330
|
-
}
|
|
28331
28453
|
onSubformClose(task, evt) {
|
|
28332
28454
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28333
28455
|
if ((evt.getArgList() != null) && (evt.getArgList().getSize() === 1)) {
|
|
@@ -28442,9 +28564,6 @@ class EventsManager {
|
|
|
28442
28564
|
case InternalInterface.MG_ACT_SUBFORM_CLOSE:
|
|
28443
28565
|
yield this.onSubformClose(task, evt);
|
|
28444
28566
|
break;
|
|
28445
|
-
case InternalInterface.MG_ACT_DEFAULT_BUTTON:
|
|
28446
|
-
yield this.onActDefaultButton(form, evt);
|
|
28447
|
-
break;
|
|
28448
28567
|
case InternalInterface.MG_ACT_BUTTON:
|
|
28449
28568
|
case InternalInterface.MG_ACT_CTRL_HIT:
|
|
28450
28569
|
if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON &&
|
|
@@ -28461,6 +28580,7 @@ class EventsManager {
|
|
|
28461
28580
|
aRtEvt.setArgList(ctrl.ArgList);
|
|
28462
28581
|
yield aRtEvt.setPublicName();
|
|
28463
28582
|
this.addToTail(aRtEvt);
|
|
28583
|
+
this.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
|
|
28464
28584
|
}
|
|
28465
28585
|
}
|
|
28466
28586
|
else if (ctrl.Type === MgControlType.CTRL_TYPE_TAB) {
|
|
@@ -28752,6 +28872,29 @@ class EventsManager {
|
|
|
28752
28872
|
cmdsToServer.Add(cmd);
|
|
28753
28873
|
yield server.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
|
|
28754
28874
|
break;
|
|
28875
|
+
case InternalInterface.MG_ACT_CONTEXT_REMOVE:
|
|
28876
|
+
let currRecord = LastFocusedManager.Instance.getLastFocusedTask().DataView.getCurrRec();
|
|
28877
|
+
if (ClientManager.TransCacheExists() || (currRecord != null && currRecord.Modified)) {
|
|
28878
|
+
console.log('Pending transaction/record is modified, discarded \'Context Remove\' event.');
|
|
28879
|
+
}
|
|
28880
|
+
else {
|
|
28881
|
+
if (Environment.Instance.getClientContextInactivityTimeout() > 0) {
|
|
28882
|
+
yield this.ExecuteClientContextInactivityTimer();
|
|
28883
|
+
}
|
|
28884
|
+
if (!EventsManager.clientContextInactivityTimerAborted) {
|
|
28885
|
+
let contextTerminationEventCommand = CommandFactory.CreateContextTerminationEventCommand(MGDataCollection.Instance.StartupMgData.getFirstTask().getTaskTag());
|
|
28886
|
+
MGDataCollection.Instance.getCurrMGData().CmdsToServer.Add(contextTerminationEventCommand);
|
|
28887
|
+
RemoteCommandsProcessor.GetInstance().Execute(CommandsProcessorBase_SendingInstruction.ONLY_COMMANDS);
|
|
28888
|
+
console.log('Removed context from server');
|
|
28889
|
+
RuntimeContextBase.Instance.RemovingContextFromServer = true;
|
|
28890
|
+
}
|
|
28891
|
+
else {
|
|
28892
|
+
console.log('Discarded \'Context Remove\' event as user event occurred.');
|
|
28893
|
+
EventsManager.clientContextInactivityTimerAborted = false;
|
|
28894
|
+
break;
|
|
28895
|
+
}
|
|
28896
|
+
}
|
|
28897
|
+
break;
|
|
28755
28898
|
case InternalInterface.MG_ACT_SERVER_TERMINATION:
|
|
28756
28899
|
cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
|
|
28757
28900
|
cmdsToServer.Add(cmd);
|
|
@@ -29250,6 +29393,10 @@ class EventsManager {
|
|
|
29250
29393
|
yield fld.updateDisplay();
|
|
29251
29394
|
task.setLevel(Constants.TASK_LEVEL_RECORD);
|
|
29252
29395
|
ctrl.setInControlSuffix(false);
|
|
29396
|
+
ctrl.IsInteractiveUpdate = false;
|
|
29397
|
+
if (ctrl.PropertyExists(PropInterface.PROP_TYPE_CUSTOM_VALIDATORS))
|
|
29398
|
+
yield ctrl.getProp(PropInterface.PROP_TYPE_CUSTOM_VALIDATORS).RefreshDisplay(true);
|
|
29399
|
+
ctrl.ValidateControl = false;
|
|
29253
29400
|
LastFocusedManager.setLastFocusedControl(task, null);
|
|
29254
29401
|
if (yield task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE))
|
|
29255
29402
|
yield task.endTask(true, false, false);
|
|
@@ -29480,6 +29627,45 @@ class EventsManager {
|
|
|
29480
29627
|
return null;
|
|
29481
29628
|
return this._rtEvents.pop();
|
|
29482
29629
|
}
|
|
29630
|
+
storeLastSavedRouteEventOnLocalStorage() {
|
|
29631
|
+
let dataStorage = window.localStorage;
|
|
29632
|
+
if (this.getLastSavedRouteEvent() != null) {
|
|
29633
|
+
let rtEvt = this.getLastSavedRouteEvent();
|
|
29634
|
+
dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT, "1");
|
|
29635
|
+
dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK, JSON.stringify(rtEvt.getTask().TaskDefinitionId));
|
|
29636
|
+
if (rtEvt.getArgList().getSize() > 0) {
|
|
29637
|
+
let str = new StringBuilder();
|
|
29638
|
+
rtEvt.getArgList().buildXML(str);
|
|
29639
|
+
dataStorage.setItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST, str.toString());
|
|
29640
|
+
}
|
|
29641
|
+
}
|
|
29642
|
+
}
|
|
29643
|
+
restoreLastSavedRouteEventFromLocalStorage() {
|
|
29644
|
+
let dataStorage = window.localStorage;
|
|
29645
|
+
let lastRouteEvent = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT);
|
|
29646
|
+
if (lastRouteEvent === "1") {
|
|
29647
|
+
let srcTaskDefinitionStr = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
|
|
29648
|
+
let routeArgListStr = dataStorage.getItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
|
|
29649
|
+
let taskDefinitionId = new TaskDefinitionId();
|
|
29650
|
+
taskDefinitionId.fromJSON(srcTaskDefinitionStr);
|
|
29651
|
+
let srcTask = MGDataCollection.Instance.getCurrMGData().getTaskByTaskDefinitionID(taskDefinitionId);
|
|
29652
|
+
let args = null;
|
|
29653
|
+
if (routeArgListStr != null) {
|
|
29654
|
+
args = new ArgumentsList();
|
|
29655
|
+
args.fillList(routeArgListStr, srcTask);
|
|
29656
|
+
}
|
|
29657
|
+
EventsManager.Instance.AddLastSavedRouteEvent(srcTask, args);
|
|
29658
|
+
}
|
|
29659
|
+
}
|
|
29660
|
+
getLastSavedRouteEvent() {
|
|
29661
|
+
return this.lastSavedRouteEvent;
|
|
29662
|
+
}
|
|
29663
|
+
setLastSavedRouteEvent(rtEvt) {
|
|
29664
|
+
if (rtEvt == null)
|
|
29665
|
+
this.lastSavedRouteEvent = null;
|
|
29666
|
+
else
|
|
29667
|
+
this.lastSavedRouteEvent = rtEvt.replicate();
|
|
29668
|
+
}
|
|
29483
29669
|
getLastRtEvent() {
|
|
29484
29670
|
if (this._rtEvents.count() === 0)
|
|
29485
29671
|
return null;
|
|
@@ -29807,6 +29993,8 @@ EventsManager.Timer_Timeout_Infinite = -1;
|
|
|
29807
29993
|
EventsManager.REAL_ONLY = true;
|
|
29808
29994
|
EventsManager.MAX_OPER = 9999;
|
|
29809
29995
|
EventsManager.userGrantedForContextActivity = true;
|
|
29996
|
+
EventsManager.clientInactivityTimerON = false;
|
|
29997
|
+
EventsManager.clientContextInactivityTimerAborted = false;
|
|
29810
29998
|
EventsManager.Instance = new EventsManager();
|
|
29811
29999
|
EventsManager.clientBusyTimeStart = 0;
|
|
29812
30000
|
|
|
@@ -30346,7 +30534,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30346
30534
|
constructor() {
|
|
30347
30535
|
super();
|
|
30348
30536
|
this._buttonsID = '\0';
|
|
30349
|
-
this._defaultButton = 0;
|
|
30350
30537
|
this._image = '\0';
|
|
30351
30538
|
this._returnValStr = null;
|
|
30352
30539
|
this._returnVal = null;
|
|
@@ -30361,7 +30548,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30361
30548
|
mlsTransTitle.value = LanguageData.Instance.translate(this._title);
|
|
30362
30549
|
style.value = Operation.getButtons(this._buttonsID);
|
|
30363
30550
|
style.value |= Operation.getImage(this._image);
|
|
30364
|
-
style.value |= Operation.getDefaultButton(this._defaultButton);
|
|
30365
30551
|
if (task !== null) {
|
|
30366
30552
|
if (Task.isMainProgramField(this._returnValStr)) {
|
|
30367
30553
|
this._returnVal = Operation.InitField(this._returnValStr, task);
|
|
@@ -30376,9 +30562,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30376
30562
|
case ConstInterface.MG_ATTR_BUTTONS:
|
|
30377
30563
|
this._buttonsID = value[0];
|
|
30378
30564
|
break;
|
|
30379
|
-
case ConstInterface.MG_ATTR_DEFAULT_BUTTON:
|
|
30380
|
-
this._defaultButton = XmlParser.getInt(value);
|
|
30381
|
-
break;
|
|
30382
30565
|
case ConstInterface.MG_ATTR_RETURN_VAL:
|
|
30383
30566
|
this._returnValStr = value;
|
|
30384
30567
|
break;
|
|
@@ -30895,7 +31078,7 @@ class CommandsTable {
|
|
|
30895
31078
|
}
|
|
30896
31079
|
}
|
|
30897
31080
|
|
|
30898
|
-
let CurrentClientVersion = '4.800.0
|
|
31081
|
+
let CurrentClientVersion = '4.800.0';
|
|
30899
31082
|
|
|
30900
31083
|
class ClientManager {
|
|
30901
31084
|
constructor() {
|
|
@@ -31005,7 +31188,7 @@ class ClientManager {
|
|
|
31005
31188
|
case "getRows":
|
|
31006
31189
|
dvRowIdx = lineIdx - task.DataView.RecordsBeforeCurrentView;
|
|
31007
31190
|
let lastFocusedVal = { guiMgControl: task.getForm().getTableCtrl(), Line: dvRowIdx, Val: "" };
|
|
31008
|
-
Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx,
|
|
31191
|
+
Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx, true, lastFocusedVal);
|
|
31009
31192
|
break;
|
|
31010
31193
|
case "RouterNavigate":
|
|
31011
31194
|
EventsManager.Instance.AddRouteEvent(task, InternalInterface.MG_ACT_WEBCLIENT_ROUTE, guiEvent.RouterPath, guiEvent.RouterOutletName, guiEvent.RouterParams);
|
|
@@ -31359,5 +31542,5 @@ class Process {
|
|
|
31359
31542
|
}
|
|
31360
31543
|
}
|
|
31361
31544
|
|
|
31362
|
-
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 };
|
|
31545
|
+
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 };
|
|
31363
31546
|
//# sourceMappingURL=magic-xpa-engine.js.map
|