Main Screen QML
Main Screen QML
2 * @file MainScreen.qml
3 * @author Agiliad
4 * @brief This file contains functionality related to managing
5 * of all the panels.
6 * @date Sep, 12 2016
7 *
8 (c) Copyright <2016-2017> Analogic Corporation. All Rights Reserved
9 */
10
11 import QtQuick 2.7
12 import QtQuick.Window 2.2
13 import QtQuick.Layouts 1.1
14 import QtQuick.Controls 1.4
15 import QMLEnums 1.0
16 import ErrorEnum 1.0
17
18 import "qrc:/tip"
19 import "qrc:/common"
20 import "qrc:/Models"
21 import "qrc:/bagsearch"
22 import "qrc:/relieveuser"
23 import "qrc:/reportviewer"
24 import "qrc:/common/Models"
25 import "qrc:/common/styles"
26 import "qrc:/rerundetection"
27 import "qrc:/common/component"
28 import "qrc:/threateval/basic"
29 import "qrc:/recallarchivebag"
30 import "qrc:/CommonComponents"
31 import "qrc:/common/screenareas"
32 import "qrc:/trainingworkstation"
33 import "qrc:/scanneradministration"
34 import "qrc:/nssServiceviewer"
35 import "qrc:/scanneragentstatus"
36 import "qrc:/data"
37 import "qrc:/usermanagement"
38 import "qrc:/supervisor"
39
40 Rectangle
41 {
42 objectName: "lmainscreen"
43 visible: true
44 id: rootwindow
45 property variant errorCheckModel:{'first':'true', 'time':new Date().getTime()}
46 property variant scannerFaultModel:scannerfaultmodel
47 property Component nwStatusError
48 property Component operatorPopup
49 property Component appSelectionDialog
50 property Component highThreatPopup
51 property Component bagExportDetailsDialog
52 property QtObject bagSearcModel
53 property var overwriteFileList: []
54 property int currentSelectedRow:0;
55 property var fileDialogYPosition: 0
56 property int groupboxsubtitlespacing: 8
57 property int groupboxparametertitlespacing: 10
58 property var currentState;
59 property var previousState;
60 property var previousModel;
61 property var currentModel;
62 property var messageBox;
63 property var messageBoxNetworkError;
64 property bool navigationMenuEnable : true;
65 property bool saveScreenshotDialog: false;
66 property var messageBoxLogOff;
67 property var highThreatPopupBox;
68 property var autherrorflag : false;
69 property bool relieveUserLogin:false
70 property string userEntityName: ""
71 property string networkDegradeMsg: ""
72 property string userLevelType: ""
73 property bool isSdswAuthenticate: false
74 property bool isScreenShotTaken : false
75 signal popupClosed(var isClosed);
76 signal resetLoginScreenFocus();
77 property bool isNetworkSwitched: false;
78 property string bagExportSuccess: ""
79 property bool isZabbixLaunching: false;
80 property bool isNetworkDegraded: false;
81 color: appstyles.backgroundscreencolor
82 KeyConsoleModel{ id: keyConsoleModel}
83 AccessPanelModel{id:accessPanelModel}
84 EstopsModel {id:estopsModel}
85 DetectionAlgorithmModel{id: detectionAlorithmModel}
86 SafetyControllerFaultsModel {id:safetyControllerFaultsModel}
87 PowerlinkModel{id:powerlinkModel}
88 MotionModel{id:motionModel}
89 XrayModel{id:xrayModel}
90 ScannerModel{id:scannerModel}
91 ErrorLogModel {id: errorLogData}
92 NavigationModel {id: navigationModelData}
93 ReportModel{id :reportmodel}
94 DashBoardModel{id: dashboardtmodel}
95 ScannerFaultModel{id: scannerfaultmodel}
96 ScannerAdminScreenModel{id: scanneradminmodel}
97 ThreatEvalWorkspaceModel{ id: osrworkspacemodel}
98 PresetManipulationModel{ id: presetmanipulationmodel}
99 NetworkConnectionModel{id: nwconnectionmodel}
100 RecallArchiveBagModel {id: recallArchiveBagModelData}
101 RerunDetectionModel {id:rerundetectionmodeldata}
102 RerunBagSelectionModel {id:rerunselectionmodel}
103 MachineDecisionModel {id :machineDecisionModel}
104 AnalogicFileDialog { id: saveFileDialog }
105 AnalogicUtitlity { id: utilityMethods }
106 ParameterModel {id: paramModel }
107 WorkstationConfigModel {id: workstationConfigModel }
108 BagDecision {id: bagdecisionpanel}
109 TrainingModel{id: trainingModel}
110 TipConfigModel {id: tipConfigModel }
111 ConfigUtility {id: configUtility }
112 TipMainModel {id: tipMainModel}
113 BhsInfoModel{id: bhsInfoModel}
114 AnalogicFileSystemDecisionModel{ id: fileDialogDecisionModel}
115 AnalogicFileSystemModel { id: fileSystemModel}
116 BalloonPopupModel{id: balloonPopupModel}
117 NssServiceModel{id: nssservicemodelid}
118 ScannerAgentStatusModel{id: scannerAgentStatusModel}
119 TraningReportsModel {id:trainingReportsModel}
120 PasswordRuleModel {id: passwordRuleModel}
121 WebServiceConnection {id: webServiceConnection}
122 NetworkComponentModel { id : networkTypeDataModel}
123
124
125 ModalFrame
126 {
127 id: modalitem
128 z: 1
129 }
130
131 ModalFrame
132 {
133 id: busyIndicatorModalItem
134 z: 1
135 }
136
137 ModalFrame
138 {
139 id: addDirModalItem
140 z: 1
141 }
142
143 ModalFrame
144 {
145 id: passphraseModalItem
146 z: 1
147 }
148
149 Component
150 {
151 id: busyIndicatorcomp
152 BusyIndicator
153 {
154 id:busyIndicator;
155 }
156 }
157
158 Component
159 {
160 id: fileDialogComp
161 AnalogicCustomFileDialog
162 {
163 id:fileDialog
164 }
165 }
166
167 Item
168 {
169 id: overwritefiledialog
170 property var srcPath
171 property var dstPath
172 property var modelNumber
173 function messageDialogOnAccepted()
174 {
175 var fileerrorcode = viewobject.saveFile(dstPath, srcPath);
176 if (fileerrorcode !== ErrorEnum.FILE_OPERATION_SUCCESS)
177 {
178 var srcanddstpath = qsTr("Source Path: ") + srcPath + qsTr(" Destination Path:
") + dstPath
179 viewobject.authstatuschanged(fileerrorcode, srcanddstpath, modelNumber);
180 }
181 else
182 {
183 var msg = ""
184 if(navigationModelData.workstationName === Enums.TRAINING_WORKSTATION)
185 {
186
187 if(viewobject.isUSBMounted() && viewobject.readFromUsb())
188 {
189 msg = qsTr("<br /> <br /> * Please logout application before ejecting USB")
190 }
191 }
192 createAndShowMessageBox(viewobject.getFileExportMsg() + dstPath + msg, Enums.OK);
193 }
194 if(navigationModelData.workstationName === Enums.OSR_WORKSTATION
195 || navigationModelData.workstationName === Enums.SEARCH_WORKSTATION
196 || navigationModelData.workstationName === Enums.SUPERVISOR_WORKSTATION
197 || ((navigationModelData.workstationName === Enums.TRAINING_WORKSTATION) &&
((viewobject.isUSBMounted()) && (viewobject.readFromUsb() )=== false)))
198 {
199 viewobject.unMountUsb();
200 }
201 }
202 function messageDialogOnRejected()
203 {
204 if(navigationModelData.workstationName === Enums.OSR_WORKSTATION
205 || navigationModelData.workstationName === Enums.SEARCH_WORKSTATION
206 || navigationModelData.workstationName === Enums.SUPERVISOR_WORKSTATION
207 || ((navigationModelData.workstationName === Enums.TRAINING_WORKSTATION) &&
((viewobject.isUSBMounted()) && (viewobject.readFromUsb() )=== false)))
208
209 {
210 viewobject.unMountUsb();
211 }
212 }
213 }
214
215 Item {
216 id: overwriteBagFile
217 function messageDialogOnAccepted()
218 {
219 WorkstationVolumeRenderer.vtkSettingsChanged(Enums.TEPC_OVERWRITE);
220 }
221 function messageDialogOnRejected()
222 {
223 console.debug("overwrite bag file cancel")
224 }
225 }
226
227 Item{
228 id:closepopupdialog
229 function messageDialogOnAccepted()
230 {
231 rootwindow.popupClosed(true);
232 }
233 }
234
235 Item {
236 id: logoffonsuperviosrautherror
237 function messageDialogOnAccepted()
238 {
239 rootwindow.logOff(nwconnectionmodel.nwstate.state)
240 }
241 }
242
243 Item {
244 id: overwriterecallbagfile
245 function messageDialogOnAccepted()
246 {
247 recallArchiveBagModelData.recallsavebutton = true;
248 viewobject.onBLBDCCommand(recallArchiveBagModelData.searchlocnIndex,
249 Enums.BLBDC_ARCHIVE_BAG_OVERWRITE,
recallArchiveBagModelData.foldername);
250 overwriteFileList.shift()
251 if(overwriteFileList.length > 0)
252 {
253 var msg = qsTr("File with name ")+ overwriteFileList[0] + qsTr(" alreday exist,
Do You Want To Overwrite File?");
254 recallArchiveBagModelData.foldername = overwriteFileList[0];
255 createAndShowMessageBox(msg, Enums.OK |
Enums.CANCEL,true,true,overwriterecallbagfile);
256 }
257 else
258 {
259 msg = (recallArchiveBagModelData.totalBagCount -
recallArchiveBagModelData.canceledBagCount
260 - recallArchiveBagModelData.notFoundBagCount)
261 + qsTr(" out of ") + recallArchiveBagModelData.totalBagCount;
262 if(recallArchiveBagModelData.searchlocnIndex === Enums.REMOTE_SERVER)
263 {
264 msg = msg + qsTr(" Remote Archive bag saved successfully");
265 }
266 else
267 {
268 msg = msg + qsTr(" Local Archive bag saved successfully");
269 }
270 recallArchiveBagModelData.resetRecallBagTable(SelectionMode.SingleSelection)
271 createAndShowMessageBox(msg, Enums.OK);
272 }
273 rootwindow.popupClosed(true);
274 }
275 function messageDialogOnRejected()
276 {
277 viewobject.unMountUsb();
278 recallArchiveBagModelData.recallsavebutton = true;
279 viewobject.onBLBDCCommand(recallArchiveBagModelData.searchlocnIndex,
280 Enums.BLBDC_DELETE_BAG,
recallArchiveBagModelData.foldername);
281 overwriteFileList.shift()
282 recallArchiveBagModelData.canceledBagCount++;
283 if(overwriteFileList.length > 0)
284 {
285 var msg = qsTr("File with name ")+ overwriteFileList[0] + qsTr(" alreday exist,
Do You Want To Overwrite File?");
286 recallArchiveBagModelData.foldername = overwriteFileList[0];
287 createAndShowMessageBox(msg, Enums.OK |
Enums.CANCEL,true,true,overwriterecallbagfile);
288 }
289 else
290 {
291 msg = (recallArchiveBagModelData.totalBagCount -
recallArchiveBagModelData.canceledBagCount
292 - recallArchiveBagModelData.notFoundBagCount)
293 + qsTr(" out of ") + recallArchiveBagModelData.totalBagCount;
294
295 if(recallArchiveBagModelData.searchlocnIndex === Enums.REMOTE_SERVER)
296 {
297 msg = msg + qsTr(" Remote Archive bag saved successfully");
298 }
299 else
300 {
301 msg = msg + qsTr(" Local Archive bag saved successfully");
302 }
303 recallArchiveBagModelData.resetRecallBagTable(SelectionMode.SingleSelection)
304 createAndShowMessageBox(msg, Enums.OK);
305 }
306 rootwindow.popupClosed(true);
307 }
308 }
309
310 Item {
311 id : overwriteRecallBagFileInUSB
312 function messageDialogOnAccepted()
313 {
314 ulmObject.m_overwriteBagFileStatus = true;
315 ulmObject.overwriteBagFilesStatusSignal(true);
316 }
317 function messageDialogOnRejected()
318 {
319 ulmObject.m_overwriteBagFileStatus = false;
320 ulmObject.overwriteBagFilesStatusSignal(false);
321 }
322 }
323
324 signal logOff(var nwstate);
325 onLogOff:
326 {
327 if (navigationModelData.workstationName === Enums.SUPERVISOR_WORKSTATION)
328 {
329 execLauncher.closeEmbedded();
330 }
331 networkreconnect.stop()
332 ulmObject.onStateChanged(Enums.SET_TO_OFFLINE);
333 ulmObject.onStateChanged(Enums.OFFLINE);
334 idlescreenobject.setScreenTimeout(-1)
335 idlescreenobject.updateInactivityTimeoutInterval(true)
336 WorkstationVolumeRenderer.flushBagDataPool()
337 viewobject.showHideNavigationMenu(false);
338 console.debug("Switching to login screen");
339 console.info("Anurag::Anurag Switching to login screen");
340 osrworkspacemodel.closeNonBagRelatedDialog();
341 osrworkspacemodel.closeDialogOnLogOff();
342 osrworkspacemodel.isBagRendering = false
343 idlescreenobject.setMouseMoveFlag(true)
344 screenchange(Enums.LOGIN_SCREEN);
345 viewobject.unMountUsb();
346 if(navigationModelData.workstationName === Enums.OSR_WORKSTATION)
347 {
348 bagdecisionpanel.executeDecision(Enums.TEPC_TIMEOUT_BAG)
349 }
350
351 if (osrworkspacemodel.userdecisiontimer.running)
352 {
353 osrworkspacemodel.userdecisiontimer.stop();
354 }
355
356 if ((navigationModelData.workstationName === Enums.SEARCH_WORKSTATION) ||
357 (navigationModelData.workstationName === Enums.OSR_WORKSTATION) ||
358 (navigationModelData.workstationName === Enums.SUPERVISOR_WORKSTATION) ||
359 (navigationModelData.workstationName === Enums.TRAINING_WORKSTATION))
360 {
361 if(ulmObject.validateFeature("maintenance"))
362 {
363 console.debug("Setting Maintenance false")
364 viewobject.setMaintenanceMode(false)
365 }
366 if (nwstate !== "RECONNECTING")
367 {
368 viewobject.onCommandClick(Enums.NETWORK_AUTHENTICATION_MODEL,"logout");
369 viewobject.onCommandClick(Enums.USER_ACCESS_RESET_MODEL,"");
370 }
371
372 if((viewobject.currentView === Enums.LOGIN_SCREEN)
373 && (messageBox !== undefined)
374 && (messageBox !== null)
375 && messageBox.visible)
376 {
377 messageBox.close();
378 }
379
380 if(nwstate === "QUIT")
381 {
382 viewobject.quitApplication(false);
383 }
384 }
385 else if(navigationModelData.workstationName === Enums.RERUN_EMULATOR)
386
387 {
388 viewobject.onCommandClick(Enums.RERUN_EMULATOR_AUTHENTICATION_MODEL,"logout");
389 }
390 else if(navigationModelData.workstationName === Enums.TRAINING_WORKSTATION)
391
392 {
393
viewobject.onCommandClick(Enums.TRAINING_WORKSTATION_AUTHENTICATION_MODEL,"logout")
;
394 }
395 }
396
397 property var prevView;
398 property bool animationOff: false
399 property string idleScreenMsg: qsTr("Request timed out due to no user activity.")
400 property bool isIdleScreen : idlescreenobject.isIdle;
401 Connections
402 {
403 target: idlescreenobject
404 onIdleChanged:
405 {
406 if(isIdleScreen)
407 {
408 if(viewobject.currentView === Enums.LOGIN_SCREEN)
409 {
410 idlescreenobject.isIdle = false
411 return;
412 }
413
414 if(scanneradminmodel.asyncTaskRunning === true)
415 {
416 idlescreenobject.isIdle = false
417 return;
418 }
419
420 if(messageBox)
421 {
422 messageBox.close();
423 }
424
425 osrworkspacemodel.closeNonBagRelatedDialog();
426 changedefaultscreen();
427
428 if((viewobject.currentView == Enums.BAGSCREENING_SCREEN)
429 && (viewobject.getWorkstationNameEnum() === Enums.OSR_WORKSTATION))
430 {
431 osrworkspacemodel.bagDecisionProgressbarVisible = false
432 osrworkspacemodel.userdecisiontimer.stop()
433 osrworkspacemodel.isBagRendering = false
434 osrworkspacemodel.bagDecisionProgressbarValue = 0.0
435 osrworkspacemodel.bagDecisionTimeRemainingVisible = false
436 }
437
438 /*** close screehshot widget when network disconnected*/
439 closePopupDialog();
440
441 console.info("Logging off due to inactivity timeout occurring.");
442 //rootwindow.logOff(nwconnectionmodel.nwstate.state);
443 // Inform the user why they were kicked out.
444 // Note that this message box being displayed alleviates an issue where the
login screen
445 // may have unresponsive User and Password TextFields.
446 //createAndShowMessageBoxLoginScreen(idleScreenMsg, Enums.OK, true, false,
loginPopupId)
447
448 // Interacting with the VTK window to manipulate the bag causes the logout to
enter
449 // a state where the User ID and Password text fields are uninteractible.
450 // Just quit the application after the logoff for now.
451 rootwindow.logOff("QUIT");
452 }
453 }
454 }
455 signal keyboardvisibilitychange()
456 onKeyboardvisibilitychange: {
457
458 var focusItemRect = Qt.inputMethod.cursorRectangle
459 var keyboardRect = Qt.inputMethod.keyboardRectangle
460 if((focusItemRect.bottom > keyboardRect.top) && (rootwindow.y === 0) &&
Qt.inputMethod.visible)
461 {
462 /*ANSS-3940: Once the text editor/input methods position is greater than keyboard
entire screen moves upward
463 To prevent it for user admin screen added condition
464 */
465 if(viewobject.currentView !== Enums.USERS_SCREEN)
466 {
467 rootwindow.y -= keyboardRect.height
468 }
469 keyboard_space.height = keyboardRect.height
470 fileDialogYPosition -= (keyboardRect.height - viewobject.getRootWindowHeight() *
0.5)
471 }
472 else
473 {
474 rootwindow.y = 0
475 keyboard_space.height = 0
476 fileDialogYPosition = 0
477 }
478 }
479 signal networkErrorHandling()
480 onNetworkErrorHandling: {
481
482 if (viewobject.currentView === Enums.LOGIN_SCREEN)
483 {
484 return;
485 }
486 changedefaultscreen();
487
488 var message = qsTr("Network reconnection timed out. Changing to default screen.");
489 messageBoxNetworkError = createAndShowMessageBox(message, Enums.OK)
490
491 //To start reconnecting of USer screen so that user button is displayed as from here
authentication request will be sent and then
492 //it should come to onAuthSatuschanged and there at the last button visibility is
changed.
493 logintoServers(-1);
494 }
495
496 signal screenchange(var screenName)
497 onScreenchange: {
498 if (screenName !== Enums.LOGIN_SCREEN){
499 viewobject.deleteFiledialogInstance();
500 }
501 if(screenName === viewobject.currentView)
502 {
503 console.debug("screenname:" + screenName + " and currentscreen:" +
viewobject.currentView+"both are same. Returning..");
504 return;
505 }
506
507
508 var prvobj = viewobject.currentView;
509
510 viewobject.prevView = prvobj;
511 viewobject.currentView = screenName;
512 autherrorflag = true
513 saveFileDialog.tempFileUrl = ""
514 ulmObject.updateScreenState(screenName);
515 enableBusyIndicator(false);
516
517 if ((screenName === Enums.LOGIN_SCREEN && viewobject.prevView !==
Enums.LOGIN_SCREEN) ||
518 (screenName !== Enums.LOGIN_SCREEN && viewobject.prevView ===
Enums.LOGIN_SCREEN))
519 {
520 viewobject.loginModeChanged(screenName);
521 }
522 if (screenName === Enums.LOGIN_SCREEN)
523 {
524 navigationModelData.bagSearchButton.setProperty(0,"isChecked",false);
525 centralpnlloader.sourceComponent = loginpanelcomp
526 viewobject.showHideScannerFaultStatus(false);
527 modalitem.visible=false;
528 }
529 else if (screenName === Enums.RELIEVE_USER_LOGIN_PANEL_SCREEN)
530 {
531 centralpnlloader.sourceComponent = relieveuserloginpanel
532 if(viewobject.prevView === Enums.SEARCH_BAG_SCREEN &&
osrworkspacemodel.isBagRendering === true)
533 {
534 osrworkspacemodel.isBagRendering = false
535 }
536 if(viewobject.prevView === Enums.REMOTE_ARCHIVE_BAG_SCREEN &&
osrworkspacemodel.isBagRendering === true)
537 {
538 osrworkspacemodel.isBagRendering = false
539 }
540 if(viewobject.prevView === Enums.LOCAL_ARCHIVE_BAG_SCREEN &&
osrworkspacemodel.isBagRendering === true)
541 {
542 osrworkspacemodel.isBagRendering = false
543 }
544 if ((osrworkspacemodel.isBagRendering === true)
545 && (WorkstationVolumeRenderer.isTIPBag()))
546 {
547 if(bagdecisionpanel.tipInitialDecisionTimeralias.running)
548 {
549 bagdecisionpanel.tipInitialDecisionTimeralias.stop();
550 }
551 if(bagdecisionpanel.tipAnalysisTimeralias.running)
552 {
553 bagdecisionpanel.tipAnalysisTimeralias.stop();
554 }
555 }
556 if (ulmObject.validateFeature("maintenance") && scannerfaultmodel.scannermode ===
"Maintenance")
557 {
558 viewobject.setMaintenanceMode(false)
559 }
560
561 }
562 else if (screenName === Enums.PASSWORD_EXPIRE_SCREEN)
563 {
564 var username = centralpnlloader.item.username
565 var password = centralpnlloader.item.password
566 centralpnlloader.sourceComponent = passwordExpireScreen
567 centralpnlloader.item.userName = username
568 centralpnlloader.item.password = password
569
570 var message = navigationModelData.username + "," + navigationModelData.password;
571 viewobject.onCommandClick(Enums.USERADMIN_AUTHENTICATION_MODEL, message);
572 }
573 else if (screenName === Enums.PIN_EXPIRE_SCREEN)
574 {
575 username = centralpnlloader.item.username
576 password = centralpnlloader.item.password
577 centralpnlloader.sourceComponent = pinExpireScreen
578 centralpnlloader.item.userName = username
579 centralpnlloader.item.password = password
580 }
581 else //if (screenName === Enums.OSR_SCREEN)
582 {
583 centralpnlloader.sourceComponent = workstationmaincomp;
584 centralpnlloader.item.centralscreenchange(screenName);
585 if(isNetworkDegraded)
586 {
587 var msg = createAndShowMessageBox(networkDegradeMsg, Enums.OK, true, true,
undefined, undefined,
588 undefined, undefined, undefined, qsTr("Network
Connection"))
589 osrworkspacemodel.msgDlgArray.push(msg);
590 isNetworkDegraded = false;
591 }
592 }
593
594 if(viewobject.getWorkstationNameEnum() === Enums.RERUN_EMULATOR)
595 {
596 if (screenName !== Enums.LOGIN_SCREEN)
597 {
598 resetFocus();
599 }
600 }
601 else
602 {
603 if((screenName !== Enums.LOGIN_SCREEN) && (screenName !==
Enums.PASSWORD_EXPIRE_SCREEN)
604 && (screenName !== Enums.RELIEVE_USER_LOGIN_PANEL_SCREEN))
605 {
606 resetFocus();
607 }
608 }
609 }
610
611 function logMsgtoStatusArea(string)
612 {
613 //Written Blank Function to make AnalogicControlButton file common
614 }
615
616 function customfiledialog(modelnum, acceptmode, title, browspath, namefilter, fileExt)
617 {
618 animationOff = true
619 var filepath;
620
621 var mountpath = viewobject.mountUsb();
622
623 if (mountpath === workstationConfig.getUsbMountPath())
624 {
625 filepath = browspath.split("/");
626 filepath = mountpath + "/" + filepath[filepath.length - 1];
627 }
628
629 else
630 {
631 filepath = browspath.split("/");
632 var exist = viewobject.folderExists(workstationConfig.getDefaultDataPath());
633 if (!exist)
634 {
635 createAndShowMessageBox(qsTr("Default folder path not found."),Enums.OK);
636 return qsTr("failed");
637 }
638
639 filepath = workstationConfig.getDefaultDataPath() + "/" + filepath[filepath.length
- 1];
640 }
641
642
643 var file= viewobject.customFiledialog(1, 0,
644 acceptmode, title,
645 filepath,
646 namefilter);
647
648 if (file === "")
649 {
650 viewobject.unMountUsb();
651 return file;
652 }
653
654 file = file.replace(/^(file:\/{2})|(qrc:\/{2})|(http:\/{2})/,"");
655 if (file.indexOf(".") === -1)
656 {
657 // format not entered by user, so append
658 file = file + fileExt;
659 }
660 if (acceptmode === Enums.AcceptSave)
661 {
662 var errStr;
663 var hr = viewobject.checkFileFolderPermission(file,errStr);
664 if(hr !== ErrorEnum.FILE_OPERATION_SUCCESS)
665 {
666 if(hr === ErrorEnum.FILE_EXISTS)
667 {
668 if(modelnum === Enums.COMMAND_REPORT_MODEL)
669 {
670 var dupfilecount = 0;
671 var tempFile = file;
672 do
673 {
674 var filenamepieces;
675 dupfilecount++;
676 filenamepieces = tempFile.split( "." );
677 file = filenamepieces[0] + "-" + dupfilecount + "." + filenamepieces[1];
678 var res = viewobject.checkFileFolderPermission(file,errStr);
679 if(res !== ErrorEnum.FILE_EXISTS)
680 {
681 if(res === ErrorEnum.FILE_OPERATION_SUCCESS)
682 {
683 var fileerrcode = viewobject.saveFile(file, browspath);
684 if (fileerrcode !== 0)
685 {
686 var srcdstpath = qsTr("Source Path: ") + browspath + qsTr("
Destination Path: ") + file
687 viewobject.authstatuschanged(fileerrcode, srcdstpath, modelnum);
688 file = qsTr("failed");
689 }
690 }
691 else
692 {
693 file = qsTr("failed");
694 }
695 break;
696 }
697 }while(1);
698
699 }
700 else
701 {
702 overwritefiledialog.srcPath = browspath;
703 overwritefiledialog.dstPath = file;
704 overwritefiledialog.modelNumber = modelnum;
705 errStr = qsTr("File With same name already exist at this location, Do you
want to overwrite existing file?");
706 createAndShowMessageBox(errStr,
Enums.OK|Enums.CANCEL,true,true,overwritefiledialog);
707 file = qsTr("failed");
708 }
709 }
710 else if(hr === ErrorEnum.FILE_PERMISSION_DENIED)
711 {
712 errStr = qsTr("User is not having write permission to this directory.");
713 createAndShowMessageBox(errStr, Enums.OK);
714 file = qsTr("failed");
715 }
716 else if(hr === ErrorEnum.FILE_NOT_PRESENT)
717 {
718 errStr = qsTr("Directory Does not Exists.");
719 createAndShowMessageBox(errStr, Enums.OK);
720 file = qsTr("failed");
721 }
722 }
723 else
724 {
725 var fileerrorcode = viewobject.saveFile(file, browspath);
726 if (fileerrorcode !== 0)
727 {
728 var srcanddstpath = qsTr("Source Path: ") + browspath + qsTr(" Destination
Path: ") + file
729 viewobject.authstatuschanged(fileerrorcode, srcanddstpath, modelnum);
730 file = qsTr("failed");
731 }
732 if(modelnum !== Enums.COMMAND_REPORT_MODEL)
733 viewobject.unMountUsb();
734 }
735 }
736 animationOff = false
737 return file;
738 }
739 signal scannerFaultDisplay(string fault, var nextscrn);
740 onScannerFaultDisplay:
741 {
742 console.debug("setting modal : " + Enums.FAULT_PANEL);
743 viewobject.setModalFrame(Enums.FAULT_PANEL, fault, nextscrn);
744 }
745 Style
746 {
747 id: appstyles
748 }
749 Flickable {
750 anchors.fill:parent
751 contentWidth: appContainer.width; contentHeight: appContainer.height
752 Item
753 {
754 objectName: "itemmainscreen"
755 height:centercolumn.height
756 width:centercolumn.width
757 id: appContainer
758 Column
759 {
760 id:centercolumn
761 width: rootwindow.width
762 spacing: -1
763
764 Item
765 {
766 id:centerpanel
767 height: rootwindow.height
768 width:parent.width
769
770 anchors.horizontalCenter: parent.horizontalCenter
771 Loader
772 {
773 id: centralpnlloader
774 focus:true
775 height:parent.height
776 width:parent.width
777 anchors.centerIn: parent
778 sourceComponent: loginpanelcomp
779 }
780 }
781 AnalogicFrame
782 {
783 id:keyboard_space
784 height:Qt.inputMethod.keyboardRectangle.height
785 width:rootwindow.width
786 }
787
788 Component.onCompleted:{
789 var comp = Qt.createComponent("../common/screenareas/NetworkStatusError.qml");
790 nwStatusError = comp
791 var comp1 =
Qt.createComponent("../common/screenareas/OperatorThreatPopupOptions.qml");
792 operatorPopup = comp1
793 var comp2 =
Qt.createComponent("../common/screenareas/ApplicationSelectionDialog.qml");
794 appSelectionDialog = comp2
795 var comp4 =
Qt.createComponent("../common/screenareas/HighThreatSVSDialog.qml");
796 highThreatPopup = comp4
797 var comp5 =
Qt.createComponent("../common/screenareas/ScrollableMessagePopup.qml");
798 bagExportDetailsDialog = comp5
799
800 Qt.inputMethod.visibleChanged.connect(keyboardvisibilitychange);
801 }
802 }
803
804 Component
805 {
806 id: loginpanelcomp
807 LoginPanel
808 {
809
810 }
811
812 }
813 Component {
814 id: passwordExpireScreen
815 PasswordExpire {
816
817 }
818 }
819 Component {
820 id: pinExpireScreen
821 PinExpire {
822
823 }
824 }
825 Component
826 {
827 id: relieveuserloginpanel
828 RelieveUserLoginPanel
829 {
830
831 }
832
833 }
834 Component
835 {
836 id: workstationmaincomp
837 WorkstationMain
838 {
839 id: workstationmainid
840 Connections
841 {
842 target: rootwindow
843 onNavigationMenuEnableChanged:
844 {
845 workstationmainid.navigationPanel.navigationMenuBtnEnabled =
navigationMenuEnable
846 }
847 }
848 }
849 }
850
851 Component
852 {
853 id: scrollablepopupcomp
854 ScrollableMessagePopup
855 {
856
857 }
858
859 }
860 }
861
862 }
863 Connections
864 {
865 target:webView
866
867 onNavigationRequested: {
868 viewobject.setAuthTokenToWebview();
869
870 var loginurl = request.url.toString();
871 var lasturl = loginurl.split("/");
872 var loginpageurl = lasturl[lasturl.length-1];
873
874 if ((loginpageurl === "AnalogicWebClient") || (loginurl.indexOf("LoginPage.jsp")
>= 0))
875 {
876 var message = qsTr("Network reconnection timed out. Changing to default
screen.");
877 if (viewobject.getWorkstationNameEnum() === Enums.OSR_WORKSTATION)
878 {
879 screenchange(Enums.BAGSCREENING_SCREEN);
880 }
881 else if (viewobject.getWorkstationNameEnum() === Enums.SEARCH_WORKSTATION )
882 {
883 screenchange(Enums.SEARCH_SCREEN);
884 }
885 else if (viewobject.getWorkstationNameEnum() === Enums.TRAINING_WORKSTATION)
886 {
887 screenchange(Enums.TRAINING_PLAYLIST_SCREEN);
888 }
889 else if (viewobject.getWorkstationNameEnum() === Enums.SUPERVISOR_WORKSTATION)
890 {
891 screenchange(Enums.SUPERVISOR_SCREEN);
892 }
893
894 navigationModelData.componentpropertychages("btUserAdmin", false, "isVisible")
895 if (viewobject.getWorkstationNameEnum() !== Enums.SUPERVISOR_WORKSTATION)
896 {
897 createAndShowMessageBox(message, Enums.OK)
898 }
899 }
900 console.debug(request.url);
901 }
902
903 }
904
905 Connections
906 {
907 target: ulmObject
908 onDisplayMsg:
909 {
910 recallArchiveBagModelData.recallsaveallbutton = true
911 if(model === Enums.BAGSCREENING_SCREEN)
912 {
913 if(hr === ErrorEnum.FILE_EXISTS)
914 {
915 createAndShowMessageBox(status, Enums.OK |
Enums.CANCEL,true,true,overwriteBagFile);
916 }
917 else
918 {
919 createAndShowMessageBox(status, Enums.OK);
920 }
921 }
922 if(hr === ErrorEnum.FILE_EXISTS && model === Enums.QML_MESSAGE_MODEL)
923 {
924 createAndShowMessageBox(status, Enums.OK |
Enums.CANCEL,true,true,overwriteRecallBagFileInUSB);
925 }
926 else if(hr === ErrorEnum.FILE_OPERATION_FAILED && model ===
Enums.QML_MESSAGE_MODEL)
927 {
928 rootwindow.popupClosed(false)
929 enableBusyIndicator(false)
930 bagExportSuccess = status
931 messageBox = bagExportDetailsDialog.createObject();
932 messageBox.show();
933 osrworkspacemodel.msgDlgArray.push(messageBox);
934 messageBox.x = rootwindow.width * 0.35;
935 messageBox.y = rootwindow.height * 0.18;
936 recallArchiveBagModelData.recallExportOperation = false
937 recallArchiveBagModelData.resetRecallBagTable(SelectionMode.SingleSelection)
938 }
939 else
940 {
941 rootwindow.popupClosed(false)
942 enableBusyIndicator(false)
943 if(hr === ErrorEnum.FILE_EXISTS)
944 {
945 overwriteFileList = status.split(",");
946 var msg = qsTr("File with name ")+ overwriteFileList[0] + qsTr(" alreday
exist, Do You Want To Overwrite File?");
947 recallArchiveBagModelData.foldername = overwriteFileList[0];
948 createAndShowMessageBox(msg, Enums.OK |
Enums.CANCEL,true,true,overwriterecallbagfile);
949 }
950 else
951 {
952 recallArchiveBagModelData.resetRecallBagTable(SelectionMode.SingleSelection)
953 createAndShowMessageBox(status, Enums.OK,true,true,closepopupdialog);
954 recallArchiveBagModelData.recallExportOperation = false
955 }
956 }
957 }
958 }
959
960 Item
961 {
962 id: resetPasswordDecision
963 function messageDialogOnBtn1Accepted()
964 {
965 var screenenum;
966 screenenum = Enums.PASSWORD_EXPIRE_SCREEN
967 screenchange(screenenum);
968 }
969 function messageDialogOnBtn2Accepted()
970 {
971 var screenenum;
972 var changescreen;
973 if((relieveUserLogin === false)
974 && (viewobject.getWorkstationNameEnum() !== Enums.TRAINING_WORKSTATION)
975 && (viewobject.getWorkstationNameEnum() !== Enums.RERUN_EMULATOR)
976 && ulmObject.validateFeature("maintenance")
977 && !nwconnectionmodel.isResetPasswordInitiated
978 && workstationConfig.getAuthenticateWithNss())
979 {
980 changescreen = false
981 createandShowAppSelectionDialog(qsTr("Which application do you want to
launch?"), Enums.SDSW_CLIENT | Enums.WORK_STATION,
982 true,true,applicationselection,qsTr("SDSW
Client"),qsTr("Workstation"));
983 }
984 else
985 {
986 relieveUserLogin = false
987 if(navigationModelData.workstationName === Enums.SEARCH_WORKSTATION)
988 {
989 screenenum = Enums.SEARCH_SCREEN;
990 }
991 else if (navigationModelData.workstationName === Enums.OSR_WORKSTATION)
992 {
993 screenenum = Enums.BAGSCREENING_SCREEN;
994 }
995 else if(navigationModelData.workstationName === Enums.SUPERVISOR_WORKSTATION)
996 {
997 screenenum = Enums.SUPERVISOR_SCREEN;
998 }
999 else if (navigationModelData.workstationName === Enums.TRAINING_WORKSTATION)
1000 {
1001 screenenum = Enums.TRAINING_VIEWER_SCREEN;
1002 }
1003 viewobject.setAuthenticatedUserDetailsToScanner();
1004 showSSIConfirmationBox();
1005 }
1006 }
1007 }
1008
1009 Item
1010 {
1011 id: applicationselection
1012 objectName: "applicationselection"
1013 function messageDialogOnBtn1Accepted()
1014 {
1015 var message = "workstation";
1016 viewobject.onCommandClick(Enums.AUTHENTICATIN_MODEL, message);
1017 viewobject.reportEventToNssAgent(Enums.EVENT_SDSW_LOGIN,
navigationModelData.username);
1018 if(ulmObject.validateFeature("maintenance"))
1019 {
1020 console.debug("Setting Maintenance true")
1021 viewobject.setMaintenanceMode(true)
1022 }
1023 }
1024 function messageDialogOnBtn2Accepted()
1025 {
1026 var entityobjectname;
1027 var screenenum;
1028 if(navigationModelData.workstationName === Enums.SEARCH_WORKSTATION)
1029 {
1030 entityobjectname = "btSearchBag"
1031 screenenum = Enums.SEARCH_SCREEN;
1032 }
1033 else if (navigationModelData.workstationName === Enums.OSR_WORKSTATION)
1034 {
1035 entityobjectname = "btBagScreening"
1036 screenenum = Enums.BAGSCREENING_SCREEN;
1037 }
1038 else if(navigationModelData.workstationName === Enums.SUPERVISOR_WORKSTATION)
1039 {
1040 entityobjectname = "btSupervisorScreen"
1041 screenenum = Enums.SUPERVISOR_SCREEN;
1042 }
1043 viewobject.setAuthenticatedUserDetailsToScanner();
1044 showSSIConfirmationBox();
1045 }
1046 }
1047
1048 Connections
1049 {
1050 target:viewobject
1051 onScannerFaultReceived:
1052 {
1053 var stringList= scannerstate.split('$');
1054 scannerfaultmodel.scannername = stringList[0];
1055 scannerfaultmodel.scannerstate = stringList[1];
1056 scannerfaultmodel.scannerfaultcode = Number(stringList[2]);
1057 scannerfaultmodel.scannerfaulttime = Number(stringList[4]);
1058 scannerfaultmodel.scannerfaultevent = stringList[6];
1059 scannerfaultmodel.scannermode = stringList[7];
1060 scannerfaultmodel.xrayState = stringList[8];
1061
1062
1063 if ((!scannerfaultmodel.scannercurrentfaultmessage.match("none"))
1064 && (scannerfaultmodel.scannercurrentfaultmessage !==
scannerfaultmodel.scannerlastfaultmessage)
1065 && scannerfaultmodel.scannercurrentfaultmessage != "")
1066 {
1067 scannerfaultmodel.scannerlastfaultmessage =
scannerfaultmodel.scannercurrentfaultmessage;
1068 }
1069
1070
1071 var myDate;
1072 if (scannerfaultmodel.scannerfaulttime) {
1073
1074 myDate = new Date( scannerfaultmodel.scannerfaulttime);
1075 }
1076 else
1077 {
1078 myDate = new Date();
1079 }
1080
1081
1082 if((stringList[3].toLowerCase() !== "none") &&
1083 (stringList[3].toLowerCase() !== ""))
1084 {
1085 scannerfaultmodel.useraction = stringList[3];
1086 }
1087
1088 if((stringList[5].toLowerCase() !== "none") &&
1089 (stringList[5].toLowerCase() !== ""))
1090 {
1091 scannerfaultmodel.scannercurrentfaultmessage = stringList[5];
1092 }
1093
1094 if (scannerfaultmodel.scannerstate.toLowerCase() !== "fault")
1095 {
1096 scannerfaultmodel.scannercurrentfaultmessage = "";
1097 }
1098 if ((scannerfaultmodel.scannerstate.toLowerCase() !== "fault")
1099 || (stringList[3].toLowerCase() === ""))
1100 {
1101 scannerfaultmodel.useraction = "";
1102 }
1103 if((viewobject.currentView !== Enums.LOGIN_SCREEN)
1104 && (viewobject.currentView !== Enums.RELIEVE_USER_LOGIN_PANEL_SCREEN))
1105 {
1106 if(bhsInfoModel.bhsPickupWarningResolved)
1107 {
1108 if((scannerfaultmodel.scannercurrentfaultmessage !== "")
1109 && !viewobject.getScannerFaultScrnShown()
1110 && (scannerfaultmodel.scannerstate === "fault"))
1111 {
1112 initialiseAndShowBalloonPopup(scannerfaultmodel.scannercurrentfaultmessage
1113 , scannerfaultmodel.useraction
1114 , false
1115 , appstyles.colors.red
1116 , "qrc:/exclamation-32.png")
1117 }
1118 }
1119 else
1120 {
1121 if((scannerfaultmodel.scannerstate === "scan")
1122 || (scannerfaultmodel.scannerstate === "fault"))
1123 {
1124 initialiseAndShowBalloonPopup(bhsInfoModel.message
1125 , bhsInfoModel.userAction
1126 , true
1127 , appstyles.colors.yellow
1128 , "qrc:/exclamation-yellow-warning-32.png")
1129 }
1130 }
1131 }
1132 }
1133 onSslerrorreceived:
1134 {
1135 var message
1136 currentState = hr;
1137 currentModel = modelno;
1138
1139 if((previousState !== currentState)&&(previousModel !== currentModel))
1140 {
1141 message = qsTr("Error Code: ")+hr + " "+qsTr("Model no ")+modelno+status
1142 console.debug("SSL error received: " + message)
1143 createAndShowMessageBox(message, Enums.OK)
1144 previousState = currentState;
1145 previousModel = currentModel;
1146 }
1147 }
1148 onAuthstatuschanged:
1149 {
1150 //This is done so that when we have RECONNECTING/ UNREGISTERED state of nssagent
then the below retry should not take place as its not required.
1151 if(viewobject.currentView === Enums.LOGIN_SCREEN &&
((nwconnectionmodel.nwstate.state === "UNREGISTERED")
||(nwconnectionmodel.nwstate.state === "RECONNECTING")) )
1152 {
1153 if((hr === ErrorEnum.CONNECTION_ERROR) && (modelno ===
Enums.NETWORK_AUTHENTICATION_MODEL))
1154 {
1155 var message = qsTr("Login to Network Server ") +qsTr(" failed. Error: ") + hr
+ qsTr(" Connection Has Been Refused.");
1156 var messagebox = createAndShowMessageBox(message, Enums.OK);
1157
1158 osrworkspacemodel.msgDlgArray.push(messagebox);
1159
1160 return;
1161 }
1162 }
1163
1164 var entityname = "";
1165 var entityobjectname = "";
1166 var entityenable = false;
1167 var screenenum;
1168 var changescreen = false
1169 var message;
1170 var msgbox;
1171 var jsonObject;
1172 var errorcode;
1173 currentState = hr;
1174 currentModel = modelno;
1175
1176 //function to handle web service request
1177 webServiceConnection.handleRequests(hr, modelno);
1178
1179 if ((hr !== 0) &&
1180 (hr !== ErrorEnum.SUCCESS) &&
1181 (hr !== ErrorEnum.LOGIN_SUCCESS))
1182 {
1183 enableBusyIndicator(false);
1184
1185 }
1186 else if (hr === ErrorEnum.SOCKET_TIMEOUT_ERROR)
1187 {
1188 entityenable = false
1189 if (viewobject.currentView === Enums.SCANNERADMIN_SCREEN)
1190 {
1191 console.debug("Socket Timeout Error")
1192 msgbox = createAndShowMessageBox(qsTr("Socket Timeout Error."), Enums.OK);
1193 osrworkspacemodel.msgDlgArray.push(msgbox);
1194 if (viewobject.getWorkstationNameEnum() === Enums.OSR_WORKSTATION)
1195 {
1196 screenenum = Enums.BAGSCREENING_SCREEN;
1197 }
1198 else if (viewobject.getWorkstationNameEnum() === Enums.SEARCH_WORKSTATION)
1199 {
1200 screenenum = Enums.SEARCH_SCREEN;
1201 }
1202 else if (viewobject.getWorkstationNameEnum() === Enums.SUPERVISOR_WORKSTATION )
1203 {
1204 screenenum = Enums.SUPERVISOR_SCREEN;
1205 }
1206 screenchange(screenenum);
1207 return;
1208 }
1209 }
1210
1211 if((modelno === Enums.AUTHENTICATIN_MODEL) ||
1212 (modelno === Enums.USERADMIN_AUTHENTICATION_MODEL) ||
1213 (modelno === Enums.REPORT_ADMIN_AUTHENTICATION_MODEL) ||
1214 (modelno === Enums.TIP_CONFIG_ADMIN_AUTHENTICATION_MODEL) ||
1215 (modelno === Enums.TIP_LIB_CONFIG_ADMIN_AUTHENTICATION_MODEL)||
1216 (modelno === Enums.COMMAND_GET_VERSION) ||
1217 (modelno === Enums.UPDATE_LATEST_PACKAGE)||
1218 (modelno === Enums.ANTIVIRUS_AUTHENTICATION_MODEL)||
1219 (modelno === Enums.SUPERVISOR_AUTHENTICATION_MODEL))
1220 {
1221 if(modelno === Enums.AUTHENTICATIN_MODEL)
1222 {
1223 entityname = qsTr("Scanner Admin Server ")
1224 entityobjectname = "btScannerAdmin"
1225 screenenum = Enums.SCANNERADMIN_SCREEN
1226 if (hr === ErrorEnum.NETWORK_SESSION_OUT)
1227 {
1228 console.debug("Network session timeout, reconnecting.")
1229 networkreconnect.start();
1230 }
1231 else if(hr === ErrorEnum.FILE_NOT_PRESENT)
1232 {
1233 var msgBoxforFILE_NOT_PRESENT1 = createAndShowMessageBox(status, Enums.OK)
1234 osrworkspacemodel.msgDlgArray.push(msgBoxforFILE_NOT_PRESENT1);
1235 entityenable = false
1236 }
1237 else if(hr === ErrorEnum.SOCKET_TIMEOUT_ERROR)
1238 {
1239 entityenable = false
1240 }
1241 else if (hr === ErrorEnum.CONNECTION_ERROR)
1242 {
1243 entityname = qsTr("Scanner Admin Server ")
1244 entityobjectname = "btScannerAdmin"
1245 message = qsTr("Login to ") + entityname + qsTr(" failed. Error: ") + hr +
qsTr(" Connection Has Been Refused.");
1246 console.debug("Connection Error: Login to " + entityname + " failed. Error:
" + hr)
1247 entityenable = false
1248 }
1249
1250 if (hr === ErrorEnum.LOGIN_SUCCESS || hr === Enums.SUCCESS)
1251 {
1252 entityenable = true;
1253 }
1254 else
1255 {
1256 networkreconnect.stop();
1257 }
1258 }
1259 else if(modelno === Enums.USERADMIN_AUTHENTICATION_MODEL)
1260 {
1261 entityname = qsTr("User Admin Server ")
1262 entityobjectname = "btUserAdmin"
1263 if(hr === ErrorEnum.SUCCESS || hr === 201)
1264 {
1265 viewobject.onCommandClick(Enums.GET_USER_PASSWORD_CRITERIA, "");
1266 }
1267 screenenum = Enums.USERS_SCREEN
1268 }
1269 else if(modelno === Enums.REPORT_ADMIN_AUTHENTICATION_MODEL)
1270 {
1271 entityname = qsTr("Report Admin Server ")
1272 entityobjectname = "btReport"
1273 screenenum = Enums.REPORTS_SCREEN
1274 }
1275 else if(modelno === Enums.ANTIVIRUS_AUTHENTICATION_MODEL)
1276 {
1277 entityname = qsTr("Anti Virus Server Server ")
1278 entityobjectname = "btNSSServices"
1279 screenenum = Enums.ANTIVIRUS_SCREEN
1280 }
1281 else if(modelno === Enums.SUPERVISOR_AUTHENTICATION_MODEL)
1282 {
1283 entityname = qsTr("Management Console")
1284 entityobjectname = "btSupervisorScreen"
1285 screenenum = Enums.SUPERVISOR_SCREEN
1286 if((hr === ErrorEnum.SUCCESS) || (hr === ErrorEnum.LOGIN_SUCCESS))
1287 {
1288 autherrorflag = true
1289 }
1290 }
1291 else if(modelno === Enums.COMMAND_GET_VERSION)
1292 {
1293 entityname = qsTr("Antivirus Server ")
1294 entityobjectname = "btAntivirus"
1295 screenenum = Enums.ANTIVIRUS_SCREEN
1296 if(hr === ErrorEnum.SUCCESS)
1297 {
1298 nssservicemodelid.msgtxt = qsTr("AV Signature Version ")+status
1299 }
1300 else
1301 {
1302 var msgBoxForCOMMAND_GET_VERSION = createAndShowMessageBox(status,Enums.OK);
1303 osrworkspacemodel.msgDlgArray.push(msgBoxForCOMMAND_GET_VERSION);
1304 }
1305 }
1306 else if(modelno === Enums.UPDATE_LATEST_PACKAGE)
1307 {
1308 nssservicemodelid.percentupload = ""
1309 nssservicemodelid.enablefocus = true
1310 var msgBoxForUPDATE_LATEST_PACKAGE = createAndShowMessageBox(status,Enums.OK);
1311 osrworkspacemodel.msgDlgArray.push(msgBoxForUPDATE_LATEST_PACKAGE);
1312 if(hr === ErrorEnum.SUCCESS)
1313 {
1314 viewobject.onCommandClick(Enums.COMMAND_GET_VERSION,"");
1315 }
1316 }
1317 else if(modelno === Enums.WORKSTATION_CONFIG_MODEL)
1318 {
1319 entityname = qsTr("Workstation Configuration ")
1320 entityobjectname = "btSettings"
1321 screenenum = Enums.SETTINGS_SCREEN
1322 }
1323 else if((modelno === Enums.TIP_CONFIG_ADMIN_AUTHENTICATION_MODEL)
1324 || (modelno === Enums.TIP_LIB_CONFIG_ADMIN_AUTHENTICATION_MODEL))
1325 {
1326 entityname = qsTr("Tip Admin Server ")
1327 entityobjectname = "btTIPView"
1328 screenenum = Enums.TIP_MAIN_SCREEN
1329 if(modelno === Enums.TIP_CONFIG_ADMIN_AUTHENTICATION_MODEL)
1330 {
1331 //Get TIP Config from server as it will be used for TIP functionality of bag.
1332 if (hr === ErrorEnum.LOGIN_SUCCESS)
1333 {
1334 if(!configUtility.isTipFileReceived)
1335 {
1336 var data = {};
1337 data.configParameter = "TIPConfig";
1338 data.currentLanguage = workstationConfig.getCurrentLanuage()
1339 var strres = JSON.stringify(data);
1340 viewobject.onCommandClick(Enums.COMMAND_TIP_CONFIG_MODEL, strres);
1341 }
1342 }
1343 }
1344 }
1345 if (hr === ErrorEnum.LOGIN_SUCCESS || hr === Enums.SUCCESS)
1346 {
1347 if(modelno === Enums.AUTHENTICATIN_MODEL)
1348 {
1349 if ((ulmObject.validateFeature("btnRadiationSurvey"))
1350 || (ulmObject.validateFeature("btnImageQuality"))
1351 || (ulmObject.validateFeature("btParameter"))
1352 || (ulmObject.validateFeature("btnErrorLog"))
1353 || (ulmObject.validateFeature("btScannerStatus"))
1354 || (ulmObject.validateFeature("btDetectionAlgorithm")))
1355 {
1356 entityenable = true
1357 }
1358 else
1359 {
1360 entityenable = false
1361 }
1362 isSdswAuthenticate = true
1363 }
1364 else
1365 {
1366 entityenable = true
1367 }
1368 changescreen = false
1369 }
1370
1371 else if (hr === 0)
1372 {
1373
1374 }
1375 else
1376 {
1377 if ((modelno === Enums.UPDATE_TASK_STATUS_MODEL) && (hr === 400))
1378 {
1379 console.debug("Error on Update task status model" + hr)
1380 entityenable = false
1381 }
1382 else if((modelno === Enums.TIP_CONFIG_ADMIN_AUTHENTICATION_MODEL)
1383 || (modelno === Enums.TIP_LIB_CONFIG_ADMIN_AUTHENTICATION_MODEL))
1384 {
1385 var tempenablestatus =
viewobject.getLoginStatus(Enums.TIP_CONFIG_ADMIN_SERVER)
1386 var templibenablestatus =
viewobject.getLoginStatus(Enums.TIP_LIB_CONFIG_ADMIN_SERVER)
1387 if((tempenablestatus === ErrorEnum.LOGIN_SUCCESS) || (templibenablestatus
=== ErrorEnum.LOGIN_SUCCESS))
1388 {
1389 entityenable = true
1390 }
1391 else
1392 {
1393 entityenable = false
1394 }
1395 }
1396 else
1397 {
1398
1399 // message = "Login to " + entityname + " failed.
Error:"+hr +
1400 // " " +status
1401 // //TODO:Below condition is patch for removing user
admin popup on login screen
1402 // //Remove it once user admin screen implementation
completes
1403 // if((modelno !==
Enums.USERADMIN_AUTHENTICATION_MODEL)
1404 // {
1405 // createAndShowMessageBox(message,
Enums.SHUTDOWN | Enums.RESTART | Enums.CANCEL)
1406 // }
1407
1408 entityenable = false
1409 }
1410 }
1411 }
1412 else if(modelno === Enums.NETWORK_AUTHENTICATION_MODEL)
1413 {
1414 if(hr === Enums.SUCCESS)
1415 {
1416 /* ANSS-3513: If there is an inactivity timeout during bag screening,
1417 flush the bag upon login to prevent rendering the bag immediately upon
login,
1418 even if bag screening is turned off.
1419 */
1420 WorkstationVolumeRenderer.flushBagDataPool();
1421 var readFromUsb = workstationConfigModel.getValueByTag("read_from_usb",
1422
workstationConfigModel.w
orkstationConfigListMode
l);
1423
1424 // ASQA-547: mounting usb if readFromUsb is true as during logout we are
un-mounting usb
1425 if(readFromUsb === qsTr("true") && (viewobject.isUSBMounted() === false))
1426 {
1427 viewobject.mountUsb()
1428 }
1429
1430 idlescreenobject.updateInactivityTimeoutInterval(false)
1431 if(!(viewobject.getPasswordExpirationDays() <= 14) &&
1432 (!ulmObject.validateFeature("maintenance") ||
1433 (ulmObject.validateFeature("maintenance") &&
1434 (viewobject.currentView === Enums.RELIEVE_USER_LOGIN_PANEL_SCREEN))) &&
1435 !nwconnectionmodel.isResetPasswordInitiated
1436 && !(navigationModelData.isShutdownFlag ||
navigationModelData.isRestartFlag))
1437 {
1438 showSSIConfirmationBox();
1439 }
1440 else if(!nwconnectionmodel.isResetPasswordInitiated
1441 && ulmObject.validateFeature("maintenance")
1442 && !workstationConfig.getAuthenticateWithNss())
1443 {
1444 showSSIConfirmationBox();
1445 }
1446 else if(navigationModelData.isShutdownFlag ||
navigationModelData.isRestartFlag)
1447 {
1448 return
1449 }
1450 }
1451
1452 if ((nwconnectionmodel.isResetPasswordInitiated)
1453 && (hr === Enums.SUCCESS))
1454 {
1455 entityenable = false
1456 changescreen = true
1457 screenenum = Enums.PASSWORD_EXPIRE_SCREEN
1458 }
1459
1460 else
1461 {
1462 if(navigationModelData.workstationName === Enums.SEARCH_WORKSTATION)
1463 {
1464 entityobjectname = "btSearchBag"
1465 screenenum = Enums.SEARCH_SCREEN;
1466 }
1467 else if (navigationModelData.workstationName === Enums.OSR_WORKSTATION)
1468 {
1469 entityobjectname = "btBagScreening"
1470 screenenum = Enums.BAGSCREENING_SCREEN;
1471 }
1472 else if (navigationModelData.workstationName === Enums.TRAINING_WORKSTATION)
1473 {
1474 entityobjectname = "btTrainingViewer"
1475 screenenum = Enums.TRAINING_VIEWER_SCREEN;
1476 }
1477 else if(navigationModelData.workstationName === Enums.SUPERVISOR_WORKSTATION)
1478 {
1479 entityobjectname = "btSupervisorScreen"
1480 screenenum = Enums.SUPERVISOR_SCREEN;
1481 }
1482 }
1483
1484 if(hr === Enums.SUCCESS && !nwconnectionmodel.isResetPasswordInitiated)
1485 {
1486 entityenable = true
1487 if(viewobject.getPasswordExpirationDays() <= 14)
1488 {
1489 message = qsTr("Your password is going to expire in ")
1490 + viewobject.getPasswordExpirationDays()
1491 + qsTr(" days.\n Do You want to reset password?");
1492 createandShowAppSelectionDialog(message, Enums.SDSW_CLIENT |
Enums.WORK_STATION,
1493 true,true,resetPasswordDecision,
qsTr("Yes"), qsTr("No"));
1494 }
1495 else
1496 {
1497 if((relieveUserLogin === false)
1498 && (viewobject.getWorkstationNameEnum() !== Enums.TRAINING_WORKSTATION)
1499 && (viewobject.getWorkstationNameEnum() !== Enums.RERUN_EMULATOR)
1500 && ulmObject.validateFeature("maintenance")
1501 && !nwconnectionmodel.isResetPasswordInitiated
1502 && workstationConfig.getAuthenticateWithNss())
1503 {
1504 changescreen = false
1505 createandShowAppSelectionDialog(qsTr("Which application do you want to
launch?"),Enums.SDSW_CLIENT | Enums.WORK_STATION,
1506 true,true,applicationselection,qsTr("SDSW
Client"),qsTr("Workstation"));
1507 }
1508 else
1509 {
1510 relieveUserLogin = false
1511 viewobject.setAuthenticatedUserDetailsToScanner();
1512 }
1513 }
1514 autherrorflag = true
1515 }
1516 /* else if (hr === ErrorEnum.CONNECTION_ERROR)
1517 {
1518 entityname = qsTr("Network Server")
1519 message = qsTr("Login to ") + entityname + qsTr(" failed. Error: ") + hr +
qsTr(" Connection Has Been Refused.");
1520 console.debug("Connection Error: Login to " + entityname + " failed. Error: "
+ hr)
1521 createAndShowMessageBox(message, Enums.OK)
1522 entityenable = false
1523 }*/
1524 else if (hr === Enums.INVALID_LOGIN)
1525 {
1526 message = qsTr("Incorrect user login.");
1527 console.info("Login Error: Incorrect user login.")
1528 createAndShowMessageBoxLoginScreen(message, Enums.OK, true, false,
loginPopupId);
1529 entityenable = false
1530 }
1531 else if (hr === Enums.CONCURRENT_LOGIN_ERROR)
1532 {
1533 message = qsTr("User is already logged in.");
1534 console.debug("Login Error: User is already logged in.")
1535 createAndShowMessageBoxLoginScreen(message, Enums.OK, true, false,
loginPopupId)
1536 entityenable = false
1537 }
1538 else if (hr === Enums.AUTHENTICATION_METHOD_EXPIRED)
1539 {
1540 message = qsTr("User password has expired.");
1541 console.debug("Login Error: User password has expired.")
1542 nwconnectionmodel.isPasswordExpired = true;
1543 changescreen = false
1544 entityenable = false
1545 var expiredAuthMethod = viewobject.getExpiredAuthMethod()
1546 if((expiredAuthMethod === Enums.AUTH_METHOD_PASSWORD)
1547 || (expiredAuthMethod === Enums.AUTH_METHOD_UNDEFINED))
1548 {
1549 changescreen = true
1550 screenenum = Enums.PASSWORD_EXPIRE_SCREEN
1551 }
1552 else if(expiredAuthMethod === Enums.AUTH_METHOD_PIN)
1553 {
1554 changescreen = true
1555 screenenum = Enums.PIN_EXPIRE_SCREEN
1556 msgbox = createAndShowMessageBox(message, Enums.OK);
1557 osrworkspacemodel.msgDlgArray.push(msgbox);
1558 }
1559 else
1560 {
1561 message = qsTr("Undefined Expired Auth method received: " +
expiredAuthMethod);
1562 console.debug("Login Error: Undefined Expired Auth method received:"+
expiredAuthMethod)
1563 msgbox = createAndShowMessageBox(message, Enums.OK);
1564 osrworkspacemodel.msgDlgArray.push(msgbox);
1565 }
1566 }
1567 else if (hr === Enums.LOCKED_OUT)
1568 {
1569 message = qsTr("User account is locked.");
1570 console.debug("Login Error: User account is locked.")
1571 msgbox = createAndShowMessageBox(message, Enums.OK);
1572 osrworkspacemodel.msgDlgArray.push(msgbox);
1573 entityenable = false
1574 }
1575 else if (hr === Enums.INACTIVE)
1576 {
1577 message = qsTr("User is inactive.");
1578 msgbox = createAndShowMessageBox(message, Enums.OK);
1579 osrworkspacemodel.msgDlgArray.push(msgbox);
1580 console.debug("Login Error: User is inactive.")
1581 entityenable = false
1582 }
1583 else if (hr === Enums.IO_ERROR)
1584 {
1585 message = qsTr("Authentication request timed out.");
1586 console.debug("Login Error: Authentication request timed out.")
1587 msgbox = createAndShowMessageBox(message, Enums.OK);
1588 osrworkspacemodel.msgDlgArray.push(msgbox);
1589 entityenable = false
1590 isSdswAuthenticate = false
1591 }
1592 else if((hr === ErrorEnum.NETWORK_SESSION_OUT) || (hr ===
ErrorEnum.SOCKET_TIMEOUT_ERROR)
1593 || (hr === ErrorEnum.SERVER_ERROR) || (hr ===
ErrorEnum.AUTHENTICATION_ERROR)
1594 || (hr === ErrorEnum.CONNECTION_ERROR))
1595 {
1596 // handled below if block of SUCCESS or LOGIN_SUCCESS
1597 }
1598 else
1599 {
1600 message = qsTr("Network Connection Failed. Error: ")+hr;
1601 console.debug("Network Connection Failed. Error: " + hr)
1602 var msgBoxForNetworkConnectionFailed = createAndShowMessageBox(message,
Enums.OK)
1603 osrworkspacemodel.msgDlgArray.push(msgBoxForNetworkConnectionFailed);
1604 entityenable = false
1605 }
1606 }
1607 else if(modelno === Enums.NETWORK_CHANGE_PASSWORD_MODEL)
1608 {
1609 entityname = qsTr("Network Server")
1610 if((navigationModelData.workstationName === Enums.SEARCH_WORKSTATION)
1611 || (navigationModelData.workstationName === Enums.OSR_WORKSTATION)
1612 || (navigationModelData.workstationName === Enums.SUPERVISOR_WORKSTATION)
1613 || (navigationModelData.workstationName === Enums.TRAINING_WORKSTATION)
1614 )
1615 {
1616 entityenable = false
1617 entityobjectname = ""
1618 if(viewobject.prevView === Enums.RELIEVE_USER_LOGIN_PANEL_SCREEN)
1619 {
1620 screenenum = Enums.RELIEVE_USER_LOGIN_PANEL_SCREEN;
1621 }
1622 else
1623 {
1624 screenenum = Enums.LOGIN_SCREEN;
1625 }
1626 if(hr === Enums.SUCCESS)
1627 {
1628 screenchange(screenenum)
1629 message = qsTr("User Password Changed Successfully.");
1630 msgbox = createAndShowMessageBoxLoginScreen(message, Enums.OK, true, false,
loginPopupId)
1631 osrworkspacemodel.msgDlgArray.push(msgbox);
1632 }
1633 }
1634
1635 if(hr !== Enums.SUCCESS)
1636 {
1637 message = qsTr("Login to ") + entityname + qsTr(" failed. Error:")+hr +
1638 " " +status
1639 if(viewobject.currentView === Enums.PASSWORD_EXPIRE_SCREEN)
1640 {
1641 message = status
1642 }
1643 msgbox = createAndShowMessageBox(message, Enums.OK, true, false, loginPopupId);
1644 osrworkspacemodel.msgDlgArray.push(msgbox);
1645 entityenable = false
1646 console.debug("Login to" + entityname + " failed. Error:" + hr)
1647 }
1648 else
1649 {
1650 entityenable = true
1651 changescreen = true
1652 }
1653 }
1654 else if(modelno === Enums.RERUN_EMULATOR_AUTHENTICATION_MODEL)
1655 {
1656 if (navigationModelData.workstationName === Enums.RERUN_EMULATOR)
1657 {
1658 entityobjectname = "btRerun"
1659 screenenum = Enums.RERUNDETECION_SCREEN
1660 }
1661 entityname = qsTr("Rerun Server")
1662 if(hr === Enums.INVALID_LOGIN)
1663 {
1664 message = qsTr("Incorrect user login.")
1665 createAndShowMessageBoxLoginScreen(message, Enums.OK)
1666 entityenable = false
1667 }
1668 else if(hr === Enums.SUCCESS)
1669 {
1670 entityenable = true
1671 changescreen = true
1672 }
1673 else
1674 {
1675 message = qsTr("Login to ") + entityname + qsTr(" failed. Error: ")+ hr +
1676 " " + status
1677 msgbox = createAndShowMessageBox(message, Enums.OK)
1678 osrworkspacemodel.msgDlgArray.push(msgbox);
1679 entityenable = false
1680 changescreen = false
1681 console.debug("Login to "+ entityname + " failed. Error: " + hr)
1682 }
1683 }
1684 else if(modelno === Enums.TRAINING_WORKSTATION_AUTHENTICATION_MODEL)
1685 {
1686 if (navigationModelData.workstationName === Enums.TRAINING_WORKSTATION)
1687 {
1688 entityobjectname = "btTrainingPlaylist"
1689 screenenum = Enums.TRAINING_PLAYLIST_SCREEN
1690 }
1691 if(hr === Enums.SUCCESS)
1692 {
1693 entityenable = true
1694 changescreen = true
1695 }
1696 else if(hr === Enums.INVALID_LOGIN)
1697 {
1698 message = qsTr("Incorrect user login.")
1699 msgbox = createAndShowMessageBox(message, Enums.OK);
1700 osrworkspacemodel.msgDlgArray.pushmsgbox;
1701 entityenable = false
1702 console.debug("Login error: Incorrect user login.")
1703 }
1704 else
1705 {
1706 message = qsTr("Login to ") + entityname + qsTr(" failed. Error: ")+ hr +
1707 " " + status
1708 msgbox = createAndShowMessageBox(message, Enums.OK)
1709 osrworkspacemodel.msgDlgArray.push(msgbox);
1710 entityenable = false
1711 changescreen = false
1712 console.debug("Login to "+ entityname + " failed. Error: " + hr)
1713 }
1714 }
1715 else if ((modelno === Enums.QML_MESSAGE_MODEL) || (modelno ===
1716 Enums.BAGRECEIVED_STATUS_MODEL))
1717 {
1718 if (hr !== ErrorEnum.S_OK)
1719 {
1720 if ((modelno === Enums.BAGRECEIVED_STATUS_MODEL) &&
1721 (viewobject.currentView === Enums.REMOTE_ARCHIVE_BAG_SCREEN))
1722 {
1723 WorkstationVolumeRenderer.vtkSettingsChanged(Enums.TEPC_CLEAR_BAG);
1724 invokeCentralscreenchangeOfWM(Enums.RECALLBAG_SCREEN)
1725
1726 }
1727 }
1728 if(status === "Bag Archived successfully.")
1729 {
1730 WorkstationVolumeRenderer.addKeystroke("AR","");
1731 }
1732 var msg =
workstationConfig.getTranslatedText(workstationConfig.getHighThreatUpperText())
+" " +
1733
workstationConfig.getTranslatedText(workstationConfig.getHighThreatLowerText(
)) +
1734 qsTr(" has been attached to this bag:");
1735
1736 var tempStatusMsg = String(status);
1737 var retDlgId;
1738 if(tempStatusMsg.search(msg) !== -1){
1739 retDlgId = createAndShowMessageBoxHighThreat(status,Enums.OK)
1740 }
1741 else {
1742 if( recallArchiveBagModelData.recallExportOperation === false)
1743 {
1744 retDlgId = createAndShowMessageBox(status, Enums.OK);
1745 osrworkspacemodel.msgDlgArray.push(retDlgId);
1746 }
1747 }
1748 osrworkspacemodel.msgDlgIncompletScan.push(retDlgId);
1749
1750 if(WorkstationVolumeRenderer.isBagError())
1751 {
1752 //ANSS-2454: Slab Frame is disabled if Bag with error is received
1753 osrworkspacemodel.isSlabTypeFrameEnabled = false
1754 osrworkspacemodel.isUnpackingFrameEnabled = false
1755 }
1756 }
1757 else
1758 {
1759 if ((hr == ErrorEnum.SUCCESS)
1760 || (hr == ErrorEnum.LOGIN_SUCCESS))
1761 {
1762 autherrorflag = true
1763 }
1764 else if (hr === ErrorEnum.FILE_NOT_FOUND)
1765 {
1766 message = qsTr("Error Code: ")+hr + qsTr(" , File does not present.<br
/>Error:") +status
1767 var msgBoxForFILE_NOT_FOUND = createAndShowMessageBox(message, Enums.OK)
1768 osrworkspacemodel.msgDlgArray.push(msgBoxForFILE_NOT_FOUND);
1769 entityenable = false
1770 console.debug("Error Code: "+ hr + " , File does not present.<br />Error: " +
status)
1771 }
1772
1773 else if (hr === ErrorEnum.FILE_OPERATION_SUCCESS)
1774 {
1775
1776 }
1777
1778 else if (hr === ErrorEnum.FILE_NOT_PRESENT)
1779 {
1780 message = qsTr("ErrorCode: ") + String(hr) + qsTr(" Error: ") + qsTr("Src file
doesn't exist.") +
1781 qsTr(" Possible issue: File is not received from server or") +
1782 qsTr(" file permission or folder permission. ") + String(status);
1783 var msgBoxforFILE_NOT_PRESENT = createAndShowMessageBox(message, Enums.OK)
1784 osrworkspacemodel.msgDlgArray.push(msgBoxforFILE_NOT_PRESENT);
1785 entityenable = false
1786 console.debug("ErrorCode: " + hr + " Error: Src file doesn't exist.")
1787 }
1788
1789 else if (hr === ErrorEnum.FILE_PERMISSION_DENIED)
1790 {
1791 message = qsTr("ErrorCode: ") + String(hr) + qsTr(" Error: ") + qsTr("File
Copy failed on the given path. ") +
1792 qsTr("Possible issue: Folder permission or ") +
1793 qsTr("File Permission or File Path does not exist. ") + String(status);
1794 var msgBoxForFILE_PERMISSION_DENIED = createAndShowMessageBox(message,
Enums.OK)
1795 osrworkspacemodel.msgDlgArray.push(msgBoxForFILE_PERMISSION_DENIED);
1796 entityenable = false
1797 console.debug("ErrorCode: " + hr + " Error: File Copy failed on the given
path.")
1798 }
1799 else if(hr === ErrorEnum.USB_DRIVE_FULL)
1800 {
1801 message = qsTr("ErrorCode: ") + String(hr) + qsTr(" Error: ") + qsTr("File
Copy failed as the USB drive is full. ")
1802 var msgBoxForUSB_DRIVE_FULL = createAndShowMessageBox(message, Enums.OK)
1803 osrworkspacemodel.msgDlgArray.push(msgBoxForUSB_DRIVE_FULL);
1804 entityenable = false
1805 console.debug("ErrorCode: " + hr + " Error: File Copy failed on the given
path.")
1806
1807 }
1808 else if (hr === ErrorEnum.FILE_REMOVAL_FAILED)
1809 {
1810 message = qsTr("ErrorCode: ") + String(hr) + qsTr(" Error: ") + qsTr("File
Already Exist And Existing File removal failed.") +
1811 qsTr(" Possible Causes: ") + qsTr("Folder or File Permission. ") +
String(status);
1812 var msgBoxForFILE_REMOVAL_FAILED = createAndShowMessageBox(message, Enums.OK)
1813 osrworkspacemodel.msgDlgArray.push(msgBoxForFILE_REMOVAL_FAILED);
1814 entityenable = false
1815 console.debug("ErrorCode: " + hr + " Error: File Already Exist And Existing
File removal failed.")
1816
1817 }
1818 else if (hr === ErrorEnum.RPC_REPLY_ERROR)
1819 {
1820 message = "";
1821 jsonObject= JSON.parse(status);
1822 if (jsonObject !== undefined)
1823 {
1824 if(jsonObject.error !== undefined)
1825 {
1826 message = jsonObject.error;
1827 errorcode=jsonObject.errorID;
1828 var msgBoxForRPC_REPLY_ERROR = createAndShowMessageBox(qsTr("ErrorCode: ")
+ String(hr) + qsTr(" Error ID: ") + String(errorcode) +
1829 qsTr(" Error: ") + String(message), Enums.OK);
1830 osrworkspacemodel.msgDlgArray.push(msgBoxForRPC_REPLY_ERROR);
1831 }
1832 }
1833 else
1834 {
1835 message = qsTr("RPC Reply Ends With Error.");
1836 var msgBoxForRPC_REPLY_ERROR_2 = createAndShowMessageBox(qsTr("ErrorCode: ")
+ String(hr) + qsTr(" Error: ") + String(message), Enums.OK);
1837 osrworkspacemodel.msgDlgArray.push(msgBoxForRPC_REPLY_ERROR_2);
1838 console.debug("RPC Reply Ends With Error." + hr)
1839 }
1840 }
1841 else if (hr === ErrorEnum.RPC_REPLY_TIMEOUT)
1842 {
1843 message = "";
1844 jsonObject= JSON.parse(status);
1845 if (jsonObject !== undefined)
1846 {
1847 if(jsonObject.error !== undefined)
1848 {
1849 message = jsonObject.error;
1850 errorcode=jsonObject.errorID;
1851 var msgBoxForRPC_REPLY_TIMEOUT = createAndShowMessageBox(qsTr("ErrorCode:
") + String(hr) + qsTr(" Error ID: ") + String(errorcode) +
1852 qsTr(" Error: ") + String(message), Enums.OK);
1853 osrworkspacemodel.msgDlgArray.push(msgBoxForRPC_REPLY_TIMEOUT);
1854 console.debug("RPC reply timeout, ErrorCode: " + hr)
1855 }
1856 }
1857 else
1858 {
1859 message = qsTr("RPC Reply Ends With Timeout.");
1860 var msgBoxForRPC_REPLY_TIMEOUT_2 = createAndShowMessageBox(qsTr("ErrorCode:
") + String(hr) + qsTr(" Error: ") + String(message), Enums.OK);
1861 osrworkspacemodel.msgDlgArray.push(msgBoxForRPC_REPLY_TIMEOUT_2);
1862 console.debug("RPC Reply Ends With Timeout, Error code: " + hr)
1863 }
1864 }
1865
1866 else if (hr === ErrorEnum.FILE_PATH_NOT_FOUND)
1867 {
1868 message = qsTr("ErrorCode: ") + String(hr) + qsTr(" Error: ") + qsTr("Deleting
file from source path after copy failed. ") + String(status);
1869 var msgBoxForFILE_PATH_NOT_FOUND = createAndShowMessageBox(message, Enums.OK)
1870 osrworkspacemodel.msgDlgArray.push(msgBoxForFILE_PATH_NOT_FOUND);
1871 entityenable = false
1872 console.debug("ErrorCode: File path not found")
1873 }
1874
1875 else if (hr === ErrorEnum.INVALID_REQ)
1876 {
1877 if ((modelno !== Enums.UPDATE_TASK_STATUS_MODEL && modelno !==
Enums.UPDATE_USERADMIN_TASK_STATUS_MODEL) && (viewobject.currentView !==
Enums.LOGIN_SCREEN))
1878 {
1879 var msgBoxForINVALID_REQ = createAndShowMessageBox(String(hr) + ":" +
status, Enums.OK);
1880 osrworkspacemodel.msgDlgArray.push(msgBoxForINVALID_REQ);
1881 console.debug("Invalid request: " + hr)
1882 }
1883 }
1884
1885 /*else if(hr === ErrorEnum.SERVER_ERROR)
1886 {
1887 message = "";
1888 try
1889 {
1890 jsonObject= JSON.parse(status);
1891 if (jsonObject !== undefined)
1892 {
1893 if(jsonObject.error.error !== undefined)
1894 {
1895 message = jsonObject.error.error;
1896 errorcode=jsonObject.error.errorID;
1897 createAndShowMessageBox(qsTr("Error ID: ") + String(errorcode) + qsTr("
Error: ") + String(message), Enums.OK);
1898 console.debug("Server error: " + hr + " error: " + message)
1899 }
1900 else if(jsonObject.error !== undefined)
1901 {
1902 message = jsonObject.error;
1903 errorcode=jsonObject.errorID;
1904 console.debug("Server error: " + hr + " error: " + message)
1905 }
1906 else
1907 {
1908 message = jsonObject.error;
1909 createAndShowMessageBox(qsTr("Error: ") + String(message), Enums.OK);
1910 errorcode=jsonObject.errorID;
1911 console.debug("Server error: " + hr + " error: " + message)
1912 return;
1913 }
1914 }
1915 else
1916 {
1917 message = status;
1918 errorcode=hr;
1919 }
1920 }
1921 catch(err)
1922 {
1923 message = status;
1924 errorcode=hr;
1925 }
1926
1927 if((errorcode !== "SCANNER_DATA_NOT_READY")
1928 && (modelno !== Enums.UPDATE_TASK_STATUS_MODEL))
1929 {
1930 createAndShowMessageBox(qsTr("ErrorCode: ") + String(errorcode) + qsTr("
Error: ") + String(message), Enums.OK);
1931 console.debug("SCANNER_DATA_NOT_READY: " + hr + " error: " + message)
1932 }
1933
1934 else
1935 {
1936
1937 }
1938 }*/
1939 else if (hr === ErrorEnum.NO_CONTENT)
1940 {
1941
1942 }
1943 else if (hr === ErrorEnum.REDIRECTING)
1944 {
1945 console.debug("Main screen: Redirecting ")
1946 }
1947
1948 else if(hr === ErrorEnum.SERVICE_UNAVAILABLE)
1949 {
1950 message = qsTr("Error Code: ")+hr + qsTr(" Error: Task Request Timed Out.");
1951 var msgBoxForSERVICE_UNAVAILABLE = createAndShowMessageBox(message, Enums.OK)
1952 osrworkspacemodel.msgDlgArray.push(msgBoxForSERVICE_UNAVAILABLE);
1953 entityenable = false
1954 console.debug("SERVICE_UNAVAILABLE Error: Task Request Timed Out : " + hr)
1955
1956 }
1957 else if(hr === ErrorEnum.UNKNOWN_NETWORK)
1958 {
1959 message = qsTr("Error Code: ")+hr + qsTr(" Connection has been refused.");
1960 var msgBoxForUNKNOWN_NETWORK =createAndShowMessageBox(message, Enums.OK)
1961 osrworkspacemodel.msgDlgArray.push(msgBoxForUNKNOWN_NETWORK);
1962 entityenable = false
1963 console.debug("UNKNOWN_NETWORK Error: Connection has been refused : " + hr)
1964 }
1965
1966 /*else if(hr === ErrorEnum.CONNECTION_ERROR)
1967 {
1968 message = qsTr("Error Code: ")+hr + qsTr(" Connection could not be established
to server.");
1969 createAndShowMessageBox(message, Enums.OK)
1970 entityenable = false
1971 console.debug("CONNECTION_ERROR Error: Connection could not be established to
server: " + hr)
1972
1973 }*/
1974 else if(hr === ErrorEnum.TASK_CANCELED)
1975 {
1976 message = status;
1977 if(modelno === Enums.ERROR_LOG_SEARCH_MODEL || modelno ===
Enums.PARAMETER_MODEL ){
1978 console.debug("modelno not showing popup to user : ",modelno);
1979 }
1980 else{
1981 var msgBoxForTASK_CANCELED = createAndShowMessageBox(message, Enums.OK)
1982 osrworkspacemodel.msgDlgArray.push(msgBoxForTASK_CANCELED);
1983 }
1984 entityenable = false
1985 console.debug("TASK_CANCELED Error: " + hr)
1986 previousState = currentState;
1987 previousModel = currentModel;
1988 }
1989 else
1990 {
1991 if(!((hr === ErrorEnum.NETWORK_SESSION_OUT) || (hr ===
ErrorEnum.SOCKET_TIMEOUT_ERROR)
1992 || (hr === ErrorEnum.SERVER_ERROR) || (hr ===
ErrorEnum.AUTHENTICATION_ERROR)
1993 || (hr === ErrorEnum.CONNECTION_ERROR)))
1994 {
1995 if ((hr !== ErrorEnum.SOCKET_TIMEOUT_ERROR) && (hr !==
ErrorEnum.DATA_CONFLICT))
1996 {
1997 message = qsTr("Error Code: ")+hr + " " +status
1998 var msgBoxForSOCKET_TIMEOUT_ERROR = createAndShowMessageBox(message,
Enums.OK)
1999 osrworkspacemodel.msgDlgArray.push(msgBoxForSOCKET_TIMEOUT_ERROR);
2000 entityenable = false
2001 console.debug("SOCKET_TIMEOUT_ERROR Error: " + hr)
2002 }
2003 }
2004 }
2005 }
2006 if((hr === ErrorEnum.NETWORK_SESSION_OUT) || (hr ===
ErrorEnum.SOCKET_TIMEOUT_ERROR)
2007 || (hr === ErrorEnum.SERVER_ERROR) || (hr === ErrorEnum.AUTHENTICATION_ERROR)
2008 || (hr === ErrorEnum.CONNECTION_ERROR))
2009 {
2010 entityenable = false
2011 console.debug("Network connection error: " + hr + "model no " + modelno)
2012
2013 if(viewobject.currentView === Enums.LOGIN_SCREEN)
2014 {
2015 if((hr === ErrorEnum.CONNECTION_ERROR) && (modelno ===
Enums.NETWORK_AUTHENTICATION_MODEL))
2016 {
2017 entityname = qsTr("Network Server")
2018 message = qsTr("Login to ") + entityname + qsTr(" failed. Error: ") + hr +
qsTr(" Connection Has Been Refused.");
2019 msgbox = createAndShowMessageBox(message, Enums.OK)
2020 osrworkspacemodel.msgDlgArray.push(msgbox);
2021 }
2022 }
2023
2024 //When application log off then the app state is OFFline and when it log in
again if tomcat is stopped before log in then the state remains offline
2025 // if(ulmObject.getAppState() !== Enums.OFFLINE)
2026 // {
2027 var changeScreen = false;
2028 if(modelno === Enums.AUTHENTICATIN_MODEL )
2029 {
2030 if((hr === ErrorEnum.NETWORK_SESSION_OUT) || (hr ===
ErrorEnum.SOCKET_TIMEOUT_ERROR))
2031 {
2032 isSdswAuthenticate = false
2033 }
2034
2035 if((viewobject.currentView === Enums.SCANNERADMIN_SCREEN))
2036 {
2037 changeScreen = true;
2038 }
2039 }
2040 else if(modelno === Enums.USERADMIN_AUTHENTICATION_MODEL)
2041 {
2042 if(viewobject.currentView === Enums.USERS_SCREEN)
2043 {
2044 changeScreen = true;
2045 isSdswAuthenticate = false
2046 }
2047 }
2048 else if(modelno === Enums.NETWORK_AUTHENTICATION_MODEL)
2049 {
2050 changeScreen = false;
2051 isSdswAuthenticate = false
2052 }
2053 else if(modelno === Enums.REPORT_ADMIN_AUTHENTICATION_MODEL)
2054 {
2055 if(viewobject.currentView === Enums.REPORTS_SCREEN)
2056 {
2057 changeScreen = true;
2058 isSdswAuthenticate = false
2059 }
2060 }
2061 else if((modelno === Enums.COMMAND_GET_VERSION) ||
2062 (modelno === Enums.UPDATE_LATEST_PACKAGE)||
2063 (modelno === Enums.ANTIVIRUS_AUTHENTICATION_MODEL) )
2064 {
2065 if(viewobject.currentView === Enums.ANTIVIRUS_SCREEN)
2066 {
2067 changeScreen = true;
2068 isSdswAuthenticate = false
2069 }
2070 }
2071 else if((modelno === Enums.TIP_CONFIG_ADMIN_AUTHENTICATION_MODEL) ||
2072 (modelno === Enums.TIP_LIB_CONFIG_ADMIN_AUTHENTICATION_MODEL) )
2073 {
2074 if(viewobject.currentView === Enums.TIP_MAIN_SCREEN)
2075 {
2076 changeScreen = true;
2077 isSdswAuthenticate = false
2078 }
2079 }
2080 else if((modelno === Enums.QML_MESSAGE_MODEL) || (modelno ===
Enums.BAGRECEIVED_STATUS_MODEL))
2081 {
2082 changeScreen = false;
2083 }
2084 else
2085 {
2086 changeScreen = true;
2087 }
2088 utilitiesToDefaultScreen(modelno, hr)
2089 if(viewobject.currentView !== Enums.LOGIN_SCREEN)
2090 {
2091 if((changeScreen == true) && (autherrorflag === true) && (isSdswAuthenticate
=== false) &&
2092 !((viewobject.currentView === Enums.SUPERVISOR_SCREEN) ||
(viewobject.currentView === Enums.DASHBOARD_SCREEN)
2093 || (viewobject.currentView === Enums.BAGSCREENING_SCREEN)
2094 || (viewobject.currentView === Enums.SEARCH_SCREEN)))
2095 {
2096 autherrorflag = false
2097
2098 changedefaultscreen()
2099
2100 message = qsTr("Network reconnection timed out. Changing to default screen.")
2101 var msgBoxForNetworkReconnection = createAndShowMessageBox(message, Enums.OK)
2102 osrworkspacemodel.msgDlgArray.push(msgBoxForNetworkReconnection);
2103 }
2104 if(hr === ErrorEnum.AUTHENTICATION_ERROR)
2105 {
2106 sendApiRequest(modelno)
2107 }
2108 }
2109 }
2110 if((modelno === Enums.AUTHENTICATIN_MODEL) ||
2111 (modelno === Enums.USERADMIN_AUTHENTICATION_MODEL) ||
2112 (modelno === Enums.NETWORK_AUTHENTICATION_MODEL) ||
2113 (modelno === Enums.RERUN_EMULATOR_AUTHENTICATION_MODEL) ||
2114 (modelno === Enums.TRAINING_WORKSTATION_AUTHENTICATION_MODEL) ||
2115 (modelno === Enums.REPORT_ADMIN_AUTHENTICATION_MODEL) ||
2116 (modelno === Enums.NETWORK_CHANGE_PASSWORD_MODEL) ||
2117 (modelno === Enums.TIP_CONFIG_ADMIN_AUTHENTICATION_MODEL) ||
2118 (modelno === Enums.TIP_LIB_CONFIG_ADMIN_AUTHENTICATION_MODEL) ||
2119 (modelno === Enums.ANTIVIRUS_AUTHENTICATION_MODEL))
2120 {
2121 if((viewobject.getWorkstationNameEnum() === Enums.SUPERVISOR_WORKSTATION) &&
2122 (entityobjectname === "btScannerAdmin"))
2123 {
2124 navigationModelData.componentpropertychages("btScannerAdmin",false,
"isVisible");
2125 }
2126 else
2127 {
2128 navigationModelData.componentpropertychages(entityobjectname,entityenable,
"isVisible");
2129 }
2130 if (changescreen &&
2131 ((centralpnlloader.sourceComponent === loginpanelcomp)||
2132 (centralpnlloader.sourceComponent === relieveuserloginpanel)||
2133 (centralpnlloader.sourceComponent === passwordExpireScreen)))
2134 {
2135 screenchange(screenenum);
2136 }
2137 }
2138 }
2139 onShowFileDialog:
2140 {
2141 saveScreenshotDialog = true;
2142 if(isScreenShotTaken)
2143 {
2144 showUsbPopup.start()
2145 isScreenShotTaken = false;
2146 }
2147 }
2148 onInitateScreenShotSave:
2149 {
2150 isScreenShotTaken = true;
2151 }
2152 onSavedSuccessfull:
2153 {
2154 saveScreenshotDialog = false;
2155 if(isSaved == true)
2156 {
2157 createAndShowMessageBox(qsTr("File is saved successfully."), Enums.OK);
2158 }
2159 else
2160 {
2161 createAndShowMessageBox(qsTr("File is not saved."), Enums.OK);
2162 }
2163 }
2164 onDisplayMessage:
2165 {
2166 createAndShowMessageBox(msg, Enums.OK);
2167 }
2168 onDisplayMountErrorMsg:
2169 {
2170 console.info("errMsg : " + msg)
2171 showUsbPopup.usbMountMsg = qsTr(msg)
2172 if(workstationConfig.getssibanner() === false && centralpnlloader.sourceComponent
=== loginpanelcomp)
2173 {
2174 showUsbPopup.start()
2175 }
2176 else
2177 {
2178 if(!isScreenShotTaken)
2179 {
2180 createAndShowMessageBox(showUsbPopup.usbMountMsg, Enums.OK)
2181 showUsbPopup.usbMountMsg=""
2182 }
2183 }
2184 }
2185 onScreenshotSaved:
2186 {
2187 if(status)
2188 {
2189 var msg = qsTr("Screenshot saved successfully.")
2190 screenshotPopupClose.messageBoxScreenshot = createAndShowMessageBox(msg,
Enums.OK)
2191 screenshotPopupClose.start()
2192 }
2193 else
2194 {
2195 msg = qsTr("Failed to save screenshot.")
2196 screenshotPopupClose.messageBoxScreenshot = createAndShowMessageBox(msg,
Enums.OK)
2197 screenshotPopupClose.start()
2198 }
2199 }
2200
2201 onNetworkStatus:
2202 {
2203 if (status === Enums.REGISTERED)
2204 {
2205 if(navigationModelData.networkDegraded)
2206 {
2207 nwconnectionmodel.nwstate.state = "DEGRADED";
2208 }
2209 else
2210 {
2211 nwconnectionmodel.nwstate.state = "REGISTERED";
2212 }
2213 }
2214 if (messageBoxLogOff)
2215 {
2216 messageBoxLogOff.close();
2217 messageBoxLogOff.destroy()
2218 messageBoxLogOff = null
2219 }
2220 if ((status === Enums.UNREGISTERED) || (status === Enums.RECONNECTING) )
2221 {
2222 if((navigationModelData.workstationName === Enums.SEARCH_WORKSTATION) ||
(navigationModelData.workstationName === Enums.TRAINING_WORKSTATION))
2223 {
2224 viewobject.showHideOperatorThreatOptions(false);
2225 }
2226 if (viewobject.currentView === Enums.LOGIN_SCREEN)
2227 {
2228 console.info("Anurag::Anurag On Network Status if unregistered or
reconnecting, if equals to login screen");
2229 return;
2230 }
2231 if(messageBox)
2232 {
2233 messageBox.close();
2234 }
2235 osrworkspacemodel.closeNonBagRelatedDialog();
2236 changedefaultscreen();
2237
2238 /*** close screehshot widget when network disconnected*/
2239 closePopupDialog()
2240 if (status === Enums.RECONNECTING)
2241 {
2242 console.info("Anurag::Anurag On Network Status: Network is reconnecting.
Please wait or LogOff");
2243 console.log("Anurag::Anurag On Network Status: Network is reconnecting. Please
wait or LogOff");
2244 messageBoxLogOff = createNwStatusMessage(qsTr("Network is reconnecting. Please
wait or LogOff"));
2245 messageBoxLogOff.visible = true;
2246 }
2247 else if (status === Enums.UNREGISTERED)
2248 {
2249 console.info("Forcing logoff from unregistered state");
2250 console.info("Anurag::Anurag On Network Status unregistered Quit");
2251
2252 //nwconnectionmodel.nwstate.state = "UNREGISTERED";
2253 //rootwindow.logOff(nwconnectionmodel.nwstate.state);
2254 // Inform the user why they were kicked out.
2255 // Note that this message box being displayed alleviates an issue where the
login screen
2256 // may have unresponsive User and Password TextFields.
2257 //var message = qsTr("Automatically logged out due to network disruption.");
2258 //createAndShowMessageBoxLoginScreen(message, Enums.OK, true, false,
loginPopupId)
2259
2260 // The state where the User ID and Password text fields are uninteractible can
occur here.
2261 // Just quit the application after the logoff for now.
2262 rootwindow.logOff("QUIT");
2263 }
2264 }
2265 else if(status === Enums.REGISTERED)
2266 {
2267 logintoServers(-1);
2268 }
2269 }
2270
2271 onUpdateNetworkSpeed:
2272 {
2273 isNetworkDegraded = degraded;
2274 navigationModelData.networkDegraded = degraded
2275 var msg = qsTr("The Network Link has dropped to a lower speed. Please call
Service.");
2276 networkDegradeMsg = msg
2277 if(nwconnectionmodel.nwstate.state === "REGISTERED" ||
nwconnectionmodel.nwstate.state === "DEGRADED")
2278 {
2279 if(degraded)
2280 {
2281 nwconnectionmodel.nwstate.state = "DEGRADED";
2282 if(viewobject.currentView != Enums.LOGIN_SCREEN)
2283 {
2284 var message = createAndShowMessageBox(msg, Enums.OK, true, true, undefined,
undefined,
2285 undefined, undefined, undefined,
qsTr("Network Connection"))
2286 osrworkspacemodel.msgDlgArray.push(message);
2287 isNetworkDegraded = false;
2288 }
2289 }
2290 else
2291 {
2292 nwconnectionmodel.nwstate.state = "REGISTERED";
2293 }
2294 }
2295 }
2296
2297 onNetworkSwitchInprogress:
2298 {
2299 var msg = qsTr("Application Restart in Progress.....<br />It may take a couple of
minutes.")
2300 createAndShowMessageBox(msg);
2301 busyindicatortimeout.interval = 300000
2302 enableBusyIndicator(true)
2303 isNetworkSwitched = true
2304 }
2305
2306 }
2307 function createNwStatusMessage(msg) {
2308 var erorBox = rootwindow.nwStatusError.createObject();
2309 erorBox.errormsg.text = msg
2310 erorBox.btOk.visible = false
2311 erorBox.btShutDown.visible = false
2312 erorBox.btRestart.visible = false
2313 erorBox.btLogOff.visible = true
2314 erorBox.btcancel.visible = false
2315 return erorBox
2316 }
2317 Item
2318 {
2319 id: saveFile
2320 function messageDialogOnAccepted()
2321 {
2322 if(fileSystemItemModel.getAcceptMode() === Enums.AcceptSave)
2323 {
2324 var destFilePath = fileSystemItemModel.getCurrentDirectoryPath();
2325 destFilePath += ("/" + fileSystemItemModel.getDestinationFileName());
2326 viewobject.saveScreenshotImage(destFilePath, false);
2327 }
2328 }
2329 function messageDialogOnRejected()
2330 {
2331 viewobject.saveScreenshotImage("", true);
2332 }
2333 }
2334
2335 Timer {
2336 id:screenshotPopupClose
2337 interval: 3000
2338 repeat: false
2339 running: false
2340 property var messageBoxScreenshot;
2341 onTriggered:
2342 {
2343 if((messageBoxScreenshot !== undefined) && messageBoxScreenshot.visible)
2344 {
2345 screenshotPopupClose.stop()
2346 messageBoxScreenshot.close();
2347 messageBoxScreenshot.destroy();
2348 messageBoxScreenshot = null
2349 }
2350 }
2351 }
2352
2353 Timer {
2354 id:networkreconnect
2355 interval: workstationConfig.getNetworkTimeout();
2356 repeat: false
2357 running: false
2358 onTriggered:
2359 {
2360 //
navigationModelData.componentpropertychages("btScannerAdmin",false,"isVisible");
2361 // var message = qsTr("Network reconnection timed out. Changing to default
screen.");
2362 // console.debug("Network reconnection timed out. Changing to default screen.
")
2363
2364 // if ((viewobject.currentView === Enums.SCANNERADMIN_SCREEN)
2365 // || (viewobject.currentView === Enums.STATUS_SCREEN)
2366 // || (viewobject.currentView === Enums.RADIATIONSURVEY_SCREEN)
2367 // || (viewobject.currentView === Enums.ERRORLOG_SCREEN)
2368 // || (viewobject.currentView === Enums.PARAMETER_SCREEN)
2369 // || (viewobject.currentView === Enums.IMAGEQUALITY_SCREEN)
2370 // || (viewobject.currentView === Enums.TIP_MAIN_SCREEN)
2371 // )
2372 // {
2373 // createAndShowMessageBox(message, Enums.OK)
2374 // changedefaultscreen();
2375 // scanneradminmodel.asyncTaskRunning = false;
2376 // centralpnlloader.item.navigationPanel.enabled = true;
2377 // }
2378 // else
2379 // {
2380
2381 // }
2382 }
2383 }
2384
2385 Timer {
2386 id:showUsbPopup
2387 interval:1000
2388 repeat: false
2389 running: false
2390 property var usbMountMsg;
2391 onTriggered:
2392 {
2393 createAndShowMessageBox(usbMountMsg, Enums.OK)
2394 usbMountMsg=""
2395 }
2396 }
2397
2398 function changedefaultscreen()
2399 {
2400 if (viewobject.getWorkstationNameEnum() === Enums.OSR_WORKSTATION)
2401 {
2402 if(viewobject.currentView !== Enums.BAGSCREENING_SCREEN)
2403 {
2404 screenchange(Enums.BAGSCREENING_SCREEN);
2405 }
2406 }
2407 else if (viewobject.getWorkstationNameEnum() === Enums.SEARCH_WORKSTATION )
2408 {
2409 var screenEnum = workstationConfig.getDefaultScreenToDisplay();
2410 if(viewobject.currentView !== screenEnum)
2411 {
2412 screenchange(screenEnum);
2413 }
2414 }
2415 else if (viewobject.getWorkstationNameEnum() === Enums.TRAINING_WORKSTATION)
2416 {
2417 if(ulmObject.validateFeature("btTrainingPlaylist"))
2418 {
2419 if(viewobject.currentView !== Enums.TRAINING_PLAYLIST_SCREEN)
2420 {
2421 screenchange(Enums.TRAINING_PLAYLIST_SCREEN);
2422 }
2423 }
2424 else
2425 {
2426 if(viewobject.currentView !== Enums.TRAINING_VIEWER_SCREEN)
2427 {
2428 screenchange(Enums.TRAINING_VIEWER_SCREEN);
2429 }
2430 }
2431 }
2432 else if (viewobject.getWorkstationNameEnum() === Enums.RERUN_EMULATOR)
2433 {
2434 if(viewobject.currentView !== Enums.RERUNDETECION_SCREEN)
2435 {
2436 screenchange(Enums.RERUNDETECION_SCREEN);
2437 }
2438 }
2439 else if (viewobject.getWorkstationNameEnum() === Enums.SUPERVISOR_WORKSTATION)
2440 {
2441 if(viewobject.currentView !== Enums.SUPERVISOR_SCREEN)
2442 {
2443 screenchange(Enums.SUPERVISOR_SCREEN);
2444 }
2445 }
2446 }
2447
2448 function logintoServers(modelno)
2449 {
2450 var message = navigationModelData.username + ","+navigationModelData.password;
2451 var messageForLiveControl = "{\"user\":\"" + navigationModelData.username +
"\",\"password\":\""+ navigationModelData.password + "\"}";
2452
2453 if(modelno === Enums.AUTHENTICATIN_MODEL || modelno === -1)
2454 {
2455 if(viewobject.getWorkstationNameEnum() !== Enums.SUPERVISOR_WORKSTATION)
2456 {
2457 viewobject.onCommandClick(Enums.AUTHENTICATIN_MODEL,messageForLiveControl)
2458 }
2459 }
2460
2461 if(modelno !== Enums.AUTHENTICATIN_MODEL)
2462 {
2463 var res = ulmObject.validateFeature("btUserAdmin")
2464 if(res)
2465 {
2466 viewobject.onCommandClick(Enums.USERADMIN_AUTHENTICATION_MODEL,message);
2467 }
2468 res = ulmObject.validateFeature("btReport")
2469 if(res)
2470 {
2471 viewobject.onCommandClick(Enums.REPORT_ADMIN_AUTHENTICATION_MODEL,"");
2472 }
2473 res = ulmObject.validateFeature("btTIPView")
2474 if(res)
2475 {
2476 if(tipMainModel.getTipButtonsVisibility(Enums.TIP_CONFIG_SCREEN))
2477 {
2478 viewobject.onCommandClick(Enums.TIP_CONFIG_ADMIN_AUTHENTICATION_MODEL,"");
2479 }
2480 if(tipMainModel.getTipButtonsVisibility(Enums.TIP_OBJECT_LIB_SCREEN))
2481 {
2482 viewobject.onCommandClick(Enums.TIP_LIB_CONFIG_ADMIN_AUTHENTICATION_MODEL,"");
2483 }
2484 }
2485 // ANTIVIRUS functionality removed so commenting authentication request API
2486 // res = ulmObject.validateFeature("btNSSServices")
2487 // if(res)
2488 // {
2489 // viewobject.onCommandClick(Enums.ANTIVIRUS_AUTHENTICATION_MODEL,"")
2490 // }
2491 }
2492 }
2493
2494 function createAndShowMessageBoxHighThreat(message, toBeShownButtons,
tgtItemOnAccepted, tgtItemOnRejected, tgtItem, titleText)
2495 {
2496 if ((centralpnlloader.sourceComponent !== loginpanelcomp))
2497 {
2498 if(message !== "")
2499 {
2500 if((viewobject.currentView === Enums.SEARCH_BAG_SCREEN) &&
2501 WorkstationVolumeRenderer.getIsAutoclearEnabled())
2502 {
2503 if ((tgtItem !== undefined) && (tgtItemOnAccepted !== undefined))
2504 {
2505
2506 tgtItem.messageDialogOnAccepted();
2507 }
2508 return;
2509 }
2510 highThreatPopupBox = highThreatPopup.createObject()
2511 highThreatPopupBox.errormsg.text = message;
2512 highThreatPopupBox.btOk.visible = Enums.OK & toBeShownButtons
2513
2514 if (tgtItem !== undefined) {
2515 highThreatPopupBox.targetItem = tgtItem
2516 if (tgtItemOnAccepted !== undefined)
2517 {
2518 highThreatPopupBox.targetItemOnAccepted = tgtItemOnAccepted
2519 }
2520 }
2521
2522 highThreatPopupBox.open();
2523 if((viewobject.currentView === Enums.SEARCH_BAG_SCREEN) &&
2524 WorkstationVolumeRenderer.getIsAutoclearEnabled())
2525 {
2526 highThreatPopupBox.close();
2527 }
2528 return highThreatPopupBox;
2529 }
2530 }
2531 else
2532 {
2533 centralpnlloader.item.errorString.text = message;
2534 centralpnlloader.item.errorString.color = "red";
2535 }
2536 }
2537
2538 function createAndShowMessageBox(message, toBeShownButtons, tgtItemOnAccepted,
tgtItemOnRejected, tgtItem, x, y, textColor, bgColor, titleText, height,
2539 dialogBgColor)
2540 {
2541 console.info("Anurag::Anurag create and show message box ");
2542 if(nwconnectionmodel.nwstate.state === "UNREGISTERED" ||
nwconnectionmodel.nwstate.state === "RECONNECTING")
2543 {
2544 osrworkspacemodel.closeNonBagRelatedDialog();
2545 }
2546 if ((centralpnlloader.sourceComponent !== loginpanelcomp))
2547 {
2548 if(message !== "")
2549 {
2550 if(((viewobject.currentView === Enums.BAGSCREENING_SCREEN) ||
2551 (viewobject.currentView === Enums.RERUNSELECTION_BAG_SCREEN) ||
2552 (viewobject.currentView === Enums.TRAINING_BAG_SCREEN) ||
2553 (viewobject.currentView === Enums.SEARCH_BAG_SCREEN)) &&
2554 WorkstationVolumeRenderer.getIsAutoclearEnabled())
2555 {
2556 if ((tgtItem !== undefined) && (tgtItemOnAccepted !== undefined))
2557 {
2558 tgtItem.messageDialogOnAccepted();
2559 }
2560 return;
2561 }
2562
2563 messageBox = nwStatusError.createObject()
2564 messageBox.errormsg.text = message;
2565 messageBox.btOk.visible = messageBox.btOk.visible = ((toBeShownButtons &
Enums.OK) || (toBeShownButtons & Enums.KEEP) || (toBeShownButtons & Enums.YES))
2566 messageBox.btShutDown.visible = Enums.SHUTDOWN & toBeShownButtons
2567 messageBox.btRestart.visible = Enums.RESTART & toBeShownButtons
2568 messageBox.btLogOff.visible = Enums.LOGOFF & toBeShownButtons
2569 messageBox.btcancel.visible = ((Enums.CANCEL & toBeShownButtons) ||
(Enums.DELETE & toBeShownButtons) || (Enums.NO & toBeShownButtons))
2570 if(Enums.KEEP === (Enums.KEEP & toBeShownButtons))
2571 {
2572 messageBox.btOk.text = qsTr("Keep")
2573 }
2574 if(Enums.DELETE === (Enums.DELETE & toBeShownButtons))
2575 {
2576 messageBox.btcancel.text = qsTr("Delete")
2577 }
2578 if(Enums.YES === (Enums.YES & toBeShownButtons))
2579 {
2580 messageBox.btOk.text = qsTr("Yes")
2581 }
2582 if(Enums.NO === (Enums.NO & toBeShownButtons))
2583 {
2584 messageBox.btcancel.text = qsTr("No")
2585 }
2586
2587 if(titleText !== undefined)
2588 {
2589 messageBox.titleText = titleText
2590 }
2591 if (bgColor !== undefined)
2592 {
2593 messageBox.bgColor = bgColor
2594 }
2595 if (textColor !== undefined)
2596 {
2597 messageBox.errormsg.color = textColor
2598 }
2599
2600 if (dialogBgColor !== undefined)
2601 {
2602 messageBox.dialogBgColor = dialogBgColor
2603 }
2604
2605 if (tgtItem !== undefined) {
2606 messageBox.targetItem = tgtItem
2607 if (tgtItemOnAccepted !== undefined)
2608 {
2609 messageBox.targetItemOnAccepted = tgtItemOnAccepted
2610 }
2611 if (tgtItemOnRejected !== undefined) {
2612 messageBox.targetItemOnRejected = tgtItemOnRejected
2613 }
2614 }
2615
2616 messageBox.show();
2617 if(((viewobject.currentView === Enums.BAGSCREENING_SCREEN) ||
2618 (viewobject.currentView === Enums.RERUNSELECTION_BAG_SCREEN) ||
2619 (viewobject.currentView === Enums.TRAINING_BAG_SCREEN) ||
2620 (viewobject.currentView === Enums.SEARCH_BAG_SCREEN)) &&
2621 WorkstationVolumeRenderer.getIsAutoclearEnabled())
2622 {
2623 messageBox.close();
2624 }
2625
2626 if ((x === 0) || (x === undefined))
2627 {
2628 messageBox.x = (rootwindow.width - messageBox.errormsg.width)/2;
2629 }
2630 else
2631 {
2632 messageBox.x = x;
2633 }
2634
2635 if ((y === 0) || (y === undefined))
2636 {
2637 messageBox.y = (rootwindow.height - messageBox.errormsg.height)/2;
2638 }
2639 else
2640 {
2641 messageBox.y = y;
2642 }
2643
2644 if((height !== undefined) && (height > messageBox.height))
2645 {
2646 messageBox.height = height;
2647 }
2648 console.info(message);
2649 return messageBox;
2650 }
2651 }
2652 else
2653 {
2654 centralpnlloader.item.errorString.text = message;
2655 centralpnlloader.item.errorString.color = "red";
2656 }
2657 }
2658
2659 function createAndShowMessageBoxLoginScreen(message, toBeShownButtons,
tgtItemOnAccepted, tgtItemOnRejected, tgtItem, x, y , textColor, bgColor, titleText)
2660 {
2661 if(message !== "")
2662 {
2663 if(((viewobject.currentView === Enums.BAGSCREENING_SCREEN) ||
2664 (viewobject.currentView === Enums.RERUNSELECTION_BAG_SCREEN) ||
2665 (viewobject.currentView === Enums.TRAINING_BAG_SCREEN) ||
2666 (viewobject.currentView === Enums.SEARCH_BAG_SCREEN)) &&
2667 WorkstationVolumeRenderer.getIsAutoclearEnabled())
2668 {
2669 if ((tgtItem !== undefined) && (tgtItemOnAccepted !== undefined))
2670 {
2671 tgtItem.messageDialogOnAccepted();
2672 }
2673 return;
2674 }
2675
2676 messageBox = nwStatusError.createObject()
2677 messageBox.errormsg.text = message;
2678 messageBox.btOk.visible = Enums.OK & toBeShownButtons
2679 messageBox.btShutDown.visible = Enums.SHUTDOWN & toBeShownButtons
2680 messageBox.btRestart.visible = Enums.RESTART & toBeShownButtons
2681 messageBox.btLogOff.visible = Enums.LOGOFF & toBeShownButtons
2682 messageBox.btcancel.visible = Enums.CANCEL & toBeShownButtons
2683 if(titleText !== undefined)
2684 {
2685 messageBox.titleText = titleText
2686 }
2687 if (bgColor !== undefined)
2688 {
2689 messageBox.bgColor = bgColor
2690 }
2691 if (textColor !== undefined)
2692 {
2693 messageBox.errormsg.color = textColor
2694 }
2695
2696
2697 if (tgtItem !== undefined) {
2698 messageBox.targetItem = tgtItem
2699 if (tgtItemOnAccepted !== undefined)
2700 {
2701 messageBox.targetItemOnAccepted = tgtItemOnAccepted
2702 }
2703 if (tgtItemOnRejected !== undefined) {
2704 messageBox.targetItemOnRejected = tgtItemOnRejected
2705 }
2706 }
2707
2708 messageBox.show();
2709 if(((viewobject.currentView === Enums.BAGSCREENING_SCREEN) ||
2710 (viewobject.currentView === Enums.RERUNSELECTION_BAG_SCREEN) ||
2711 (viewobject.currentView === Enums.TRAINING_BAG_SCREEN) ||
2712 (viewobject.currentView === Enums.SEARCH_BAG_SCREEN)) &&
2713 WorkstationVolumeRenderer.getIsAutoclearEnabled())
2714 {
2715 messageBox.close();
2716 }
2717
2718 if ((x === 0) || (x === undefined))
2719 {
2720 messageBox.x = (rootwindow.width - messageBox.errormsg.width)/2;
2721 }
2722 else
2723 {
2724 messageBox.x = x;
2725 }
2726
2727 if ((y === 0) || (y === undefined))
2728 {
2729 messageBox.y = (rootwindow.height - messageBox.errormsg.height)/2;
2730 }
2731 else
2732 {
2733 messageBox.y = y;
2734 }
2735 console.info(message);
2736 if(messageBox && typeof messageBox.close === "function") {
2737 console.log("Pushing to array", messageBox, typeof messageBox);
2738 osrworkspacemodel.msgDlgArrayLogOff.push(messageBox);
2739 }
2740 else
2741 {
2742 console.log("Not a real dialog. No pushing", messageBox);
2743 }
2744 return messageBox;
2745 }
2746 }
2747
2748 function createAndShowMessageBoxForSSIBanner(message, toBeShownButtons,
tgtItemOnAccepted, tgtItemOnRejected, tgtItem, titleText)
2749 {
2750 if(message !== "")
2751 {
2752 messageBox = nwStatusError.createObject()
2753 messageBox.errormsg.text = message;
2754 messageBox.btOk.visible = Enums.OK & toBeShownButtons
2755 messageBox.btShutDown.visible = Enums.SHUTDOWN & toBeShownButtons
2756 messageBox.btRestart.visible = Enums.RESTART & toBeShownButtons
2757 messageBox.btLogOff.visible = Enums.LOGOFF & toBeShownButtons
2758 messageBox.btcancel.visible = Enums.CANCEL & toBeShownButtons
2759 if(titleText !== undefined)
2760 {
2761 messageBox.title = titleText
2762 }
2763 if (tgtItem !== undefined)
2764 {
2765 messageBox.targetItem = tgtItem
2766 if (tgtItemOnAccepted !== undefined)
2767 {
2768 messageBox.targetItemOnAccepted = tgtItemOnAccepted
2769 }
2770 if (tgtItemOnRejected !== undefined) {
2771 messageBox.targetItemOnRejected = tgtItemOnRejected
2772 }
2773 }
2774
2775 messageBox.show();
2776 messageBox.width = Screen.width * 0.5
2777 messageBox.height = Screen.height * 0.6
2778 console.info(message);
2779 messageBox.btOk.focus = true
2780 return messageBox;
2781 }
2782 }
2783
2784 function createandShowAppSelectionDialog(message, toBeShownButtons, tgtItemOnAccepted,
tgtItemOnRejected, tgtItem, Btn1Text, Btn2Text)
2785 {
2786 messageBox = appSelectionDialog.createObject()
2787 messageBox.appselectionMsg.text = message;
2788 messageBox.btSDSWClient.visible = Enums.SDSW_CLIENT & toBeShownButtons
2789 messageBox.btWorkstation.visible = Enums.WORK_STATION & toBeShownButtons
2790 messageBox.btSDSWClient.text = Btn1Text
2791 messageBox.btWorkstation.text = Btn2Text
2792 if (tgtItem !== undefined) {
2793 messageBox.targetItem = tgtItem
2794 if (tgtItemOnAccepted !== undefined)
2795 {
2796 messageBox.targetItemOnSDSWAccepted = tgtItemOnAccepted
2797 }
2798 if (tgtItemOnRejected !== undefined) {
2799 messageBox.targetItemOnWorkstationAccepted = tgtItemOnRejected
2800 }
2801 }
2802
2803 messageBox.show();
2804 return messageBox;
2805 }
2806
2807 /** Function used to show custom file dialog through out application
2808 */
2809 function createAndShowAnalogicCustomFileDialog(title, acceptMode, srcPath, nameFilter,
2810 tgtItemOnAccepted, tgtItemOnRejected,
tgtItem,
modelnum,requireUSBPath,isTrainingReport
)
2811 {
2812 var browsePath;
2813 var mountpath;
2814
2815 if(requireUSBPath === undefined)
2816 {
2817 requireUSBPath = false;
2818 }
2819 if(isTrainingReport === undefined)
2820 {
2821 isTrainingReport = false;
2822 }
2823 if(isTrainingReport === true && viewobject.getWorkstationNameEnum() ===
Enums.TRAINING_WORKSTATION )
2824 {
2825 mountpath = viewobject.mountUsb(isTrainingReport)
2826 }
2827 else
2828 {
2829 mountpath = viewobject.mountUsb();
2830 }
2831 viewobject.showHideNavigationMenu(false)
2832 if((isTrainingReport === false) && ((viewobject.getWorkstationNameEnum() ===
Enums.RERUN_EMULATOR)
2833 || (viewobject.getWorkstationNameEnum() ===
Enums.TRAINING_WORKSTATION)))
2834 {
2835 browsePath = viewobject.getFileDialogBrowsePath()
2836 }
2837 else
2838 {
2839 if (mountpath === workstationConfig.getUsbMountPath())
2840 {
2841 browsePath = workstationConfig.getUsbMountPath();
2842 }
2843 else if (mountpath === workstationConfig.getSecondaryMountPath())
2844 {
2845 browsePath = workstationConfig.getSecondaryMountPath();
2846 }
2847 else
2848 {
2849 browsePath = workstationConfig.getDefaultDataPath();
2850 }
2851 }
2852 if (requireUSBPath)
2853 {
2854 if (!viewobject.isPathOnUSB(browsePath))
2855 {
2856 //This error popup is displayed while exporting screenshot on Export Screenshot
screen when no USB is present.
2857 if(viewobject.getWorkstationNameEnum() !== Enums.TRAINING_WORKSTATION)
2858 {
2859 var usbErrMsg = qsTr("Mount error.\nPlease wait for some time and try
reconnecting USB drive.");
2860 createAndShowMessageBox(usbErrMsg, Enums.OK) ;
2861 }
2862 return "failed";
2863 }
2864 }
2865
2866 return launchCustomFileDialog(title, acceptMode, srcPath, nameFilter,
2867 tgtItemOnAccepted, tgtItemOnRejected, tgtItem,
modelnum, browsePath)
2868 }
2869
2870 /** Moved common code as it can be used by other file dialog functions
2871 */
2872 function launchCustomFileDialog(title, acceptMode, srcPath, nameFilter,
2873 tgtItemOnAccepted, tgtItemOnRejected, tgtItem,
modelnum, topDirPath)
2874 {
2875 if(topDirPath !== undefined)
2876 {
2877 var filepathArray;
2878 var filename;
2879
2880 filepathArray = srcPath.split("/");
2881 filename = filepathArray[filepathArray.length - 1];
2882
2883 var exist = viewobject.folderExists(topDirPath);
2884 if (!exist)
2885 {
2886 createAndShowMessageBox(qsTr("Default folder path not found."), Enums.OK);
2887 return "failed";
2888 }
2889 fileSystemItemModel.setTopDir(topDirPath)
2890 fileSystemModel.enableBackButton = false
2891 if(acceptMode !== undefined)
2892 {
2893 fileSystemModel.acceptMode = acceptMode
2894 fileSystemItemModel.setAcceptMode(acceptMode);
2895 }
2896 fileSystemModel.mimeTypeFilter = nameFilter
2897 fileSystemModel.fileDialogTitle = title
2898 fileSystemItemModel.setMimeTypeFilter(nameFilter);
2899 fileSystemItemModel.populateDirectoryContent(topDirPath);
2900 fileSystemItemModel.setDestinationFileName(filename);
2901 if(modelnum !== undefined)
2902 {
2903 fileSystemModel.modelNumber = modelnum;
2904 }
2905 fileSystemModel.srcFileUrl = srcPath;
2906 fileSystemModel.currentDirectoryPath = topDirPath
2907 fileSystemModel.currentSelectedFilePath = filename
2908 if (tgtItem !== undefined) {
2909 fileSystemModel.targetItem = tgtItem
2910 if (tgtItemOnAccepted !== undefined)
2911 {
2912 fileSystemModel.targetItemOnAccepted = tgtItemOnAccepted
2913 }
2914 if (tgtItemOnRejected !== undefined) {
2915 fileSystemModel.targetItemOnRejected = tgtItemOnRejected
2916 }
2917 }
2918 modalitem.itemComp = fileDialogComp
2919 modalitem.visible = true
2920 modalitem.closebtn.visible = false
2921 modalitem.enabled = true
2922 return "success"
2923 }
2924 return "failed"
2925 }
2926
2927 /** Created function to show file dialog for playlist screen to set its top directory
as BagData dir
2928 */
2929 function createAndShowPlaylistCustomFileDialog(title, acceptMode, srcPath, nameFilter,
2930 tgtItemOnAccepted, tgtItemOnRejected,
tgtItem, modelnum, topDirPath)
2931 {
2932 if((topDirPath !== undefined) && (topDirPath !== ""))
2933 {
2934 launchCustomFileDialog(title, acceptMode, srcPath, nameFilter,
2935 tgtItemOnAccepted, tgtItemOnRejected, tgtItem, modelnum,
topDirPath)
2936 }
2937 }
2938
2939 function initialiseAndShowBalloonPopup(pikcupText, resolutionText
2940 , okButtonVisible, colorCode, imageSource,
diverterDecisionString)
2941 {
2942 balloonPopupModel.okBtnVisible = okButtonVisible
2943 balloonPopupModel.pickupResolutionText = resolutionText
2944 balloonPopupModel.pickupText = pikcupText
2945 balloonPopupModel.balloonPopupFrameBorderColor = colorCode;
2946 balloonPopupModel.ballonPopupImagePath = imageSource
2947 if(diverterDecisionString !== undefined &&
2948 (diverterDecisionString === "BAG_JAM_AT_ZONE_7" ||
2949 diverterDecisionString === "BAG_JAM_AT_ZONE_8" ||
2950 diverterDecisionString === "TRAY_RETURN_STARVED"))
2951 {
2952 viewobject.showHideBalloonPopup(false);
2953 }
2954 else
2955 {
2956 viewobject.showHideBalloonPopup(true);
2957 }
2958 balloonPopupModel.notificationTimer.restart()
2959 }
2960
2961 //Below popup has been added to remove focus issue on screen change i.e. needed from
VTK screen to other screen
2962 function resetFocus()
2963 {
2964 if((screenName !== Enums.SETTINGS_SCREEN))
2965 {
2966 viewobject.setMainContainerFocus();
2967 // if(messageBox === undefined)
2968 {
2969 messageBox = nwStatusError.createObject();
2970 messageBox.errormsg.text = qsTr("Redirecting Screen");
2971 messageBox.btOk.visible = true
2972 messageBox.btShutDown.visible = false
2973 messageBox.btRestart.visible = false
2974 messageBox.btLogOff.visible = false
2975 messageBox.btcancel.visible = false
2976 messageBox.show();
2977 messageBox.visible = false;
2978 messageBox.close();
2979 messageBox.destroy();
2980 messageBox = undefined;
2981 }
2982 }
2983 else
2984 {
2985 viewobject.setCurrentScreenFocus();
2986 }
2987
2988 }
2989
2990 function translateUserDecision(argUserDecision)
2991 {
2992 if (argUserDecision.localeCompare("CLEAR", undefined, { sensitivity: 'base' }) === 0)
2993 {
2994 argUserDecision = qsTr("CLEAR");
2995 }
2996 if (argUserDecision.localeCompare("AUTO-CLEAR", undefined, { sensitivity: 'base' })
=== 0)
2997 {
2998 argUserDecision = qsTr("AUTO-CLEAR");
2999 }
3000 else if (argUserDecision.localeCompare("SUSPECT", undefined, { sensitivity: 'base'
}) === 0)
3001 {
3002 argUserDecision = qsTr("SUSPECT");
3003 }
3004 else if (argUserDecision.localeCompare("TIMEOUT", undefined, { sensitivity: 'base'
}) === 0)
3005 {
3006 argUserDecision = qsTr("TIMEOUT");
3007 }
3008 else if (argUserDecision.localeCompare("UNPROCESSED", undefined, { sensitivity:
'base' }) === 0)
3009 {
3010 argUserDecision = qsTr("UNPROCESSED");
3011 }
3012 return argUserDecision;
3013 }
3014
3015 function translateMachineDecision(argMachineDecision)
3016 {
3017 if (argMachineDecision.localeCompare("UNKNOWN", undefined, { sensitivity: 'base' })
=== 0)
3018 {
3019 argMachineDecision = qsTr("UNKNOWN");
3020 }
3021 else if (argMachineDecision.localeCompare("CLEAR", undefined, { sensitivity: 'base'
}) === 0)
3022 {
3023 argMachineDecision = qsTr("CLEAR");
3024 }
3025 else if (argMachineDecision.localeCompare("ALARM", undefined, { sensitivity: 'base'
}) === 0)
3026 {
3027 argMachineDecision = qsTr("ALARM");
3028 }
3029 return argMachineDecision;
3030 }
3031
3032 function translateDiverterDecision(argDiverterReason)
3033 {
3034 if (argDiverterReason.localeCompare("Clear", undefined, { sensitivity: 'base' }) ===
0)
3035 {
3036 argDiverterReason = qsTr("Clear");
3037 }
3038 else if (argDiverterReason.localeCompare("Reject", undefined, { sensitivity: 'base'
}) === 0)
3039 {
3040 argDiverterReason = qsTr("Reject");
3041 }
3042 else if (argDiverterReason.localeCompare("Timeout", undefined, { sensitivity: 'base'
}) === 0)
3043 {
3044 argDiverterReason = qsTr("Timeout");
3045 }
3046 else if (argDiverterReason.localeCompare("Lost Tracking", undefined, { sensitivity:
'base' }) === 0)
3047 {
3048 argDiverterReason = qsTr("Lost Tracking");
3049 }
3050 else if (argDiverterReason.localeCompare("Reject on Alarm Type", undefined, {
sensitivity: 'base' }) === 0)
3051 {
3052 argDiverterReason = qsTr("Reject on Alarm Type");
3053 }
3054 else if (argDiverterReason.localeCompare("Shadow Mode", undefined, { sensitivity:
'base' }) === 0)
3055 {
3056 argDiverterReason = qsTr("Shadow Mode");
3057 }
3058 else if (argDiverterReason.localeCompare("Random Reject", undefined, { sensitivity:
'base' }) === 0)
3059 {
3060 argDiverterReason = qsTr("Random Reject");
3061 }
3062 else if (argDiverterReason.localeCompare("High Threat", undefined, { sensitivity:
'base' }) === 0)
3063 {
3064 argDiverterReason = qsTr("High Threat");
3065 }
3066 else if (argDiverterReason.localeCompare("Forced Search", undefined, { sensitivity:
'base' }) === 0)
3067 {
3068 argDiverterReason = qsTr("Forced Search");
3069 }
3070 else if (argDiverterReason.localeCompare("Unlink", undefined, { sensitivity: 'base'
}) === 0)
3071 {
3072 argDiverterReason = qsTr("Unlink");
3073 }
3074 else if (argDiverterReason.localeCompare("Forced Divert", undefined, { sensitivity:
'base' }) === 0)
3075 {
3076 argDiverterReason = qsTr("Forced Divert");
3077 }
3078 return argDiverterReason;
3079 }
3080
3081 function toggleTransferMediaButtonStatus(buttonStatus)
3082 {
3083 navigationModelData.componentpropertychages("btImageImport",buttonStatus,"isEnable");
3084 }
3085
3086 function showSSIConfirmationBox()
3087 {
3088 var msg = qsTr("You are accessing a U.S. Government (USG) Information System (IS)
that is<br />
3089 provided for USG-authorized use only. By using this IS (which
includes any<br />
3090 device attached to this IS), you consent to the following
conditions:<br /><br />
3091 -The USG routinely intercepts and monitors communications on this
IS for<br />
3092 purposes including, but not limited to, penetration testing, COMSEC
monitoring,<br />
3093 network operations and defense, personnel misconduct (PM), law
enforcement<br />
3094 (LE), and counterintelligence (CI) investigations.<br /><br />
3095
3096 -At any time, the USG may inspect and seize data stored on this
IS.<br /><br />
3097
3098 -Communications using, or data stored on, this IS are not private,
are subject
3099 to routine monitoring, interception, and search, and may be
disclosed or used
3100 for any USG-authorized purpose.<br /><br />
3101
3102 -This IS includes security measures (e.g., authentication and
access controls)
3103 to protect USG interests--not for your personal benefit or
privacy.<br /><br />
3104
3105 -Notwithstanding the above, using this IS does not constitute
consent to PM, LE<br />
3106 or CI investigative searching or monitoring of the content of
privileged<br />
3107 communications, or work product, related to personal representation
or services<br />
3108 by attorneys, psychotherapists, or clergy, and their assistants.
Such<br />
3109 communications and work product are private and confidential. See
User<br />
3110 Agreement for details.");
3111 if(workstationConfig.getssibanner() === true)
3112 {
3113 createAndShowMessageBoxForSSIBanner(msg, Enums.OK, true, false,
ssibannerconfirmation, qsTr("TSA Banner"));
3114 }
3115 else
3116 {
3117 postSSIConfirmation();
3118 }
3119 }
3120
3121 Item {
3122 id: ssibannerconfirmation
3123 function messageDialogOnAccepted()
3124 {
3125 postSSIConfirmation();
3126 }
3127 }
3128
3129 function postSSIConfirmation()
3130 {
3131 if (viewobject.getWorkstationNameEnum() === Enums.OSR_WORKSTATION)
3132 {
3133 screenchange(Enums.BAGSCREENING_SCREEN)
3134 }
3135 else if (viewobject.getWorkstationNameEnum() === Enums.SEARCH_WORKSTATION)
3136 {
3137 if(viewobject.getDefaultScreen() === Enums.SEARCH_BAG_SCREEN)
3138 {
3139 screenchange(Enums.SEARCH_BAG_SCREEN);
3140 }
3141 else
3142 {
3143 screenchange(Enums.SEARCH_SCREEN);
3144 }
3145 }
3146 else if (viewobject.getWorkstationNameEnum() === Enums.SUPERVISOR_WORKSTATION)
3147 {
3148 var res = ulmObject.validateFeature("btSupervisorScreen")
3149 if(res)
3150 {
3151 viewobject.onCommandClick(Enums.SUPERVISOR_AUTHENTICATION_MODEL,"");
3152 }
3153 screenchange(Enums.SUPERVISOR_SCREEN)
3154 }
3155 else if (viewobject.getWorkstationNameEnum() === Enums.TRAINING_WORKSTATION)
3156 {
3157 screenchange(Enums.TRAINING_VIEWER_SCREEN)
3158 }
3159 logintoServers(-1);
3160 }
3161
3162
3163 Timer {
3164 id:timer
3165 interval: 1;
3166 repeat: false
3167 running: false
3168 onTriggered:
3169 {
3170 osrworkspacemodel.isvolumerendered = osrworkspacemodel.tempisvolumerendered
3171
3172 }
3173 }
3174 function invokeCentralscreenchangeOfWM(screenName)
3175 {
3176 centralpnlloader.item.centralscreenchange(screenName);
3177 }
3178
3179 function setUsernamePassword(user, pass)
3180 {
3181 navigationModelData.username = user
3182 navigationModelData.password = pass
3183 navigationModelData.temp_user = user
3184 navigationModelData.temp_pass = pass
3185 navigationModelData.userloggedindate = new Date()
3186 }
3187
3188 Item {
3189 id: loginPopupId
3190 function messageDialogOnAccepted()
3191 {
3192 rootwindow.resetLoginScreenFocus()
3193 }
3194 }
3195
3196 Timer {
3197 id:busyindicatortimeout
3198 interval: 15000;
3199 repeat: false
3200 running: false
3201 onTriggered:
3202 {
3203 isNetworkSwitched = false;
3204 enableBusyIndicator(false);
3205 stop();
3206
3207 }
3208 }
3209 function enableBusyIndicator(setval)
3210 {
3211 if(setval)
3212 {
3213 busyIndicatorModalItem.itemComp = busyIndicatorcomp;
3214 busyindicatortimeout.start();
3215
3216 }
3217 else
3218 {
3219 if(busyIndicatorModalItem.itemComp !== busyIndicatorcomp)
3220 {
3221 return;
3222 }
3223 }
3224 if(isNetworkSwitched === false)
3225 {
3226 busyIndicatorModalItem.visible = setval;
3227 busyIndicatorModalItem.closebtn.visible = false;
3228 busyIndicatorModalItem.enabled = setval
3229 }
3230 }
3231
3232 function closePopupDialog()
3233 {
3234 viewobject.closeScreenshot();
3235 if(saveScreenshotDialog === true)
3236 {
3237 saveScreenshotDialog = false;
3238 viewobject.closeDialog();
3239 }
3240 }
3241
3242 function sendApiRequest(modelno)
3243 {
3244 var message = navigationModelData.username + ","+navigationModelData.password;
3245 var messageForLiveControl = "{\"user\":\"" + navigationModelData.username +
"\",\"password\":\""+ navigationModelData.password + "\"}";
3246 if((modelno >= Enums.SUPERVISOR_AUTHENTICATION_MODEL) && (modelno <
Enums.SUPERVISOR_MODEL_END))
3247 {
3248 viewobject.onCommandClick(Enums.SUPERVISOR_AUTHENTICATION_MODEL,"");
3249 }
3250 else if((modelno >= Enums.REPORT_ADMIN_AUTHENTICATION_MODEL) && (modelno <
Enums.REPORT_ADMIN_MODELS_END))
3251 {
3252 viewobject.onCommandClick(Enums.REPORT_ADMIN_AUTHENTICATION_MODEL,"")
3253 }
3254 else if((modelno >= Enums.USERADMIN_AUTHENTICATION_MODEL) && (modelno <
Enums.USERADMIN_MODELS_END))
3255 {
3256 viewobject.onCommandClick(Enums.USERADMIN_AUTHENTICATION_MODEL, message)
3257 }
3258 else if((modelno >= Enums.ANTIVIRUS_AUTHENTICATION_MODEL) && (modelno <
Enums.ANTIVIRUS_MODELS_END))
3259 {
3260 viewobject.onCommandClick(Enums.ANTIVIRUS_AUTHENTICATION_MODEL,"")
3261 }
3262 else if((modelno >= Enums.UPDATE_TIP_CONFIG_TASK_STATUS_MODEL) && (modelno <
Enums.TIP_CONFIG_ADMIN_MODELS_END))
3263 {
3264 viewobject.onCommandClick(Enums.TIP_CONFIG_ADMIN_AUTHENTICATION_MODEL,"")
3265 }
3266 else if((modelno >= Enums.UPDATE_TIP_LIB_CONFIG_TASK_STATUS_MODEL) && (modelno <
Enums.TIP_LIB_CONFIG_ADMIN_MODELS_END))
3267 {
3268 viewobject.onCommandClick(Enums.TIP_LIB_CONFIG_ADMIN_AUTHENTICATION_MODEL,"")
3269 }
3270 else if((modelno >= Enums.AUTHENTICATIN_MODEL) && (modelno <
Enums.SCANNERADMIN_MODELS_END))
3271 {
3272 viewobject.onCommandClick(Enums.AUTHENTICATIN_MODEL,messageForLiveControl)
3273 }
3274 }
3275
3276 function utilitiesToDefaultScreen(serverId, statusCode)
3277 {
3278 var scannerAPIs = [Enums.KEYCONSOLE_MODEL,
3279 Enums.SDSW_HEARTBEAT_MODEL,
3280 Enums.ACCESSPANEL_MODEL,
3281 Enums.BHSSTATUS_MODEL,
3282 Enums.CONVEYORANDGANTRY_MODEL,
3283 Enums.SAFETYCONTROLLERFAULTS_MODEL,
3284 Enums.ESTOPS_MODEL,
3285 Enums.MOTIONCONTROLDATA_MODEL,
3286 Enums.POWERLINKINVERTERSTATUS_MODEL,
3287 Enums.POWERLINKINVERTERDISCRETESTATUS_MODEL,
3288 Enums.POWERLINKINVERTERSERIALFAULTS_MODEL,
3289 Enums.POWERLINKINVERTERSERIALSTATUS_MODEL,
3290 Enums.POWERLINKRECTIFIERSTATUS_MODEL,
3291 Enums.RCBGANTRYSTATUS_MODEL,
3292 Enums.SCANNERBAGPROCESSEDMODEL,
3293 Enums.SCANNERCALIBRATION_MODEL,
3294 Enums.SCANNERTEMPHUMIDITY_MODEL,
3295 Enums.XRAYCOMMANDSTATUS_MODEL,
3296 Enums.XRAYDATA_MODEL,
3297 Enums.XRAYFAULTS_MODEL,
3298 Enums.XRAYTIME_MODEL,
3299 Enums.XRAYSTATUS_MODEL,
3300 Enums.IMAGE_QUALITY_MASS_VALUE_MODEL,
3301 Enums.MISCELLANEOUS_MODEL,
3302 Enums.ERROR_LOG_SEARCH_MODEL,
3303 Enums.PARAMETER_MODEL,
3304 Enums.PARAMETER_SEND_MODEL,
3305 Enums.PARAMETER_XSD_MODEL,
3306 Enums.COMMAND_RADIATIONSURVEY_MODEL,
3307 Enums.COMMAND_RADIATIONSURVEY_CANCEL_MODEL,
3308 Enums.COMMAND_IMAGEQUALITY_TEST_MODEL,
3309 Enums.COMMAND_IMAGEQUALITY_CANCEL_MODEL,
3310 Enums.COMMAND_MOTIONCONTROLCONVEYOR_MODEL,
3311 Enums.COMMAND_MOTIONCONTROLGANTRY_MODEL,
3312 Enums.COMMAND_SCANFLUSHCONTROL_MODEL,
3313 Enums.INSTALLED_ALARM_LIB_MODEL,
3314 Enums.INSTALLABLE_ALARM_LIB_MODEL,
3315 Enums.COMMAND_INSTALL_ALARM_LIB]
3316
3317 for(var i=0; i<scannerAPIs.length; i++)
3318 {
3319 if((scannerAPIs[i] === serverId) && (statusCode ===
ErrorEnum.NETWORK_SESSION_OUT))
3320 {
3321 isSdswAuthenticate = false
3322 var messageForLiveControl = "{\"user\":\"" + navigationModelData.username +
"\",\"password\":\""+ navigationModelData.password + "\"}";
3323 if(viewobject.getWorkstationNameEnum() !== Enums.SUPERVISOR_WORKSTATION)
3324 {
3325 viewobject.onCommandClick(Enums.AUTHENTICATIN_MODEL, messageForLiveControl)
3326 }
3327 break
3328 }
3329 }
3330 }
3331
3332 }
3333