11 $monLibrary = dirname(__FILE__) .
"/../library";
12 $sharedLibrary = dirname(__FILE__) .
"../../shared/library";
13 require_once(
"$monLibrary/cu_top.i");
14 require_once(
"$monLibrary/ck_hticket.i");
15 require_once(
"$sharedLibrary/commonJsFunctions.i");
17 if (!CheckPerm($link, $Hu, basename($_SERVER[
'SCRIPT_NAME']), $_SERVER[
'REMOTE_ADDR'])) {
18 header(
"Location: /hcuadm/hcu_noperm.prg");
22 $string = array(
"filter" => FILTER_SANITIZE_STRING);
23 $params = array(
"cu" => $string);
24 $vars = array(
"cu" =>
"");
25 HCU_ImportVars($vars,
"", $params);
27 $cu = HCU_array_key_value(
"cu", $vars);
28 $cu = $cu ===
false ?
"" : trim($cu);
32 header(
"Location: /hcuadm/hcu_noperm.prg");
40 function GetCurrentServer() {
41 if (getenv(
"DEVMODE") ==
"1") {
42 $serverHost =
"localhost:8000";
44 $serverHost = trim(getenv(
"TICKET_DOMAIN"));
46 return "Odyssey (" . $serverHost .
")";
50 function IsDevMode() {
51 if(getenv(
"DEVMODE") ==
"1" && trim(getenv(
"TICKET_DOMAIN")) ==
"") {
62 function GetOperationsList() {
63 return array(
"migrate",
"summary",
"clean");
72 function GetOperationsListOnlyMigrate() {
73 return array(
"migrate");
77 $migrationMonitorLock =
"/home/" . strtolower($cu) .
"/tmp/.ody_migr_monitor_lock";
84 printMonitorPageTop(
"Data Migration from Mammoth [ " . strtoupper($cu) .
"]", $homecuKendoVersion, $cloudfrontDomainName, $bootstrapVersion, $fontawesomeVersion,
true);
87 printMonitorPageMiddle(
"Data Migration from Mammoth [" . strtoupper($cu) .
"]",
null);
94 <script type=
"text/javascript">
99 window.onbeforeunload =
function() {
100 return "Are you sure you want to refresh the page?";
104 history.pushState(
null,
null,
'no-back-button');
105 window.addEventListener(
'popstate',
function(event) {
106 history.pushState(
null,
null,
'no-back-button');
111 var fetchLogIntervalVar;
113 var firstLogFetchOffsetTime = 2;
115 var refreshWindow = 15;
117 var hideProgressBar = 4
119 var hcuadmOdyMigrServerURL =
"/hcuadm/ody_migr_server.prg";
122 <?php getShowWaitFunctions(); ?>
127 function updateAllDoneMultiCheckList(showHideWaitWindow){
128 if (showHideWaitWindow) {
132 "post_purpose":
"get_wip_done_list",
133 "cu":
"<?php echo $cu; ?>" 138 url: hcuadmOdyMigrServerURL,
139 data: data_lock_list,
142 .done(
function (response) {
144 if (response[
"success"] ==
true) {
145 lockFiles = response[
"done_list"];
147 var sa_index = lockFiles.indexOf(
"switchaccounts");
149 lockFiles.splice(sa_index, 1);
151 $(
"#deleteSelectedCategoriesBtn").html(
" Clean Selected Categories")
154 displayMessageAlert(response[
"message"],
"add",
"danger");
158 $(
"#deleteAllCleanUpList").data(
"kendoMultiSelect").value([]);
160 var ds =
new kendo.data.DataSource({
163 $(
"#deleteAllCleanUpList").data(
"kendoMultiSelect").setDataSource(ds)
167 if (lockFiles.length > 0) {
168 $(
"#deleteSelectedCategoriesBtn").prop(
'disabled',
false);
170 $(
"#deleteSelectedCategoriesBtn").prop(
'disabled',
true);
174 .always(
function (response) {
175 if (showHideWaitWindow) {
178 updateStartButtonVisibleStatus(showHideWaitWindow);
186 function updateDataCategoriesList(showHideWaitWindow) {
187 if (showHideWaitWindow) {
191 "post_purpose":
"update_categories_list",
192 "cu":
"<?php echo $cu; ?>" 197 url: hcuadmOdyMigrServerURL,
198 data: data_server_list,
201 .done(
function (response) {
202 var categories_list = [];
203 if (response[
"success"] ==
true) {
204 categories_list = response[
"categories_list"];
207 displayMessageAlert(response[
"message"],
"add",
"danger");
210 var categoriesDDL = $(
"#categoriesDDL").data(
"kendoDropDownList")
211 current_cat_value = categoriesDDL.value()
213 var categories_data_source =
new kendo.data.DataSource({
214 data: categories_list
216 categoriesDDL.setDataSource(categories_data_source)
217 if (categories_list.length > 0) {
219 if (categories_list.includes(current_cat_value)) {
220 categoriesDDL.value(current_cat_value)
222 categoriesDDL.value(categories_list[0])
224 categoriesDDL.trigger(
"change")
226 }).always(
function (response) {
227 if (showHideWaitWindow) {
237 function populateServerList(showHideWaitWindow) {
238 if(showHideWaitWindow) {
242 "post_purpose":
"update_server_list",
243 "cu":
"<?php echo $cu; ?>" 248 url: hcuadmOdyMigrServerURL,
249 data: data_server_list,
252 .done(
function (response) {
254 if (response[
"success"] ==
true) {
255 server_list = response[
"server_list"];
257 var serversDDL = $(
"#serversDDL").data(
"kendoDropDownList")
259 var server_data_source =
new kendo.data.DataSource({
263 serversDDL.setDataSource(server_data_source)
265 if (server_list.length > 0) {
266 serversDDL.value(server_list[0])
267 serversDDL.trigger(
"change")
270 displayMessageAlert(response[
"message"],
"add",
"danger");
273 }).always(
function (response) {
274 if(showHideWaitWindow) {
284 function resetMonitorLogArea() {
285 $(
"#logs-textarea").html(
'')
286 $(
"#migration-status").hide()
292 function setMonitorLogArea() {
293 $(
"#migration-status").show()
294 var currentDateTime = getCurrentDateTime();
296 currentDateTime = currentDateTime.replace(/^\s\(|\)$/g,
'');
297 $(
"#logs-display-datetime").html(
"<strong>" + currentDateTime +
"</strong>");
303 function updatePublicHtmlResources(server) {
304 if (server ==
"www4" || 1 == <?php echo IsDevMode(); ?>) {
305 displayMessageAlert(
"Updating `public_html` is not applicable in Dev Mode ('" + server +
"').",
311 "post_purpose":
"fix_public_html",
312 "cu":
"<?php echo $cu; ?>",
313 "from" : server +
".homecu.net",
314 "to":
"my.homecu.net" 319 url: hcuadmOdyMigrServerURL,
320 data: data_fix_phtml,
324 .done(
function (response) {
325 msg = response[
"message"];
327 if(response[
"success"]) {
328 alert_level =
"success" 330 alert_level =
"danger";
332 displayMessageAlert(msg,
"add", alert_level);
334 .always(
function (response) {
344 function cleanUpSelectedCategories() {
347 resetIntervalAutoLogFetch()
349 var deleteDoneList = $("
#deleteAllCleanUpList").data("kendoMultiSelect").value() 350 if (deleteDoneList.length > 0) {
351 data_delete_lock_history = {
352 "post_purpose":
"clean_all_categories",
353 "cu":
"<?php echo $cu; ?>",
354 "delete_done_list": deleteDoneList
359 url: hcuadmOdyMigrServerURL,
360 data: data_delete_lock_history,
364 .done(
function (response) {
365 msg = response[
"message"];
367 if(response[
"success"]) {
368 alert_level =
"success" 370 alert_level =
"danger";
373 resetMonitorLogArea();
374 $(
"#progress-bar-container").removeClass(
'hidden');
375 $(
"#progress-bar-container").addClass(
'hidden');
377 setHtmlFormElements();
378 $(
"#runMigrationBtn").prop(
"disabled",
false);
380 displayMessageAlert(msg,
"add", alert_level);
381 $(
"#finalMigrationStatusDiv").html(
"<u><b>" + msg + getCurrentDateTime() +
"</b></u>");
383 .always(
function (response) {
384 UpdateMigrationOptions(
false)
388 displayMessageAlert(
"No category(ies) selected for clean up.",
"add",
"warning");
397 function setUpOperationsDDL(cat_val, ev){
398 if (cat_val ==
"switchaccounts") {
399 opList = <?php echo HCU_JsonEncode(GetOperationsListOnlyMigrate()); ?>;
401 opList = <?php echo HCU_JsonEncode(GetOperationsList()); ?>;
404 var operations_data_source =
new kendo.data.DataSource({
408 $(
"#operationsDDL").data(
"kendoDropDownList").setDataSource(operations_data_source)
410 if (ev !=
"cascade" && opList.length > 0) {
411 $(
"#operationsDDL").data(
"kendoDropDownList").value(opList[0])
419 function updateHomeBankingInfoText(showHideWaitWindow) {
420 if(showHideWaitWindow) {
424 "post_purpose":
"display_hb_info_text",
425 "cu":
"<?php echo $cu; ?>" 430 url: hcuadmOdyMigrServerURL,
434 .done(
function (response) {
435 var msg = response[
"message"];
437 if (response[
"success"] ==
true) {
438 $(
"#cuadmin-no-info").removeClass(
"hidden").addClass(
"hidden");
439 $(
"#cuadmin-info").removeClass(
"hidden");
441 if (response[
"show_offline_status"] ==
true) {
442 $(
"#cuadmin-offlinestat-info").removeClass(
"hidden");
443 $(
"#cuadmin-offline-status").text(response[
"offlinestat"]);
445 $(
"#cuadmin-offlinestat-info").removeClass(
"hidden").addClass(
"hidden");
448 if(response[
"CU2_PROCRECUR"] ==
"CHECKED") {
449 $(
"#cuadmin-repeating-transfers").text(
"ON")
451 $(
"#cuadmin-repeating-transfers").text(
"OFF")
454 if (response[
"CU2_ALLOW_MBR_ALERTS"] ==
"CHECKED") {
455 $(
"#cuadmin-alert-processing").text(
"ON")
457 $(
"#cuadmin-alert-processing").text(
"OFF")
461 $(
"#cuadmin-info").addClass(
"hidden");
462 $(
"#cuadmin-no-info").removeClass(
"hidden");
463 $(
"#cuadmin-no-info").text(msg);
466 }).always(
function (response) {
467 if(showHideWaitWindow) {
476 function updateFinalMigrCheckBox(showHideWaitWindow) {
477 if (showHideWaitWindow) {
481 "post_purpose":
"get_final_migr_flag",
482 "cu":
"<?php echo $cu; ?>" 487 url: hcuadmOdyMigrServerURL,
488 data: data_lock_unlock,
491 .done(
function (response) {
492 if (response[
"success"] ==
true) {
493 $(
"#final-migration-label").removeClass(
"text-danger");
494 $(
"#final-migration-label").removeClass(
"text-success");
496 if (response[
"final_migr_resp"][
"show_final_migr_button"] ==
true) {
497 $(
"#final-migration").prop(
"disabled",
false)
498 $(
"#final-migration-label").html(
"Ready for Final Migration!");
499 $(
"#final-migration-label").addClass(
"text-success");
502 $(
"#final-migration").prop(
"disabled",
true)
503 $(
"#final-migration-label").html(
"NOT Ready for Final Migration!");
504 $(
"#final-migration-label").addClass(
"text-danger");
507 $(
"#final-migration").prop(
"checked",
false)
509 handleFinalMigrationCheckboxClick()
511 var true_fa = ' <i class="fa fa-check-square-o text-success"></i>';
512 var false_fa = ' <i class="fa fa-times-rectangle text-danger"></i>'
514 if (response["final_migr_resp"]["SettingsAdminLocked"] == true) {
515 $(
"#final-mgr-settings-locked").html(
'1. Are <i>settings</i> & <i>admin</i> migrated & locked?' + true_fa);
517 $(
"#final-mgr-settings-locked").html(
'1. Are <i>settings</i> & <i>admin</i> migrated & locked?' + false_fa);
520 if (response[
"final_migr_resp"][
"memdata_gt0"] ==
true && response[
"final_migr_resp"][
"memdata_is_clean"] ==
true) {
521 $(
"#final-mgr-memdata-ready").html(
'2. Is <i>memdata</i> ready?' + true_fa);
523 $(
"#final-mgr-memdata-ready").html(
'2. Is <i>memdata</i> ready?' + false_fa);
525 if (response[
"final_migr_resp"][
"memdata_gt0"] ==
true) {
526 $(
"#final-mgr-memdata-gt0").html(
'Tested <i>memdata</i> at least once? <i class="text-success">Yes</i>');
528 $(
"#final-mgr-memdata-gt0").html(
'Tested <i>memdata</i> at least once? <i class="text-danger">No</i>');
531 if (response[
"final_migr_resp"][
"memdata_is_clean"] ==
true) {
532 $(
"#final-mgr-memdata-clean").html(
'Is <i>memdata</i> in clean state? <i class="text-success">Yes</i>');
534 $(
"#final-mgr-memdata-clean").html(
'Is <i>memdata</i> in clean state? <i class="text-danger">No</i>');
537 if (response[
"final_migr_resp"][
"memhist_gt0"] ==
true && response[
"final_migr_resp"][
"memhist_is_clean"] ==
true) {
538 $(
"#final-mgr-memhist-ready").html(
'3. Is <i>memhist</i> ready?' + true_fa);
540 $(
"#final-mgr-memhist-ready").html(
'3. Is <i>memhist</i> ready?' + false_fa);
543 if (response[
"final_migr_resp"][
"memhist_gt0"] ==
true) {
544 $(
"#final-mgr-memhist-gt0").html(
'Tested <i>memhist</i> at least once? <i class="text-success">Yes</i>');
546 $(
"#final-mgr-memhist-gt0").html(
'Tested <i>memhist</i> at least once? <i class="text-danger">No</i>');
549 if (response[
"final_migr_resp"][
"memhist_is_clean"] ==
true) {
550 $(
"#final-mgr-memhist-clean").html(
'Is <i>memhist</i> in clean state? <i class="text-success">Yes</i>');
552 $(
"#final-mgr-memhist-clean").html(
'Is <i>memhist</i> in clean state? <i class="text-danger">No</i>');
555 if (response[
"final_migr_resp"][
"no_wip_exists"] ==
true) {
556 $(
"#final-mgr-nowip").html(
'4. Any in-progress migration(s)? <i class="text-success">No</i> ' + true_fa);
558 $(
"#final-mgr-nowip").html(
'4. Any in-progress migration(s)? <i class="text-danger">Yes</i> ' + false_fa);
561 if ($(
"#check-switch-accounts").is(
":checked")) {
562 $(
"#final-mgr-migrate-switchaccounts").html(
'Is <i>SWITCHACCOUNTS</i> part of final migration?' +
' <i class="text-success">Yes</i>');
564 $(
"#final-mgr-migrate-switchaccounts").html(
'Is <i>SWITCHACCOUNTS</i> part of final migration?' +
' <i class="text-danger">No</i>');
567 }).fail(
function (response) {
568 $(
"#final-migration").prop(
"disabled",
true)
570 .always(
function (response) {
571 if (showHideWaitWindow) {
580 function lockUnlockCatGroupAction(cat_group, lock_or_unlock) {
583 "post_purpose":
"lock_unlock_cat_group",
584 "cu":
"<?php echo $cu; ?>",
585 "cat_group" : cat_group,
586 "lock_or_unlock": lock_or_unlock
591 url: hcuadmOdyMigrServerURL,
592 data: data_lock_unlock,
596 .done(
function (response) {
597 msg = response[
"message"];
599 if(response[
"success"]) {
600 alert_level =
"success" 602 alert_level =
"danger";
604 displayMessageAlert(msg,
"add", alert_level);
606 .always(
function (response) {
615 function changeBtnColorToLock(cat_group, btnId){
616 $(btnId).removeClass(
"btn-danger");
617 $(btnId).removeClass(
"btn-success");
618 $(btnId).html(
'<i class="fa fa-lock"></i> (Unlocked) Click to prevent ' + cat_group +
' deletion.');
619 $(btnId).addClass(
"btn-danger");
625 function changeBtnColorToUnlock(cat_group, btnId){
626 $(btnId).removeClass(
"btn-danger");
627 $(btnId).removeClass(
"btn-success");
628 $(btnId).html(
'<i class="fa fa-unlock"></i> (Locked) Click to allow ' + cat_group +
' deletion.');
629 $(btnId).addClass(
"btn-success");
635 function toggleLockUnlock(cat_group){
637 if (cat_group ==
"Settings") {
638 btnId =
"#lockUnlockSettingsMigrationBtn";
640 }
else if (cat_group ==
"Admin"){
641 btnId =
"#lockUnlockAdminMigrationBtn";
645 $(btnId).click(
function() {
648 if($(btnId).html().includes(
'Click to prevent ' + cat_group)) {
649 changeBtnColorToUnlock(cat_group, btnId);
650 lockUnlockCatGroupAction(cat_group,
"lock");
652 changeBtnColorToLock(cat_group, btnId)
653 lockUnlockCatGroupAction(cat_group,
"unlock");
655 updateFinalMigrCheckBox(
true)
663 function handleFinalMigrationCheckboxClick() {
664 var serversddl = $(
"#serversDDL").data(
"kendoDropDownList");
665 var categoriesddl = $(
"#categoriesDDL").data(
"kendoDropDownList");
666 var operationsddl = $(
"#operationsDDL").data(
"kendoDropDownList");
668 if ($(
"#final-migration").is(
":checked")) {
669 $(
"#runMigrationBtn").html(
'<i class="fa fa-plug"></i> Start Final Migration')
670 serversddl.enable(
false)
671 categoriesddl.enable(
false)
672 operationsddl.enable(
false)
674 $(
"[name='username']").prop(
"disabled",
false).removeClass(
"k-state-disabled");
675 $(
"[name='password']").prop(
"disabled",
false).removeClass(
"k-state-disabled");
677 $(
"#runMigrationBtn").html(
'<i class="fa fa-plug"></i> Start')
678 serversddl.enable(
true)
679 categoriesddl.enable(
true)
680 operationsddl.enable(
true)
681 categoriesddl.trigger(
"change");
682 operationsddl.trigger(
"change");
685 if (operationsddl.value() ==
"migrate") {
686 $(
"[name='username']").prop(
"disabled",
false).removeClass(
"k-state-disabled");
687 $(
"[name='password']").prop(
"disabled",
false).removeClass(
"k-state-disabled");
689 $(
"[name='username']").prop(
"disabled",
true).addClass(
"k-state-disabled");
690 $(
"[name='password']").prop(
"disabled",
true).addClass(
"k-state-disabled");
698 function resetMigrationState() {
700 data_reset_migr_state = {
701 "post_purpose":
"reset_migration_state",
702 "cu":
"<?php echo $cu; ?>" 707 url: hcuadmOdyMigrServerURL,
708 data: data_reset_migr_state,
712 .done(
function (response) {
713 msg = response[
"message"];
715 if(response[
"success"]) {
716 alert_level =
"success" 717 showFinalMigrationElements(msg)
718 UpdateMigrationOptions(
false)
721 alert_level =
"danger";
723 displayMessageAlert(msg,
"add", alert_level);
725 .always(
function (response) {
734 function fetchCompletedLogHistory(category, operation) {
736 var server = $("
#serversDDL").data("kendoDropDownList").value(); 738 "post_purpose":
"fetch_log_history_only",
739 "cu":
"<?php echo $cu; ?>",
740 "category": category,
741 "operation": operation
745 url: hcuadmOdyMigrServerURL,
746 data: data_log_history,
750 .done(
function (response) {
751 alert_msg = response[
"message"];
752 alert_level =
"success";
753 var log_header_prefix = getAlertPrefix(category, operation,
false);
754 $(
"#current-log-header").html(log_header_prefix)
755 if (response[
"success"] ==
true) {
756 var logs_content = response[
"log_content"]
757 var file_does_not_exist = response[
"does_not_exist"];
759 if (file_does_not_exist ==
false) {
762 for (lg_index in logs_content) {
763 lg_line = logs_content[lg_index]
765 if (lg_line.includes(
"ERROR")) {
766 lg_line_color =
"danger" 769 else if(lg_line.includes(
"WARNING")){
770 lg_line_color =
"warning" 774 lg_line_color =
"success" 777 lg_line =
'<div class="text-' + lg_line_color +
'"><i class="fa fa-chevron-circle-right"></i> ' 778 + lg_line +
'</div><br>' 781 $(
"#logs-textarea").html(lg_line)
783 $(
"#logs-textarea").append(lg_line)
788 alert_level =
"danger";
790 displayMessageAlert(alert_msg,
"add", alert_level);
792 .fail(
function (response) {
793 console.log(response);
795 .always(
function (response) {
804 function handleClickEvents() {
810 <?php
if(IsDevMode()) { ?>
811 $(
"#deleteSelectedCategoriesBtn").on(
"click",
function() {
812 kendo.confirm(
"Are you sure you want to clean up selected categories?")
815 cleanUpSelectedCategories();
818 console.log(
"Cancel clean up selected categories action!")
827 $(
"#updatePublicHtml").on(
"click",
function() {
828 server = $(
"#serversDDL").data(
"kendoDropDownList").value();
829 kendo.confirm(
"Are you sure you want to update public_html embedded links?")
832 updatePublicHtmlResources(server);
835 console.log(
"Cancel delete history action!")
839 $(
"#accountCrossRefBtn").on(
"click",
function() {
841 window.open(hcuadmOdyMigrServerURL +
"?get_purpose=acc_cross_ref&cu=<?php echo $cu; ?>",
"Cross Account");
844 toggleLockUnlock(
"Settings");
845 toggleLockUnlock(
"Admin");
851 $(
"#get-log-history").click(
function() {
852 var option = $(
"#loghistoryDDL").data(
"kendoDropDownList").value();
853 var res = option.split(
"-");
854 var operation = res[0];
855 var category = res[1];
857 fetchCompletedLogHistory(category, operation);
866 $(
"#runMigrationBtn").on(
"click",
function() {
867 if ($.homecuValidator.validate()) {
868 var server = $(
"#serversDDL").data(
"kendoDropDownList").value().trim();
869 var category = $(
"#categoriesDDL").data(
"kendoDropDownList").value().trim();
870 var operation = $(
"#operationsDDL").data(
"kendoDropDownList").value().trim();
871 var cu =
"<?php echo strtoupper($cu); ?>";
873 var confirmation_msg =
"<b class='text-info'>[Regular Migration Operation] Please confirm that you want to perform '" + operation +
"-" + category +
"' for " + cu +
".</b>";
874 var is_final_migr =
false;
876 if ($(
"#final-migration").is(
":checked")) {
877 is_final_migr =
true;
879 confirmation_msg =
"<b class='text-info'>[Final Migration] Data categories to be migrated: 'memdata', 'memhist', ['loanapp']";
881 if ($(
"#check-switch-accounts").is(
":checked")) {
882 confirmation_msg +=
", 'switchaccounts'";
885 confirmation_msg +=
". Credit Union: " + cu +
". Please confirm.</b>";
889 displayMessageAlert(
"Invalid input. Source Server cannot be empty. ",
"add",
"danger")
891 kendo.confirm(confirmation_msg)
893 var username = $(
"[name='username']").val().trim();
896 var password = btoa($(
"[name='password']").val().trim());
898 var migr_initiated =
true;
899 $(
"#runMigrationBtn").prop(
"disabled",
true)
902 if (is_final_migr ==
true) {
904 operation =
"migrate" 906 var initiateMigrationAjaxCallerObject = InitFinalMigrationOperation(server, username, password);
910 if (category !=
"" && operation !=
"") {
911 var initiateMigrationAjaxCallerObject = InitMigrationOperation(server, operation, category, username, password);
913 migr_initiated =
false;
914 displayMessageAlert(
"You must provide both data category and data operation input. ",
"add",
"danger")
918 if (migr_initiated ==
true) {
919 initiateMigrationAjaxCallerObject
920 .done(
function (response) {
921 var alert_prefix = getAlertPrefix(category, operation,
true);
923 var msg = response[
"message"]
924 if (response[
"success"] ==
true) {
925 if(is_final_migr ==
true) {
926 $(
"#final-migration-checklist-wrapper").css(
'display',
'none')
928 disableSettingsButtonsSetTo(
true);
929 autoRefreshLog(category, operation, is_final_migr);
930 alert_level =
"success";
932 updateStartButtonVisibleStatus(
false)
933 alert_level = "danger";
935 displayMessageAlert(alert_prefix + msg, "add", alert_level)
940 updateStartButtonVisibleStatus(
false)
944 displayMessageAlert(
"Invalid input. ",
"add",
"danger")
945 updateStartButtonVisibleStatus(false)
954 $("
#migration-settings").click(function() { 955 $(
'#check-migration').prop(
'checked',
false);
956 $(
"#disable-migration-button").attr(
"disabled",
"disabled");
958 $(
this).html($(
this).html().includes(
"Show Settings") ?
'<i class="fa fa-cogs"></i> Hide Settings':
'<i class="fa fa-cogs"></i> Show Settings');
959 $(
"#settings").toggle();
966 $(
"#disable-migration-button").click(
function() {
967 kendo.confirm(
"<b class='text-danger'> [DANGER ZONE]</b> This will lock the whole migration screen. If this is your first time, please contact a developer if you are unsure about this. Please do not proceed unless you are 200% sure. <br><br><b class='text-danger'>Confirming this means that we are past 'Go Live' day and data migrations have been fully completed for '<?php echo strtoupper($cu); ?>' credit union. </br>This ONLY deletes temporary files created during the MIGRATION process, and DOES NOT/MUST NOT touch anything related to PRODUCTION data on the DATABASE.</b> ")
970 resetIntervalAutoLogFetch()
971 disableMigrationMonitor()
980 $("
#check-migration").click(function(){ 981 if ($(
this).is(
":checked")) {
982 $(
"#disable-migration-button").removeAttr(
"disabled");
984 $(
"#disable-migration-button").attr(
"disabled",
"disabled");
992 $(
"#final-migration").click(
function(){
993 handleFinalMigrationCheckboxClick()
996 $(
"#check-switch-accounts").on(
"click",
function() {
997 handleSwitchAccountsLoanAppsSetting(
"switchaccounts",
"toggle_setting",
true)
1000 <?php
if(IsDevMode()) { ?>
1001 $(
"#resetFinalMigration").click(
function(){
1002 kendo.confirm(
"<b class='text-danger'> [DANGER ZONE]</b> Seeing this in PRODUCTION environment? This operation IS NOT INTENDED to be used in production environment. Please contact a developer. <br><br><b class='text-danger'>Consequences: This will DELETE EVERYTHING but settings and admin.</b> You will LOSE ALL Members, Switch Accounts, Loanapps and Member History data that you may have migrated earlier.")
1005 resetMigrationState()
1017 initializeKendoElements();
1020 $(
"#migrationDiv").removeClass(
"hidden");
1022 $.homecuValidator.setup({formValidate:
"migrationDiv", formStatusField:
"migrationStatusDiv"});
1024 $(
"#migrationDisableMsgDiv").addClass(
"hidden");
1025 $(
"#disable-migration-button").prop(
"disabled",
true);
1026 $(
"#settings").hide();
1028 resetMonitorLogArea()
1032 handleSwitchAccountsLoanAppsSetting("switchaccounts", "get_setting", false);
1035 populateServerList(false);
1038 setUpOperationsDDL("all", "init");
1041 updateDataCategoriesList(false);
1043 handleMigrationOnPageLoad(false)
1052 function resetIntervalAutoLogFetch() {
1053 if (fetchLogIntervalVar != undefined) {
1054 clearInterval(fetchLogIntervalVar)
1055 fetchLogIntervalVar = undefined;
1066 function autoRefreshLog(category, operation, is_final_migr) {
1067 $(
"#runMigrationBtn").prop(
"disabled",
true)
1069 <?php
if(IsDevMode()) { ?>
1070 $(
"#resetFinalMigration").prop(
"disabled",
true)
1073 var final_migr_include_sa =
false;
1075 var final_migr_include_loanapps =
true;
1078 if (is_final_migr) {
1079 if($(
"#check-switch-accounts").is(
":checked")) {
1080 final_migr_include_sa =
true;
1085 var show_progressbar =
true;
1089 setTimeout(
function() { fetchMigrationLog(show_progressbar,
1093 final_migr_include_sa,
1094 final_migr_include_loanapps); }, firstLogFetchOffsetTime * 1000 );
1096 var alert_msg =
"Logs will be auto-refreshed every " + refreshWindow +
" seconds until " +
"'" + operation +
"-" + category +
"' completes!";
1097 if (is_final_migr) {
1098 displayMessageAlert(
"[Final Migration] " + alert_msg,
"add",
"success")
1100 displayMessageAlert(
"[Regular Migration]" + alert_msg,
"add",
"success")
1102 resetIntervalAutoLogFetch()
1104 fetchLogIntervalVar = setInterval( function() { fetchMigrationLog(show_progressbar,
1108 final_migr_include_sa,
1109 final_migr_include_loanapps); },
1110 refreshWindow * 1000 );
1116 function reloadPage() {
1134 function disableMigrationMonitor() {
1135 var server = $(
"#serversDDL").data(
"kendoDropDownList").value();
1136 data_disable_monitor = {
1137 "post_purpose":
"disable_monitor",
1138 "cu":
"<?php echo $cu; ?>",
1144 url: hcuadmOdyMigrServerURL,
1145 data: data_disable_monitor,
1148 .done(
function (response) {
1150 if (response[
"success"] ==
true) {
1151 msg = response[
"message"] +
" Lock file location: '<?php echo $migrationMonitorLock; ?>'!" 1152 $(
"#migrationDiv").addClass(
"hidden");
1154 msg = response[
"message"] +
" Lock file's expected location is: '<?php echo $migrationMonitorLock; ?>'!" 1156 $(
"#migrationDisableMsgDiv").text(msg)
1157 $(
"#migrationDisableMsgDiv").removeClass(
"hidden");
1159 .fail(
function (response) {
1160 console.log(response);
1169 function updateProgressBar(operation_value, category_value, progress_status, progress_text, update_pb_flag) {
1170 if(update_pb_flag) {
1171 if (operation_value ==
"migrate" && category_value ==
"memdata") {
1173 if(progress_status[
"total"] == 0) {
1174 $(
"#progress-bar-text").html(
"<strong class='text-success'>Please wait, collecting progress stats... " + progress_text +
"</strong>")
1177 $(
"#progress-bar-container").removeClass(
'hidden');
1178 var progressbar = $(
"#progressbar").data(
"kendoProgressBar");
1179 if (progressbar == undefined) {
1180 $(
"#progressbar").kendoProgressBar({
1182 max: progress_status[
"total"],
1184 orientation:
"horizontal",
1185 complete:
function(e) {
1186 $(
"#progress-bar-text").html(
"<strong class='text-success'>Migration completed! " + progress_text +
"</strong>")
1192 progressbar = $(
"#progressbar").data(
"kendoProgressBar");
1194 $(
"#progress-bar-text").html(
"<strong class='text-info'>Migration in-progress: " + progress_text +
"</strong>")
1195 progressbar.value(progress_status[
"current"])
1199 $(
"#progress-bar-container").addClass(
'hidden')
1203 $(
"#progress-bar-container").addClass(
'hidden');
1212 function handleSwitchAccountsLoanAppsSetting(entity, action, showHideWaitWindow) {
1213 $(
"#check-switch-accounts").prop(
"disabled",
true);
1215 if(showHideWaitWindow) {
1219 "post_purpose":
"handle_switchaccounts_setting",
1220 "cu":
"<?php echo $cu; ?>",
1226 url: hcuadmOdyMigrServerURL,
1227 data: data_sa_setting,
1230 }).done(
function (response) {
1232 if (entity ==
"switchaccounts") {
1233 var settingsElemId = $(
"#check-switch-accounts");
1236 if (action ==
"get_setting") {
1237 if(response[
"success"] ==
true) {
1238 settingsElemId.prop(
'checked', response[
"include_or_not"])
1241 if(response[
"success"] ==
true) {
1242 if(settingsElemId.is(
":checked")) {
1243 if (entity ==
"switchaccounts") {
1244 displayMessageAlert(
"Settings Changed: Switch accounts INCLUDED in final migration.",
"add",
"success");
1245 $(
"#final-mgr-migrate-switchaccounts").html(
'Is <i>SWITCHACCOUNTS</i> part of final migration?' +
' <i class="text-success">Yes</i>');
1248 if (entity ==
"switchaccounts") {
1249 displayMessageAlert(
"Settings Changed: Switch accounts EXCLUDED in final migration.",
"add",
"success");
1250 $(
"#final-mgr-migrate-switchaccounts").html(
'Is <i>SWITCHACCOUNTS</i> part of final migration?' +
' <i class="text-danger">No</i>');
1255 }).always(
function (response) {
1256 fetchWIPAndDoneList(
false,
false);
1257 updateDataCategoriesList(
false);
1258 $(
"#check-switch-accounts").prop(
"disabled",
false);
1259 if(showHideWaitWindow) {
1268 function disableMigrationInputForm(){
1269 $(
"[name='username']").prop(
"disabled",
true).addClass(
"k-state-disabled");
1270 $(
"[name='password']").prop(
"disabled",
true).addClass(
"k-state-disabled");
1271 $(
"#serversDDL").data(
"kendoDropDownList").enable(
false)
1272 $(
"#operationsDDL").data(
"kendoDropDownList").enable(
false)
1273 $(
"#categoriesDDL").data(
"kendoDropDownList").enable(
false)
1274 $(
"#wipDDL").data(
"kendoDropDownList").enable(
false)
1280 function setHtmlFormElements(){
1281 $(
"[name='username']").prop(
"disabled",
false).removeClass(
"k-state-disabled");
1282 $(
"[name='password']").prop(
"disabled",
false).removeClass(
"k-state-disabled");
1283 $(
"#serversDDL").data(
"kendoDropDownList").enable(
true)
1284 $(
"#operationsDDL").data(
"kendoDropDownList").value(
"migrate")
1285 $(
"#categoriesDDL").data(
"kendoDropDownList").value(
"settings")
1286 $.homecuValidator.setup({formValidate:
"migrationDiv", formStatusField:
"migrationStatusDiv"});
1292 function disableSettingsButtonsSetTo(flag) {
1293 var settingsIds = [
"lockUnlockSettingsMigrationBtn",
1294 "lockUnlockAdminMigrationBtn",
"deleteSelectedCategoriesBtn",
1295 "check-switch-accounts",
"runMigrationBtn"]
1297 for (settingIndex in settingsIds) {
1298 $(
"#" + settingsIds[settingIndex]).prop(
"disabled", flag)
1302 function getCurrentDateTime() {
1303 var now =
new Date().toLocaleString(
"en-US", {timeZone:
"America/Boise"});
1304 return " (Last displayed: " + now +
" MST)";
1310 function displayStaticMigrationStatus(is_final_migr, operation_value, category_value,
1312 if (migr_state ==
"inprogress") {
1313 migr_state =
" is in progress";
1314 }
else if (migr_state ==
"completed") {
1315 migr_state =
" has completed";
1317 var op_suffix =
" '" + operation_value +
"-" + category_value +
"' " + migr_state +
". ";
1318 var msg_static =
"[Regular Migration]" + op_suffix;
1319 if (is_final_migr) {
1320 var msg_static =
"[Final Migration]" + op_suffix;
1322 $(
"#finalMigrationStatusDiv").html(
"<u><b>" + msg_static + getCurrentDateTime() +
"</b></u>");
1328 function showFinalMigrationElements(msg) {
1329 $(
"#finalMigrationStatusDiv").html(
"<u><b>" + msg + getCurrentDateTime() +
"</b></u>");
1330 $(
"#final-migration-checklist-wrapper").css(
'display',
'block')
1331 setHtmlFormElements()
1332 disableSettingsButtonsSetTo(false)
1338 function hideFinalMigrationElements(msg, final_migr_status) {
1339 FetchLogsHistoryList(
false);
1340 fetchWIPAndDoneList(
false,
true)
1342 $(
"#finalMigrationStatusDiv").html(
"<u><b>" + msg + getCurrentDateTime() +
"</b></u>");
1343 $(
"#final-migration-checklist-wrapper").css(
'display',
'none')
1345 updateHomeBankingInfoText(
false);
1346 <?php
if(IsDevMode()) { ?>
1347 $(
"#deleteAllCleanUpList").data(
"kendoMultiSelect").setDataSource([])
1349 disableSettingsButtonsSetTo(
true)
1350 disableMigrationInputForm()
1351 if (final_migr_status == "completed") {
1352 $(
"#accountCrossRefBtn").prop(
"disabled",
false);
1353 $(
"#migration-settings").prop(
"disabled",
false);
1354 <?php
if(IsDevMode()) { ?>
1355 $(
"#resetFinalMigration").prop(
"disabled",
false);
1357 }
else if (final_migr_status ==
"inprogress") {
1358 $(
"#accountCrossRefBtn").prop(
"disabled",
true);
1366 function handleMigrationOnPageLoad(showHideWaitWindow) {
1367 if(showHideWaitWindow) {
1370 data_complete_onload = {
1371 "post_purpose":
"manage_migration_state",
1372 "cu":
"<?php echo $cu; ?>",
1373 "final_migration_when":
"on_pageload" 1377 url: hcuadmOdyMigrServerURL,
1378 data: data_complete_onload,
1381 }).done(
function (response) {
1382 var msg = response[
"message"]
1383 if (response[
"success"] ==
true) {
1385 var final_migr_status = response[
"migr_status"]
1386 var migr_type = response[
"migr_type"]
1388 if (final_migr_status ==
"completed") {
1390 hideFinalMigrationElements(msg, final_migr_status)
1393 else if (final_migr_status ==
"inprogress") {
1394 var inprogress_op_cat = response[
"inprogress_category"]
1395 var op_cat_arr = inprogress_op_cat.split(
"-")
1396 var inprogress_operation= op_cat_arr[0];
1397 var inprogress_category = op_cat_arr[1];
1398 if (migr_type ==
"final") {
1399 hideFinalMigrationElements(msg, final_migr_status)
1400 autoRefreshLog(inprogress_category, inprogress_operation,
true);
1402 $(
"#final-migration-checklist-wrapper").css(
'display',
'block');
1403 autoRefreshLog(inprogress_category, inprogress_operation,
false);
1407 else if (final_migr_status ==
"invalid") {
1408 hideFinalMigrationElements(msg, final_migr_status)
1409 displayMessageAlert(msg,
"add",
"danger")
1413 UpdateMigrationOptions(
false)
1414 showFinalMigrationElements(msg)
1415 displayMessageAlert(msg, "add", "success")
1418 hideFinalMigrationElements(msg,
"invalid")
1419 displayMessageAlert(msg, "add", "danger")
1421 }).always(function (response) {
1422 if(showHideWaitWindow) {
1431 function wrapUpFinalMigration() {
1433 data_complete_final = {
1434 "post_purpose":
"manage_migration_state",
1435 "cu":
"<?php echo $cu; ?>",
1436 "final_migration_when":
"on_completion" 1440 url: hcuadmOdyMigrServerURL,
1441 data: data_complete_final,
1444 .done(
function (response) {
1445 var msg = response[
"message"]
1447 if (response[
"success"] ==
false) {
1448 displayMessageAlert(msg,
"add",
"danger")
1450 displayMessageAlert(msg,
"add",
"success")
1452 hideFinalMigrationElements(response[
"message"],
"completed")
1454 }).always(
function (response) {
1455 displayMessageAlert(
"Completing FINAL Migration. ",
"add",
"success")
1456 $(
"#runMigrationBtn").html(
'<i class="fa fa-plug"></i> Start')
1457 $(
"#runMigrationBtn").prop(
"disabled",
true)
1462 function getAlertPrefix(category_value, operation_value, fetch_during_migration) {
1463 if (fetch_during_migration ==
true) {
1464 return "<b><u>["+ category_value.toUpperCase() +
"-" + operation_value.toUpperCase() +
"-" +
"<?php echo strtoupper($cu); ?>" +
"] </b></u>" 1466 return "<b><u>[SHOWING LOG HISTORY]["+ category_value.toUpperCase() +
"-" + operation_value.toUpperCase() +
"-" +
"<?php echo strtoupper($cu); ?>" +
"] </b></u>" 1474 function getNextFinalMigrationCategory(completed_category,
1475 final_migr_include_sa,
1476 final_migr_include_loanapps) {
1477 var next_migr =
"memhist";
1479 if (completed_category ==
"memdata") {
1480 if (final_migr_include_sa) {
1481 next_migr =
"switchaccounts";
1482 }
else if (final_migr_include_loanapps) {
1483 next_migr =
"loanapp";
1486 }
else if (completed_category ==
"switchaccounts") {
1487 if (final_migr_include_loanapps) {
1488 next_migr =
"loanapp";
1500 function startMemhistAndSwitchAccsForFinalMigration(category) {
1501 data_memhist_sa_wip = {
1502 "post_purpose":
"start_memhist_sa_wip_for_final_migration",
1503 "cu":
"<?php echo $cu; ?>",
1504 "category": category,
1508 url: hcuadmOdyMigrServerURL,
1509 data: data_memhist_sa_wip,
1513 .done(
function (response) {
1514 if (response[
"success"] ==
false) {
1515 displayMessageAlert(response[
"message"],
"add",
"danger")
1528 function fetchMigrationLog(show_progressbar, category_value, operation_value,
1529 is_final_migr, final_migr_include_sa,
1530 final_migr_include_loanapps) {
1532 if (is_final_migr ==
false) {
1533 updateStartButtonVisibleStatus(
false)
1539 var alert_prefix = getAlertPrefix(category_value, operation_value,
true);
1541 $(
"#current-log-header").html(alert_prefix)
1545 "post_purpose":
"fetch_log",
1546 "cu":
"<?php echo $cu; ?>",
1547 "operation": operation_value,
1548 "category": category_value
1556 url: hcuadmOdyMigrServerURL,
1557 data: data_fetch_log,
1560 .done(
function(response) {
1561 alert_msg = alert_prefix + response[
"message"];
1565 if (response[
"success"] ==
true) {
1567 var logs_content = response[
"log_report"][
"log_content"]
1568 var end_of_migration = response[
"log_report"][
"end_of_log"]
1569 var progress_status = response[
"log_report"][
"progress_status"]
1570 var file_does_not_exist = response[
"log_report"][
"does_not_exist"];
1571 var migration_status =
"inprogress";
1574 if (file_does_not_exist ==
false) {
1577 halt_fetching =
false 1579 for (lg_index in logs_content) {
1580 lg_line = logs_content[lg_index]
1583 if (lg_line.includes(
"ERROR")) {
1584 lg_line_color =
"danger" 1586 var arr_lg_error = lg_line.split(
"::")
1587 alert_msg +=
"<br> "+ alert_prefix +
"Encountered ERROR(S)! " 1588 + arr_lg_error[arr_lg_error.length-1].trim()
1589 migration_status =
"encountered ERROR(s). Refer to the log file '" +
1590 operation_value +
"-" + category_value +
"'" 1591 halt_fetching =
true 1594 else if(lg_line.includes(
"WARNING")){
1595 lg_line_color =
"warning" 1597 var arr_lg_warning = lg_line.split(
"::");
1598 var lg_line_warning = arr_lg_warning[arr_lg_warning.length - 1]
1599 if(!lg_line_warning.includes(
"Relaxing validation")) {
1600 alert_msg = alert_prefix +
"WARNING(S)! " + lg_line_warning
1605 lg_line_color =
"success" 1608 if(lg_line.includes(
"MIGRATION DONE")){
1609 lg_line_color =
"success" 1611 alert_msg = alert_prefix +
"Migration operation '" 1612 + operation_value +
"-" + category_value+
"' COMPLETED! " 1617 lg_line =
'<div class="text-' + lg_line_color +
'"><i class="fa fa-chevron-circle-right"></i> ' 1618 + lg_line +
'</div><br>' 1621 if (lg_index == 0) {
1622 $(
"#logs-textarea").html(lg_line)
1624 $(
"#logs-textarea").append(lg_line)
1628 if (halt_fetching) {
1629 resetIntervalAutoLogFetch()
1631 deleteWIPMigrateLock(operation_value, category_value, is_final_migr);
1633 if (is_final_migr) {
1637 showFinalMigrationElements(migration_status);
1642 if (halt_fetching ==
false) {
1643 updateProgressBar(operation_value, category_value,
1644 progress_status, alert_prefix, show_progressbar)
1648 if (end_of_migration ==
true) {
1650 resetIntervalAutoLogFetch()
1653 if (is_final_migr == true && operation_value == "migrate") {
1657 if (category_value ==
"memdata") {
1658 setTimeout(
function() { $(
"#progress-bar-container").addClass(
'hidden'); },
1659 hideProgressBar * 1000);
1663 if (category_value ==
"memdata" 1664 || category_value ==
"switchaccounts" 1665 || category_value ==
"loanapp") {
1668 var next_migr = getNextFinalMigrationCategory(category_value,
1669 final_migr_include_sa,
1670 final_migr_include_loanapps);
1673 startMemhistAndSwitchAccsForFinalMigration(next_migr);
1676 setMonitorLogArea();
1678 hideFinalMigrationElements(
"[Final Migration] 'migrate-" + category_value
1679 +
"' completed. Starting 'migrate-" + next_migr +
"'",
"inprogress");
1683 setTimeout(
function() { autoRefreshLog(next_migr, operation_value,
true); }, 3000);
1689 wrapUpFinalMigration()
1694 if (category_value ==
"memdata" 1695 && operation_value ==
"clean") {
1696 $(
"#accountCrossRefBtn").prop(
"disabled",
true);
1698 if (category_value ==
"memdata" && operation_value ==
"migrate") {
1699 setTimeout(
function() { $(
"#progress-bar-container").addClass(
'hidden'); }, hideProgressBar * 1000)
1701 displayStaticMigrationStatus(is_final_migr,
1707 displayStaticMigrationStatus(is_final_migr, operation_value,
1708 category_value, migration_status)
1714 resetIntervalAutoLogFetch();
1715 deleteWIPMigrateLock(operation_value, category_value, is_final_migr);
1722 deleteWIPMigrateLock(operation_value, category_value, is_final_migr);
1723 resetIntervalAutoLogFetch()
1725 if (error ==
true) {
1726 alert_level =
"danger";
1727 }
else if (warning ==
true) {
1728 alert_level =
"warning";
1730 alert_level =
"success";
1733 displayMessageAlert(alert_msg,
"add", alert_level)
1735 .always(
function() {
1739 if(is_final_migr == true && operation_value == "migrate") {
1740 fetchWIPAndDoneList(
false,
false);
1743 UpdateMigrationOptions(
false);
1746 if(is_final_migr ==
true) {
1750 $(
"#runMigrationBtn").prop(
"disabled",
false)
1752 $(
"#runMigrationBtn").prop(
"disabled",
true)
1756 $(
"#check-switch-accounts").prop(
"disabled",
false)
1763 function InitFinalMigrationOperation(server, username, password) {
1765 data_execute_final_script = {
1766 "post_purpose":
"execute_final_migration",
1767 "cu":
"<?php echo $cu; ?>",
1769 "username": username,
1770 "password": password
1776 url: hcuadmOdyMigrServerURL,
1777 data: data_execute_final_script,
1795 function InitMigrationOperation(server, operation, data_category, username, password) {
1797 data_execute_script = {
1798 "post_purpose":
"execute_script",
1799 "cu":
"<?php echo $cu; ?>",
1801 "operation": operation,
1802 "category": data_category,
1803 "username": username,
1804 "password": password
1810 url: hcuadmOdyMigrServerURL,
1811 data: data_execute_script,
1819 function deleteWIPMigrateLock(operation, category, is_final_migr) {
1820 data_del_wip_file = {
1821 "post_purpose":
"delete_wip",
1822 "cu":
"<?php echo $cu; ?>",
1823 "operation": operation,
1824 "category": category,
1825 "is_final_migr": is_final_migr
1830 url: hcuadmOdyMigrServerURL,
1831 data: data_del_wip_file,
1834 .done(
function (response) {
1835 var msg = response[
"message"];
1836 displayMessageAlert(msg,
"append",
"danger")
1838 .fail(
function (response) {
1839 console.log(response);
1847 function updateLockUnlockButton(cat_group, showHideWaitWindow) {
1848 if(showHideWaitWindow){
1852 "post_purpose":
"display_lock_unlock_preventive_buttons",
1853 "cu":
"<?php echo $cu; ?>",
1854 "cat_group": cat_group
1858 if (cat_group ==
"Settings") {
1859 btnId =
"#lockUnlockSettingsMigrationBtn";
1861 }
else if (cat_group ==
"Admin"){
1862 btnId =
"#lockUnlockAdminMigrationBtn";
1868 url: hcuadmOdyMigrServerURL,
1869 data: data_lockunlock,
1871 }).done(
function (response) {
1872 var msg = response[
"message"];
1873 var locked = response[
"locked"];
1875 if (response[
"success"] ==
true) {
1876 if (response[
"show_btn"] ==
true) {
1877 $(btnId).prop(
"disabled",
false)
1880 $(btnId).prop(
"disabled",
true)
1884 changeBtnColorToUnlock(cat_group, btnId);
1886 changeBtnColorToLock(cat_group, btnId);
1890 }).always(
function (response) {
1891 if(showHideWaitWindow){
1902 function updateAccountCrossRefDownloadButton(showHideWaitWindow) {
1903 if(showHideWaitWindow){
1907 "post_purpose":
"display_accref_download",
1908 "cu":
"<?php echo $cu; ?>" 1913 url: hcuadmOdyMigrServerURL,
1914 data: data_accref_dw,
1916 }).done(
function (response) {
1917 var msg = response[
"message"];
1918 if (response[
"success"] ==
true) {
1919 if (response[
"show_btn"] ==
true) {
1920 $(
"#accountCrossRefBtn").prop(
"disabled",
false)
1922 $(
"#accountCrossRefBtn").prop(
"disabled",
true)
1926 }).always(
function (response) {
1927 if(showHideWaitWindow){
1936 function updateSummary(done_list, is_final_migr_done) {
1937 var true_fa =
'<i class="fa fa-check-square-o text-success"></i> ';
1938 var false_fa =
'<i class="fa fa-times-rectangle text-danger"></i> ';
1940 if (done_list.includes(
"settings")) {
1941 $(
"#general-summary-settings").html(true_fa +
"Settings");
1943 $(
"#general-summary-settings").html(false_fa +
"Settings");
1946 if (done_list.includes(
"admin")) {
1947 $(
"#general-summary-admin").html(true_fa +
"Admin");
1949 $(
"#general-summary-admin").html(false_fa +
"Admin");
1952 if (done_list.includes(
"memdata")) {
1953 $(
"#general-summary-memdata").html(true_fa +
"Member Data");
1955 $(
"#general-summary-memdata").html(false_fa +
"Member Data");
1958 if ($(
"#check-switch-accounts").is(
":checked")) {
1959 if (done_list.includes(
"switchaccounts")) {
1960 $(
"#general-summary-switch-accounts").html(true_fa +
"Switch Accounts");
1962 $(
"#general-summary-switch-accounts").html(false_fa +
"Switch Accounts");
1964 $(
"#general-summary-switch-accounts").removeClass(
"hidden");
1967 $(
"#general-summary-switch-accounts").removeClass(
"hidden").addClass(
"hidden");
1970 if(done_list.includes(
"loanapp")) {
1971 $(
"#general-summary-loanapps").html(true_fa +
"Loan Apps");
1973 $(
"#general-summary-loanapps").html(false_fa +
"Loan Apps");
1976 if (done_list.includes(
"memhist")) {
1977 $(
"#general-summary-memhist").html(true_fa +
"Member History");
1979 $(
"#general-summary-memhist").html(false_fa +
"Member History");
1982 if(is_final_migr_done ==
true) {
1983 $(
"#general-summary-final-migr").html(true_fa +
"Did final migration run?");
1985 $(
"#general-summary-final-migr").html(false_fa +
"Did final migration run?");
1993 function fetchWIPAndDoneList(showHideWaitWindow, is_part_of_final_migr) {
1994 if(showHideWaitWindow){
1997 data_wip_done_list = {
1998 "post_purpose":
"get_wip_done_list",
1999 "cu":
"<?php echo $cu; ?>" 2004 url: hcuadmOdyMigrServerURL,
2005 data: data_wip_done_list,
2009 .done(
function (response) {
2010 var msg = response[
"message"];
2011 if (response[
"success"] ==
true) {
2012 var done_list = response[
"done_list"];
2013 var wip_list = response[
"wip_list"];
2014 var is_final_migr_done = response[
"final_migr_done"]
2016 var wipDDL = $(
"#wipDDL").data(
"kendoDropDownList");
2017 var ds =
new kendo.data.DataSource({
2021 wipDDL.setDataSource(ds)
2023 if (wip_list.length > 0) {
2024 wipDDL.value(wip_list[0]);
2026 wipDDL.enable(
false)
2028 updateSummary(done_list, is_final_migr_done);
2031 displayMessageAlert(msg,
"add",
"danger")
2033 }).fail(
function (response) {
2034 console.log(response);
2035 }).always(
function (response) {
2036 if (is_part_of_final_migr ==
false) {
2037 updateStartButtonVisibleStatus(
false)
2039 $(
"#runMigrationBtn").prop(
"disabled",
true);
2042 if(showHideWaitWindow){
2051 function FetchLogsHistoryList(showHideWaitWindow) {
2052 if(showHideWaitWindow) {
2055 data_wip_done_list = {
2056 "post_purpose":
"get_logs_list",
2057 "cu":
"<?php echo $cu; ?>" 2062 url: hcuadmOdyMigrServerURL,
2063 data: data_wip_done_list,
2066 .done(
function (response) {
2067 var msg = response[
"message"];
2068 if (response[
"success"] ==
true) {
2069 var logs_list = response[
"logs_list"];
2070 var logsHistoryDDL = $(
"#loghistoryDDL").data(
"kendoDropDownList");
2072 var logshistory_data_source =
new kendo.data.DataSource({
2075 logsHistoryDDL.setDataSource(logshistory_data_source)
2077 if (logs_list.length > 0) {
2078 logsHistoryDDL.enable(
true)
2080 logsHistoryDDL.value(logs_list[0])
2081 logsHistoryDDL.trigger(
"change")
2083 $(
"#get-log-history").prop(
"disabled",
false)
2085 $(
"#get-log-history").prop(
"disabled",
true)
2086 logsHistoryDDL.enable(
false)
2090 displayMessageAlert(msg,
"append",
"danger")
2092 }).always(
function (response) {
2093 if(showHideWaitWindow) {
2102 function updateStartButtonVisibleStatus(showHideWaitWindow) {
2103 if(showHideWaitWindow) {
2106 var wip = $(
"#wipDDL").data(
"kendoDropDownList").value();
2108 $(
"#runMigrationBtn").prop(
"disabled",
false)
2109 <?php
if(IsDevMode()) { ?>
2110 $(
"#resetFinalMigration").prop(
"disabled",
false)
2111 $(
"#deleteSelectedCategoriesBtn").prop(
"disabled",
false)
2115 $(
"#runMigrationBtn").prop(
"disabled",
true)
2116 <?php
if(IsDevMode()) { ?>
2117 $(
"#resetFinalMigration").prop(
"disabled",
true)
2118 $(
"#deleteSelectedCategoriesBtn").prop(
"disabled",
true)
2122 if(showHideWaitWindow) {
2131 function UpdateMigrationOptions(showHideWaitWindow) {
2132 if (showHideWaitWindow) {
2136 fetchWIPAndDoneList(
false,
false);
2137 updateAccountCrossRefDownloadButton(
false);
2138 updateLockUnlockButton(
"Settings",
false);
2139 updateLockUnlockButton(
"Admin",
false);
2140 FetchLogsHistoryList(
false);
2142 updateHomeBankingInfoText(
false);
2143 <?php
if(IsDevMode()) { ?>
2145 updateAllDoneMultiCheckList(
false)
2148 updateFinalMigrCheckBox(
false)
2149 updateStartButtonVisibleStatus(false)
2150 updateDataCategoriesList(false)
2152 if (showHideWaitWindow){
2160 function displayMessageAlert(message, append_or_add, alert_level) {
2161 if (alert_level ==
"danger") {
2162 alert_level =
"error" 2164 msg_length = message.length
2165 message = message.substring(0, Math.min(msg_length - 1, 500));
2166 $(
"#migration-alert").getKendoNotification().show(
"<div class='notificationAlert'>" + message +
"</div>", alert_level)
2172 function initializeKendoElements() {
2173 $(
"#wipDDL").kendoDropDownList({
2177 noDataTemplate:
"No IN PROGRESS migrations to show!" 2178 }).data(
"kendoDropDownList");
2180 $(
"#migration-alert").kendoNotification({
2181 autoHideAfter: 15000,
2194 $(
"#serversDDL").kendoDropDownList({
2198 noDataTemplate:
"No Mammoth server endpoint to show!" 2199 }).data(
"kendoDropDownList");
2202 $(
"#operationsDDL").kendoDropDownList({
2206 change:
function(e){
2207 var serversddl = $(
"#serversDDL").data(
"kendoDropDownList");
2208 if (this.value() !=
'migrate') {
2209 serversddl.enable(
false)
2210 $(
"[name='username']").prop(
"disabled",
true).addClass(
"k-state-disabled");
2211 $(
"[name='password']").prop(
"disabled",
true).addClass(
"k-state-disabled");
2213 serversddl.enable(
true)
2214 $(
"[name='username']").prop(
"disabled",
false).removeClass(
"k-state-disabled");
2215 $(
"[name='password']").prop(
"disabled",
false).removeClass(
"k-state-disabled");
2218 noDataTemplate:
"No migration operation to show!" 2219 }).data(
"kendoDropDownList");
2222 $(
"#categoriesDDL").kendoDropDownList({
2226 cascade:
function(e){
2227 setUpOperationsDDL(this.value(),
"cascade");
2229 noDataTemplate:
"No data categories to show!" 2230 }).data(
"kendoDropDownList");
2232 <?php
if(IsDevMode()) { ?>
2233 $(
"#deleteAllCleanUpList").kendoMultiSelect({
2235 noDataTemplate:
"No completed migration category(ies) to show!",
2236 change:
function(e) {
2237 if(this.value().length > 0) {
2238 $(
"#deleteSelectedCategoriesBtn").html(
" Clean Selected (" + this.value().length +
") Categories")
2240 $(
"#deleteSelectedCategoriesBtn").html(
" Clean Selected Categories")
2243 }).data(
"kendoMultiSelect");
2246 $(
"#loghistoryDDL").kendoDropDownList({
2250 noDataTemplate:
"No LOGS HISTORY to show!" 2251 }).data(
"kendoDropDownList");
2260 $(
"#migrationDiv").kendoTooltip({ filter:
"a[title]" });
2263 data_check_monitor_lock = {
2264 "post_purpose":
"check_monitor_lock",
2265 "cu":
"<?php echo $cu; ?>" 2272 url: hcuadmOdyMigrServerURL,
2273 data: data_check_monitor_lock,
2276 }).done(
function(response) {
2278 lock_file = response[
"lock_file"]
2279 lock_file_exists = response[
"exists"]
2282 if (lock_file_exists) {
2283 disabled_msg =
"Sorry, migration is disabled. Lock file " + lock_file +
" exists!";
2284 $(
"#migrationDisableMsgDiv").text(disabled_msg)
2285 $(
"#migrationDisableMsgDiv").removeClass(
"hidden");
2292 .fail(
function(response) {
2293 error_msg =
"Something went wrong loading the migration page (possibly due to lock file mishandling!)";
2294 $(
"#migrationDisableMsgDiv").text(error_msg);
2295 $(
"#migrationDisableMsgDiv").removeClass(
"hidden");
2296 }).always(
function(response) {
2298 setTimeout(
function() { hideWaitWindow()}, 2000)
2305 $(document).ready(
function() {
2319 .notificationAlert {
2320 word-wrap:
break-word;
2321 white-space: normal;
2322 margin: -18px 0 0 20px;
2329 .local-grid-cursor tbody {
2333 .local-grid-cursor tbody tr td:eq(0) {
2346 #migration-history-tabs{ 2350 #migration-settings-tab { 2366 <div
id=
"migrationDiv" class=
"container-fluid hcu-template form-horizontal hidden">
2369 <div
id=
"progress-bar-container" class=
"col-xs-12 well hidden">
2370 <div
id=
"progress-bar-text" class=
"col-xs-12 form-group"></div>
2371 <div
id=
"progressbar" class=
"col-xs-12"></div>
2374 <div
id=
"migration-alert"></div>
2375 <div
id=
"migrationStatusDiv" class=
"col-xs-12 form-group"></div>
2376 <div
id=
"finalMigrationStatusDiv" class=
"col-xs-12 text-danger text-center"></div>
2379 <div
id=
"migration-input" class=
"float-left col-xs-12 col-sm-6">
2381 <div
class=
"panel panel-primary col-xs-12">
2382 <div
class=
"form-group col-xs-12">
2383 <div
class=
"page-header">
2384 <h1>Migration Input <small></small></h1>
2388 <div
class=
"form-group">
2389 <label
class=
"col-xs-12 col-sm-4">Target System</label>
2390 <div
class=
"col-xs-12 col-sm-8"><b><i
class=
"text-info"><?php echo GetCurrentServer();?></i></b></div>
2393 <div
class=
"form-group">
2394 <label
class=
"col-xs-12 col-sm-4">Source Server <i
class=
"text-info">(Mammoth)</i></label>
2395 <div
class=
"col-xs-12 col-sm-8"><div
id=
"serversDDL" class=
"hcu-all-100"></div></div>
2398 <div
class=
"form-group">
2399 <label
class=
"col-xs-12 col-sm-4">Server Username</label>
2400 <div
class=
"col-xs-12 col-sm-8"><input type=
"text" title=
"Enter username of the first credential that you use to login to the Monitor in Mammoth." class=
"k-input k-textbox hcu-all-100" name=
"username" maxlength=
"50" 2401 required validationMessage=
"Enter {0}" placeholder=
"Enter Mammoth monitor username"></div>
2404 <div
class=
"form-group">
2405 <label
class=
"col-xs-12 col-sm-4">Server Password</label>
2406 <div
class=
"col-xs-12 col-sm-8"><input type=
"password" title=
"Enter password of the first credential that you use to login to the Monitor in Mammoth." class=
"k-input k-textbox hcu-all-100" name=
"password" maxlength=
"50" 2407 required validationMessage=
"Enter {0}" placeholder=
"Enter Mammoth monitor password"></div>
2410 <div
class=
"form-group">
2411 <label
class=
"col-xs-12 col-sm-4">Data Operation</label>
2412 <div
class=
"col-xs-12 col-sm-8"><div
id=
"operationsDDL" class=
"hcu-all-100"></div></div>
2415 <div
class=
"form-group">
2416 <label
class=
"col-xs-12 col-sm-4">Data Category</label>
2417 <div
class=
"col-xs-12 col-sm-8"><div
id=
"categoriesDDL" class=
"hcu-all-100"></div></div>
2420 <div
class=
"form-group">
2421 <div
id=
"checkbox-alerts" class=
"col-xs-12 col-sm-6 float-left">
2422 <div
id=
"cuadmin-info">
2423 <h4
class=
"text-info"><u><?php echo strtoupper($cu); ?>
Banking Settings</u></h4>
2424 <h6
class=
"text-default">Home
Banking -> Allow Repeating Transactions: <strong
id=
"cuadmin-repeating-transfers" class=
"text-danger"></strong></h6>
2425 <h6
class=
"text-default">Home
Banking -> Allow Member Alert Processing: <strong
id=
"cuadmin-alert-processing" class=
"text-danger"></strong></h6>
2426 <h6
id=
"cuadmin-offlinestat-info" class=
"text-default hidden">Change Online Status -> Offline Status : <strong
id=
"cuadmin-offline-status" class=
"text-danger"></strong></h6>
2428 <div
id=
"cuadmin-no-info" class=
"text-danger hidden"></div>
2429 <div
id=
"migration-categories-summary">
2431 <h4
class=
"text-info"><u>Summary of Completion</u></h4>
2432 <h5><u>Settings</u></h5>
2433 <h6
id=
"general-summary-settings" class=
"text-default">N/A Settings</h6>
2434 <h6
id=
"general-summary-admin" class=
"text-default">N/A Admin </h6>
2435 <h5><u>Members</u></h5>
2436 <h6
id=
"general-summary-memdata" class=
"text-default">N/A Member Data</h6>
2437 <h6
id=
"general-summary-switch-accounts" class=
"text-default hidden">N/A Switch Accounts</h6>
2438 <h6
id=
"general-summary-loanapps" class=
"text-default">N/A Loan Apps</h6>
2439 <h6
id=
"general-summary-memhist" class=
"text-default">N/A Member History</h6>
2440 <h6
id=
"general-summary-final-migr" class=
"text-default">Did
final migration run? N/A</h6>
2443 <p><i>Note: Loan Apps migration migrates data of credit unions that have loan apps specific data on Mammoth. The ones with no corresponding loan related data on Mammoth are safely handled.</i></p>
2444 <i
class=
"fa fa-check-square-o text-success"> Completed </i>
2445 <i
class=
"fa fa-times-rectangle text-danger"> Not Completed</i>
2449 <div
class=
"col-xs-12 col-sm-6 float-right">
2450 <div
class=
"col-xs-12 float-right text-right">
2451 <button type=
"button" id=
"runMigrationBtn" class=
"btn btn-primary"><i
class=
"fa fa-plug"></i> Start</button>
2453 <div
class=
"clear"></div>
2454 <div
class=
"col-xs-12 float-right text-right">
2455 <div
id =
"final-migration-checklist-wrapper" style=
"display: none;">
2457 <input
class=
"form-check-input" type=
"checkbox" id=
"final-migration" title=
"settings and admin have alredy been migrated and updated. Also tested memdata and memhist should have been tested at least once." value=
"option1" disabled>
2458 <label
id=
"final-migration-label" class=
"form-check-label text-danger text-right" for=
"final-migration">Ready
for Final Migration?</label>
2460 <p
class=
"text-danger"><i>Please refresh the page before starting
final migration. </br>Final migration includes: memdata, [loanapp, switchaccounts] and memhist data categories.</i></p>
2461 <h6
id=
"final-mgr-settings-locked" class=
"text-info text-right">1. Are <i>settings</i> & <i>admin</i> migrated & locked? N/A</h6>
2462 <h6
id=
"final-mgr-memdata-ready" class=
"text-info text-right">2. Is <i>memdata</i> ready? N/A</h6>
2463 <h6
id=
"final-mgr-memdata-gt0" class=
"text-default text-right">Tested <i>memdata</i> at least once? N/A</h6>
2464 <h6
id=
"final-mgr-memdata-clean" class=
"text-default text-right">Is <i>memdata</i> in clean state? N/A</h6>
2465 <h6
id=
"final-mgr-memhist-ready" class=
"text-info text-right">3. Is <i>memhist</i> ready? N/A</h6>
2466 <h6
id=
"final-mgr-memhist-gt0"class=
"text-default text-right">Tested <i>memhist</i> at least once? N/A</h6>
2467 <h6
id=
"final-mgr-memhist-clean" class=
"text-default text-right">Is <i>memhist</i> in clean state? N/A</h6>
2468 <h6
id=
"final-mgr-nowip" class=
"text-default text-info">4. Any in-progress migration(s)? N/A</h6>
2470 <h6
id=
"final-mgr-migrate-switchaccounts" class=
"text-danger text-right">Is <i>SWITCHACCOUNTS</i> part of
final migration? N/A</h6>
2471 <h6><i>(configure from Migration Settings -> Settings:Support)</i></h6>
2473 <i
class=
"fa fa-check-square-o text-right text-success"> Satisfies. </i>
2474 <i
class=
"fa fa-times-rectangle text-right text-danger"> Does not satisfy. </i>
2475 <div
class=
"clear"></div>
2479 <div
class=
"clear"></div>
2481 <div
class=
"clear"></div>
2487 <div
id=
"migration-sidebar" class=
"float-right col-xs-12 col-sm-6">
2489 <div
id=
"migration-history-tabs" class=
"panel panel-primary col-xs-12">
2490 <div
class=
"col-xs-12 form-group">
2491 <div
class=
"page-header">
2492 <h1>Migration Settings <small></small></h1>
2495 <ul
class=
"nav nav-tabs">
2496 <li
class=
"active"><a data-toggle=
"tab" href=
"#migration-inprogress-tab">In-Progress Migration</a></li>
2497 <li><a data-toggle=
"tab" href=
"#migration-dev-settings-tab">Settings: Developers</a></li>
2498 <li><a data-toggle=
"tab" href=
"#migration-settings-tab">Settings: Support</a></li>
2501 <div
class=
"tab-content">
2502 <div
id=
"migration-inprogress-tab" class=
"tab-pane fade in active">
2503 <div
class=
"page-header">
2504 <h4>In-Progress Migration</h4>
2507 <div
class=
"col-xs-12 col-sm-12">
2508 <div
class=
"form-group">
2509 <div
class=
"col-xs-12 col-sm-7 float-left">
2510 <div
id=
"wipDDL" class=
"hcu-all-100"></div>
2512 <div
class=
"clear"></div>
2517 <div
id=
"migration-dev-settings-tab" class=
"tab-pane fade col-xs-12">
2520 <i
class=
"text-danger text-center">Please
do not change settings here
if you
're not a part of the data migration team!</i> 2522 <div class="float-left col-xs-12 col-sm-6"> 2523 <div class="page-header"> 2524 <h4> Logs History: Completed Migrations</h4> 2526 <div class="col-xs-12 col-sm-12"> 2527 <div class="form-group"> 2528 <div class="col-xs-12 col-sm-7 float-left"> 2529 <div id="loghistoryDDL" class="hcu-all-100"></div> 2531 <div class="col-xs-12 col-sm-5 float-right"> 2532 <button id="get-log-history" type="button" class="btn btn-info" disabled><i class="fa fa-get-pocket"></i> Fetch Log</button> 2534 <div class="clear"></div> 2539 <?php if(IsDevMode()) { ?> 2540 <div class="float-right col-xs-12 col-sm-6"> 2541 <div class="page-header"> 2542 <h4>Reset Migration State (Developer Tool)<small></small></h4> 2545 <p class="text-danger"><b>DANGER ZONE! Please contact a developer if you're seeing
this in PRODUCTION environment. Consequences: This will DELETE EVERYTHING but settings and admin. </b>This is primarily used by developers to reset migration states with a single click during development and testing. This may take up to a couple minutes
for larger CUs.</p>
2546 <button type=
"button" title=
"" id=
"resetFinalMigration" class=
"btn btn-danger" disabled><i
class=
"fa fa-undo"></i> Reset (Final) Migration State</button>
2549 <div
class=
"page-header">
2550 <h4>Multiple Clean Up (Developer Tool)<small></small></h4>
2553 <p
class=
"text-primary">Clean up multiple data categories.<br>(may take up to a couple minutes
for larger CUs)</p>
2554 <select
id=
"deleteAllCleanUpList" multiple=
"multiple"></select>
2556 <button type=
"button" id=
"deleteSelectedCategoriesBtn" title=
"" class=
"btn btn-danger"><i
class=
"fa fa-trash"></i> Clean Selected Categories</button>
2562 <div
class=
"clear"></div>
2564 <div
id=
"migration-settings-tab" class=
"tab-pane fade col-xs-12">
2567 <i
class=
"text-danger">Please
do not change settings here
if you
're not a part of the data migration team.</i> 2569 <div class="clear"></div> 2570 <div class="float-left col-xs-12 col-sm-6"> 2571 <div class="page-header"> 2572 <h4>Settings Migration Deletion<small></small></h4> 2575 <p class="text-primary">Locked = Prevent deletion, Unlocked = Allow deletion</p> 2576 <button type="button" id="lockUnlockSettingsMigrationBtn" title="Allow/Dis-allow further migration of settings data category." class="btn btn-danger" disabled><i class="fa fa-lock"></i> Lock Settings Migration</button> 2579 <div class="page-header"> 2580 <h4>Admin Migration Deletion<small></small></h4> 2583 <p class="text-primary">Locked = Prevent deletion, Unlocked = Allow deletion</p> 2584 <button type="button" id="lockUnlockAdminMigrationBtn" title="Allow/Dis-allow further migration of admin data category." class="btn btn-danger"><i class="fa fa-lock"></i> Lock Admin Migration</button> 2588 <div class="page-header"> 2589 <h4>Disable Migration Screen In Monitor<small></small></h4> 2592 <p class="text-primary">Disable monitor access after completion of all migrations.</p> 2593 <button id="migration-settings" title="Use this setting to disable migration monitor after migration of all the data categories is completed." type="button" class="btn btn-info"><i class="fa fa-cogs"></i> Show Settings</button> 2596 <div id="settings" class="col-xs-12 form-group"> 2597 <div class="form-check form-check-inline"> 2598 <input class="form-check-input" type="checkbox" id="check-migration" value="option1"> 2599 <label class="form-check-label text-danger" for="check-migration">I believe that all the data for all applicable categories have been migrated to Odyssey for <?php echo strtoupper($cu); ?>.</label> 2601 <button id="disable-migration-button" type="button" title="Are you REALLY sure?" class="btn btn-danger"><i class="fa fa-ban"></i> Disable Migration Menu</button> 2606 <div class="float-right col-xs-12 col-sm-6"> 2607 <div class="page-header"> 2608 <h4>Update <i>public_html</i> Embedded Links<small></small></h4> 2611 <p class="text-info">Have you already migrated the filesystem to Odyssey? </br>This updates links in the scripts in <b>/home/<?php echo $cu; ?>/public_html/</b> directory.</p> 2612 <button type="button" title="Have you already migrated the filesystem? This updates the embedded links the public_html directory. Eg. domain name update (www3.homecu.net -> my.homecu.net), calculator links, php script (.prg files) links, etc." id="updatePublicHtml" class="btn btn-info"><i class="fa fa-refresh"></i> Update</button> 2614 <div class="page-header"> 2615 <h4>Include Switch Accounts?<small></small></h4> 2617 <div class="form-check form-check-inline"> 2618 <input class="form-check-input" type="checkbox" id="check-switch-accounts"><label class="form-check-label text-info" for="check-switch-accounts">Check this only if SWITCH ACCOUNTS related data is to be include in the Final Migration.</label> 2621 <div class="page-header"> 2622 <h4>Account Cross Reference List<small></small></h4> 2625 <p class="text-primary">Download a list of Mammoth to Odyssey members mapping info.</p> 2626 <button type="button" title="'migrate-memdata
' maintains a list of Mammoth's user_name to Odyssey
's userid mappings information. Use this button to get the mapping -- save the content as a file when opened in another window. " id="accountCrossRefBtn" class="btn btn-info"><i class="fa fa-download"></i> Download</button> 2631 <div class="clear"></div> 2636 <div id="migration-status" class="col-xs-12"> 2637 <div class="form-group panel panel-primary col-xs-12"> 2638 <div class="page-header"> 2639 <h1>Logs <small id="current-log-header"></small></h1> 2640 <p class="text-danger" id="logs-display-datetime"></p> 2642 <div class="col-xs-12"> 2643 <div id="logs-textarea" class="form-control"></div> 2649 <div class="clear"></div> 2654 <div class="container-fluid form-horizontal"> 2655 <div class="form-group"> </div> 2656 <div id="migrationDisableMsgDiv" class ="alert alert-danger hidden" role="alert"></div> 2661 // ************************************************************************************* 2663 // ************************************************************************************* 2665 // Will print out the closing tags created in the printMonitorPageTop function. 2666 printMonitorPageBottom();
def main(certificate_path, secret_id, region=None)