@magic-xpa/engine 4.800.0-dev480.95 → 4.801.0-dev481.222
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 +1250 -1066
- 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 +4 -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 +46 -45
- package/esm2015/src/util/PrmMap.js +11 -1
- package/fesm2015/magic-xpa-engine.js +345 -166
- 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
|
}
|
|
@@ -22751,10 +22824,10 @@ class EventHandler {
|
|
|
22751
22824
|
returnedFromServer = false;
|
|
22752
22825
|
}
|
|
22753
22826
|
}
|
|
22754
|
-
if (
|
|
22755
|
-
retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
|
|
22756
|
-
else if (routeOperationExecuted)
|
|
22827
|
+
if (routeOperationExecuted)
|
|
22757
22828
|
retvals = new RetVals(false, true);
|
|
22829
|
+
else if (blockIfReturnedFromServer)
|
|
22830
|
+
retvals = new RetVals(nextOperIdx, returnedFromServer, blockIfReturnedFromServer);
|
|
22758
22831
|
else
|
|
22759
22832
|
retvals = null;
|
|
22760
22833
|
return retvals;
|
|
@@ -23601,7 +23674,8 @@ ActionManager.actEnabled = [
|
|
|
23601
23674
|
InternalInterface.MG_ACT_INDEX_CHANGE,
|
|
23602
23675
|
InternalInterface.MG_ACT_WEBCLIENT_ROUTE,
|
|
23603
23676
|
InternalInterface.MG_ACT_SET_EXTERNAL_VALUE,
|
|
23604
|
-
InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER
|
|
23677
|
+
InternalInterface.MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER,
|
|
23678
|
+
InternalInterface.MG_ACT_CONTEXT_REMOVE
|
|
23605
23679
|
];
|
|
23606
23680
|
ActionManager.actNavigation = [
|
|
23607
23681
|
InternalInterface.MG_ACT_TBL_PRVLINE,
|
|
@@ -24244,16 +24318,12 @@ class Task extends TaskBase {
|
|
|
24244
24318
|
result = yield this.DataviewManager.Execute(dataViewCommand);
|
|
24245
24319
|
if (!result.Success)
|
|
24246
24320
|
return null;
|
|
24247
|
-
this.ResumeSubformLayout();
|
|
24248
24321
|
}
|
|
24249
24322
|
nonInteractiveTask = yield this.StartSubTasks(moveToFirstControl, nonInteractiveTask, callByDestSubForm);
|
|
24250
24323
|
this.InStartProcess = false;
|
|
24251
24324
|
return nonInteractiveTask;
|
|
24252
24325
|
});
|
|
24253
24326
|
}
|
|
24254
|
-
CanResumeSubformLayout() {
|
|
24255
|
-
return this.DataViewWasRetrieved;
|
|
24256
|
-
}
|
|
24257
24327
|
InitializeExecution() {
|
|
24258
24328
|
super.setBrkLevel(ConstInterface.BRK_LEVEL_REC_MAIN, -1);
|
|
24259
24329
|
this._firstRecordCycle = true;
|
|
@@ -24296,20 +24366,9 @@ class Task extends TaskBase {
|
|
|
24296
24366
|
this.ActionManager.enableList(actList, true, false);
|
|
24297
24367
|
if (this.IsSubForm)
|
|
24298
24368
|
this.ActionManager.enable(InternalInterface.MG_ACT_POST_REFRESH_BY_PARENT, true);
|
|
24299
|
-
if (this.Form != null && (yield this.Form.getDefaultButton(false)) != null)
|
|
24300
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_DEFAULT_BUTTON, true);
|
|
24301
24369
|
yield this.enableModes();
|
|
24302
24370
|
if (yield this.checkProp(PropInterface.PROP_TYPE_SELECTION, false)) {
|
|
24303
|
-
|
|
24304
|
-
let defaultButtonName = yield (this.Form.getProp(PropInterface.PROP_TYPE_DEFAULT_BUTTON)).getValue();
|
|
24305
|
-
let ctrl = this.Form.getCtrlByCtrlName(defaultButtonName);
|
|
24306
|
-
let aRtEvt = new RunTimeEvent(ctrl);
|
|
24307
|
-
if (aRtEvt.getType() === ConstInterface.EVENT_TYPE_INTERNAL &&
|
|
24308
|
-
aRtEvt.getInternalCode() === InternalInterface.MG_ACT_SELECT)
|
|
24309
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24310
|
-
}
|
|
24311
|
-
else
|
|
24312
|
-
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24371
|
+
this.ActionManager.enable(InternalInterface.MG_ACT_SELECT, true);
|
|
24313
24372
|
}
|
|
24314
24373
|
let enablePrintdata = yield this.checkProp(PropInterface.PROP_TYPE_PRINT_DATA, false);
|
|
24315
24374
|
this.ActionManager.enable(InternalInterface.MG_ACT_PRINT_DATA, enablePrintdata);
|
|
@@ -24991,9 +25050,9 @@ class Task extends TaskBase {
|
|
|
24991
25050
|
if (this.hasSubTasks()) {
|
|
24992
25051
|
if (!RemoteCommandsProcessor.GetInstance().DelayCommandExecution) {
|
|
24993
25052
|
let pendingTransactions = true;
|
|
24994
|
-
let clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
|
|
25053
|
+
let clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_TASK_SUFFIX);
|
|
24995
25054
|
if (!clientOperExist) {
|
|
24996
|
-
clientOperExist = this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
|
|
25055
|
+
clientOperExist = yield this.CheckIfClientOperationExistsInSubformTasks(this, InternalInterface.MG_ACT_REC_SUFFIX);
|
|
24997
25056
|
if (!clientOperExist)
|
|
24998
25057
|
pendingTransactions = this.CheckIfPendingTransactions(this);
|
|
24999
25058
|
}
|
|
@@ -25133,36 +25192,52 @@ class Task extends TaskBase {
|
|
|
25133
25192
|
}
|
|
25134
25193
|
}
|
|
25135
25194
|
CheckIfClientOperationExistsInSubformTasks(task, eventCode) {
|
|
25136
|
-
|
|
25137
|
-
|
|
25138
|
-
|
|
25139
|
-
|
|
25140
|
-
|
|
25141
|
-
|
|
25142
|
-
|
|
25143
|
-
|
|
25144
|
-
|
|
25145
|
-
|
|
25146
|
-
|
|
25147
|
-
pendingTransactions = true;
|
|
25148
|
-
}
|
|
25149
|
-
if (handler != null && pendingTransactions == true) {
|
|
25150
|
-
let cnt = handler.getOperationTab().getSize();
|
|
25151
|
-
for (let i = 0; i < cnt; i++) {
|
|
25152
|
-
let oper = handler.getOperationTab().getOperation(i);
|
|
25153
|
-
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))
|
|
25154
25206
|
clientOperationExist = true;
|
|
25155
|
-
|
|
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
|
+
}
|
|
25156
25231
|
}
|
|
25157
25232
|
}
|
|
25158
|
-
|
|
25159
|
-
|
|
25160
|
-
|
|
25161
|
-
|
|
25162
|
-
|
|
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
|
+
}
|
|
25163
25238
|
}
|
|
25164
|
-
|
|
25165
|
-
|
|
25239
|
+
return clientOperationExist;
|
|
25240
|
+
});
|
|
25166
25241
|
}
|
|
25167
25242
|
CheckIfPendingTransactions(task) {
|
|
25168
25243
|
let pendingTransactions = false;
|
|
@@ -26657,6 +26732,16 @@ class MGData {
|
|
|
26657
26732
|
}
|
|
26658
26733
|
return false;
|
|
26659
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
|
+
}
|
|
26660
26745
|
getTimerHandlers() {
|
|
26661
26746
|
return this._timerHandlers;
|
|
26662
26747
|
}
|
|
@@ -26878,6 +26963,7 @@ class EventsManager {
|
|
|
26878
26963
|
this._isHandlingForceExit = false;
|
|
26879
26964
|
this._isNonReversibleExit = false;
|
|
26880
26965
|
this._isInRecordFlushEvent = false;
|
|
26966
|
+
this.lastSavedRouteEvent = null;
|
|
26881
26967
|
this._stopExecution = false;
|
|
26882
26968
|
this._processingTopMostEndTask = false;
|
|
26883
26969
|
this._stopExecutionCtrl = null;
|
|
@@ -26908,6 +26994,17 @@ class EventsManager {
|
|
|
26908
26994
|
this.guiPendingEvent = guiEvent;
|
|
26909
26995
|
}
|
|
26910
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
|
+
}
|
|
26911
27008
|
this._eventsQueue.put(rtEvt);
|
|
26912
27009
|
}
|
|
26913
27010
|
AddKeyboardEvent(mgForm, mgControl, modifier, keyCode, start, end, text, isActChar, suggestedValue, code) {
|
|
@@ -27256,6 +27353,17 @@ class EventsManager {
|
|
|
27256
27353
|
rtEvt.setArgList(args);
|
|
27257
27354
|
EventsManager.Instance.addToTail(rtEvt);
|
|
27258
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
|
+
}
|
|
27259
27367
|
AddExternalValueEvent(ctrl, value, refreshDisplay) {
|
|
27260
27368
|
let rtEvt = new RunTimeEvent(ctrl, 0, true);
|
|
27261
27369
|
rtEvt.setInternal(InternalInterface.MG_ACT_SET_EXTERNAL_VALUE);
|
|
@@ -27309,6 +27417,21 @@ class EventsManager {
|
|
|
27309
27417
|
isForceExitPreRecordUpdate(task) {
|
|
27310
27418
|
return this._isHandlingForceExit && this.getForceExit() === ForceExit.PreRecordUpdate && task === this.getForceExitTask();
|
|
27311
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
|
+
}
|
|
27312
27435
|
CheckAndShowSpinner(show) {
|
|
27313
27436
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27314
27437
|
let sendCommand = false;
|
|
@@ -27688,6 +27811,12 @@ class EventsManager {
|
|
|
27688
27811
|
}
|
|
27689
27812
|
});
|
|
27690
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
|
+
}
|
|
27691
27820
|
handleFocus(ctrl, line, onClick) {
|
|
27692
27821
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27693
27822
|
try {
|
|
@@ -28008,7 +28137,6 @@ class EventsManager {
|
|
|
28008
28137
|
task.ActionManager.enable(InternalInterface.MG_ACT_ZOOM, true);
|
|
28009
28138
|
if (ctrl.isTextControl() || ctrl.isChoiceControl())
|
|
28010
28139
|
ctrl.SetKeyboardLanguage(false);
|
|
28011
|
-
yield ctrl.refreshDefaultButton();
|
|
28012
28140
|
if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON)
|
|
28013
28141
|
task.ActionManager.enable(InternalInterface.MG_ACT_BUTTON, true);
|
|
28014
28142
|
yield task.setCreateDeleteActsEnableState();
|
|
@@ -28069,9 +28197,6 @@ class EventsManager {
|
|
|
28069
28197
|
case InternalInterface.MG_ACT_CTRL_MOUSEUP:
|
|
28070
28198
|
yield this.handleMouseUp(ctrl, displayLine, evt.isProduceClick());
|
|
28071
28199
|
return false;
|
|
28072
|
-
case InternalInterface.MG_ACT_DEFAULT_BUTTON:
|
|
28073
|
-
yield this.onActDefaultButton(form, evt);
|
|
28074
|
-
return false;
|
|
28075
28200
|
case InternalInterface.MG_ACT_SELECTION:
|
|
28076
28201
|
yield this.onActSelection(ctrl, form, evt);
|
|
28077
28202
|
return false;
|
|
@@ -28167,9 +28292,9 @@ class EventsManager {
|
|
|
28167
28292
|
}
|
|
28168
28293
|
if (form.HasTable())
|
|
28169
28294
|
yield form.bringRecordToPage();
|
|
28170
|
-
yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
|
|
28171
28295
|
if (task.getLevel() !== Constants.TASK_LEVEL_TASK)
|
|
28172
28296
|
return false;
|
|
28297
|
+
yield form.RefreshDisplay(Constants.TASK_REFRESH_CURR_REC);
|
|
28173
28298
|
Logger.Instance.WriteDevToLog("RECORD PREFIX: " + task.queryTaskPath());
|
|
28174
28299
|
(dv.getCurrRec()).setForceSaveOrg(false);
|
|
28175
28300
|
(dv.getCurrRec()).Synced = false;
|
|
@@ -28265,6 +28390,7 @@ class EventsManager {
|
|
|
28265
28390
|
Manager.CleanMessagePane(task);
|
|
28266
28391
|
ctrl.InControl = false;
|
|
28267
28392
|
ctrl.ClipBoardDataExists = false;
|
|
28393
|
+
ctrl.ValidateControl = true;
|
|
28268
28394
|
ctrl.setInControlSuffix(true);
|
|
28269
28395
|
break;
|
|
28270
28396
|
}
|
|
@@ -28289,7 +28415,7 @@ class EventsManager {
|
|
|
28289
28415
|
mgVal = yield ctrl.getMgValue(value);
|
|
28290
28416
|
var rec = task.DataView.getCurrRec();
|
|
28291
28417
|
encodedVal = rec.getXMLForValue(ctrl.getField().getId(), mgVal);
|
|
28292
|
-
cmd = CommandFactory.
|
|
28418
|
+
cmd = CommandFactory.CreateSelectProgramCommand(task.getTaskTag(), null, Int32.MinValue, ctrl.getDitIdx(), encodedVal);
|
|
28293
28419
|
task.getMGData().CmdsToServer.Add(cmd);
|
|
28294
28420
|
let commandsProcessorServer = CommandsProcessorManager.GetCommandsProcessor();
|
|
28295
28421
|
yield commandsProcessorServer.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
|
|
@@ -28336,14 +28462,6 @@ class EventsManager {
|
|
|
28336
28462
|
yield this.handleSelection(ctrl, displayLine, evt.getValue());
|
|
28337
28463
|
});
|
|
28338
28464
|
}
|
|
28339
|
-
onActDefaultButton(form, evt) {
|
|
28340
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
28341
|
-
let ctrl = yield form.getDefaultButton(true);
|
|
28342
|
-
if (ctrl === null)
|
|
28343
|
-
return;
|
|
28344
|
-
yield this.onActSelection(ctrl, form, evt);
|
|
28345
|
-
});
|
|
28346
|
-
}
|
|
28347
28465
|
onSubformClose(task, evt) {
|
|
28348
28466
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28349
28467
|
if ((evt.getArgList() != null) && (evt.getArgList().getSize() === 1)) {
|
|
@@ -28458,9 +28576,6 @@ class EventsManager {
|
|
|
28458
28576
|
case InternalInterface.MG_ACT_SUBFORM_CLOSE:
|
|
28459
28577
|
yield this.onSubformClose(task, evt);
|
|
28460
28578
|
break;
|
|
28461
|
-
case InternalInterface.MG_ACT_DEFAULT_BUTTON:
|
|
28462
|
-
yield this.onActDefaultButton(form, evt);
|
|
28463
|
-
break;
|
|
28464
28579
|
case InternalInterface.MG_ACT_BUTTON:
|
|
28465
28580
|
case InternalInterface.MG_ACT_CTRL_HIT:
|
|
28466
28581
|
if (ctrl.Type === MgControlType.CTRL_TYPE_BUTTON &&
|
|
@@ -28477,6 +28592,7 @@ class EventsManager {
|
|
|
28477
28592
|
aRtEvt.setArgList(ctrl.ArgList);
|
|
28478
28593
|
yield aRtEvt.setPublicName();
|
|
28479
28594
|
this.addToTail(aRtEvt);
|
|
28595
|
+
this.checkAndSaveRouteEventIfCtxRemovedFromSrvr(aRtEvt);
|
|
28480
28596
|
}
|
|
28481
28597
|
}
|
|
28482
28598
|
else if (ctrl.Type === MgControlType.CTRL_TYPE_TAB) {
|
|
@@ -28768,6 +28884,29 @@ class EventsManager {
|
|
|
28768
28884
|
cmdsToServer.Add(cmd);
|
|
28769
28885
|
yield server.Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
|
|
28770
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;
|
|
28771
28910
|
case InternalInterface.MG_ACT_SERVER_TERMINATION:
|
|
28772
28911
|
cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
|
|
28773
28912
|
cmdsToServer.Add(cmd);
|
|
@@ -29266,6 +29405,10 @@ class EventsManager {
|
|
|
29266
29405
|
yield fld.updateDisplay();
|
|
29267
29406
|
task.setLevel(Constants.TASK_LEVEL_RECORD);
|
|
29268
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;
|
|
29269
29412
|
LastFocusedManager.setLastFocusedControl(task, null);
|
|
29270
29413
|
if (yield task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE))
|
|
29271
29414
|
yield task.endTask(true, false, false);
|
|
@@ -29496,6 +29639,45 @@ class EventsManager {
|
|
|
29496
29639
|
return null;
|
|
29497
29640
|
return this._rtEvents.pop();
|
|
29498
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
|
+
}
|
|
29499
29681
|
getLastRtEvent() {
|
|
29500
29682
|
if (this._rtEvents.count() === 0)
|
|
29501
29683
|
return null;
|
|
@@ -29823,6 +30005,8 @@ EventsManager.Timer_Timeout_Infinite = -1;
|
|
|
29823
30005
|
EventsManager.REAL_ONLY = true;
|
|
29824
30006
|
EventsManager.MAX_OPER = 9999;
|
|
29825
30007
|
EventsManager.userGrantedForContextActivity = true;
|
|
30008
|
+
EventsManager.clientInactivityTimerON = false;
|
|
30009
|
+
EventsManager.clientContextInactivityTimerAborted = false;
|
|
29826
30010
|
EventsManager.Instance = new EventsManager();
|
|
29827
30011
|
EventsManager.clientBusyTimeStart = 0;
|
|
29828
30012
|
|
|
@@ -30362,7 +30546,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30362
30546
|
constructor() {
|
|
30363
30547
|
super();
|
|
30364
30548
|
this._buttonsID = '\0';
|
|
30365
|
-
this._defaultButton = 0;
|
|
30366
30549
|
this._image = '\0';
|
|
30367
30550
|
this._returnValStr = null;
|
|
30368
30551
|
this._returnVal = null;
|
|
@@ -30377,7 +30560,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30377
30560
|
mlsTransTitle.value = LanguageData.Instance.translate(this._title);
|
|
30378
30561
|
style.value = Operation.getButtons(this._buttonsID);
|
|
30379
30562
|
style.value |= Operation.getImage(this._image);
|
|
30380
|
-
style.value |= Operation.getDefaultButton(this._defaultButton);
|
|
30381
30563
|
if (task !== null) {
|
|
30382
30564
|
if (Task.isMainProgramField(this._returnValStr)) {
|
|
30383
30565
|
this._returnVal = Operation.InitField(this._returnValStr, task);
|
|
@@ -30392,9 +30574,6 @@ class EnhancedVerifyCommand extends VerifyCommand {
|
|
|
30392
30574
|
case ConstInterface.MG_ATTR_BUTTONS:
|
|
30393
30575
|
this._buttonsID = value[0];
|
|
30394
30576
|
break;
|
|
30395
|
-
case ConstInterface.MG_ATTR_DEFAULT_BUTTON:
|
|
30396
|
-
this._defaultButton = XmlParser.getInt(value);
|
|
30397
|
-
break;
|
|
30398
30577
|
case ConstInterface.MG_ATTR_RETURN_VAL:
|
|
30399
30578
|
this._returnValStr = value;
|
|
30400
30579
|
break;
|
|
@@ -30911,7 +31090,7 @@ class CommandsTable {
|
|
|
30911
31090
|
}
|
|
30912
31091
|
}
|
|
30913
31092
|
|
|
30914
|
-
let CurrentClientVersion = '4.
|
|
31093
|
+
let CurrentClientVersion = '4.801.0-dev481.222';
|
|
30915
31094
|
|
|
30916
31095
|
class ClientManager {
|
|
30917
31096
|
constructor() {
|
|
@@ -31021,7 +31200,7 @@ class ClientManager {
|
|
|
31021
31200
|
case "getRows":
|
|
31022
31201
|
dvRowIdx = lineIdx - task.DataView.RecordsBeforeCurrentView;
|
|
31023
31202
|
let lastFocusedVal = { guiMgControl: task.getForm().getTableCtrl(), Line: dvRowIdx, Val: "" };
|
|
31024
|
-
Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx,
|
|
31203
|
+
Events.OnGetRowsData(task.getForm().getTableCtrl(), dvRowIdx, true, lastFocusedVal);
|
|
31025
31204
|
break;
|
|
31026
31205
|
case "RouterNavigate":
|
|
31027
31206
|
EventsManager.Instance.AddRouteEvent(task, InternalInterface.MG_ACT_WEBCLIENT_ROUTE, guiEvent.RouterPath, guiEvent.RouterOutletName, guiEvent.RouterParams);
|
|
@@ -31375,5 +31554,5 @@ class Process {
|
|
|
31375
31554
|
}
|
|
31376
31555
|
}
|
|
31377
31556
|
|
|
31378
|
-
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 };
|
|
31379
31558
|
//# sourceMappingURL=magic-xpa-engine.js.map
|