10 $advPerm = checkPerm($Cn,
"userSupportAdv", $Cu)[1] == 1;
11 $bamPerm = checkPerm($Cn,
"MemAccount", $Cu)[1] == 1;
13 $isMasterUser = $Cn === strtolower(trim($Cu));
15 require_once(
"$admLibrary/userSearch.i");
18 require_once(
"$admLibrary/addUser.i");
21 $self =
"$menu_link?ft=$ft";
23 $string = array(
"filter" => FILTER_DEFAULT);
24 $parameters = array(
"a" => array(
"payload" =>
""));
25 HCU_ImportVars($parameters,
"a", array(
"payload" => $string));
27 $payload = HCU_array_key_exists(
"payload", $parameters[
"a"]) ? trim($parameters[
"a"][
"payload"]) :
"";
28 $userRecord = array();
32 $userRecord = HCU_PayloadDecode($Cu, $payload);
33 $counts = getUserHubCounts($dbh, $Cu, intval($userRecord[
"user_id"]));
35 $groupEncryption = encryptGroup($dbh, $Cu, $userRecord);
43 if (!$isMasterUser && $bamPerm) {
44 $isEmployee = HCU_array_key_exists(
"employee", $userRecord) && $userRecord[
"employee"] ===
"Y";
46 }
catch(exception $e) {}
48 $groupEncryption = isset($groupEncryption) ? $groupEncryption :
"";
51 <script type=
"text/javascript">
55 getShowWaitFunctions();
59 printUserSearch(
"$menu_link?ft=16",
"userHubCallback",
true, $advPerm);
60 printInitCards($menu_link, $advPerm, $bamPerm, $isEmployee, $isMasterUser);
63 printAddNewUser(
"$menu_link?ft=17",
"userHubCallback", $dbh, $Cu);
67 var payload =
"<?php echo $payload; ?>";
68 var groupPayload =
"<?php echo $groupEncryption; ?>";
69 var ghSearchOptionSelected =
null;
70 var ghSearchRowSelected =
null;
71 function openAccountTab() {
72 $(
"#accountTabForm").submit();
76 var activeWindows = [];
77 $(document).ready(
function() {
78 <?php
if (count($userRecord) == 0) { ?>
83 <?php printClickOverlayEvent();
84 if (count($userRecord) != 0) { ?>
85 userHubCallback(
"successfulOneRecord", payload, <?php echo HCU_JsonEncode($userRecord); ?>, <?php echo HCU_JsonEncode($counts); ?>, groupPayload);
96 function InitPermTooltips() {
98 var toolTipProps = homecuTooltip.defaults;
99 toolTipProps.filter =
".vsgDisabled.dtooltip";
101 toolTipProps.showOn =
"click mouseenter";
102 toolTipProps.content =
function(e) {
104 if ($(e.target).is(
"[data-tabname]")) {
106 if ($(e.target).hasClass(
"employeePerm")) {
107 text =
"You cannot view an employee's account.";
109 switch ($(e.target).data(
"tabname")) {
113 case "accessControl":
114 card =
"view account access";
117 card =
"view user rights";
120 card =
"delete user";
123 card =
"view user accounts";
126 text = card ==
"" ?
"" :
"You do not have permission to " + card +
".";
131 toolTipProps.show =
function(e) {
132 if( this.content.text() !==
"") {
133 $(
'[role="tooltip"]').css(
"visibility",
"visible");
136 toolTipProps.hide =
function() {
137 $(
'[role="tooltip"]').css(
"visibility",
"hidden");
140 $(
"#cardContainerDiv").kendoTooltip(toolTipProps).data(
"kendoTooltip");
144 <script
id=
"userInfoTemplate" type=
"text/x-kendo-template">
145 # if (unencrypted == null) { # 146 <div
class=
'noUserFound'><div>No
User Found</div></div>
148 <?php printHubLabelBlock(array(
"User" =>
"# if (unencrypted.user_name == null || unencrypted.user_name == '') { # # } else { # #: unencrypted.user_name # # } #",
149 "Email" =>
"# if (unencrypted.email == null || unencrypted.email == '') { # # } else { # #: unencrypted.email # # } #",
150 "Phone" =>
"# if (unencrypted.cellnumber == null || unencrypted.cellnumber == '') { # # } else { # #: unencrypted.cellnumber # # } #",
151 "Group" =>
"# if (unencrypted.group_name == null || unencrypted.group_name == '') { # # } else { # " 152 .
"<a href='\\#' id='userInfoGroupLink'>#: unencrypted.group_name # <i class=\"fa fa-users fa-fw\"></i></a> (#: unencrypted.profile_desc #) # } #")); ?>
155 <?php printUserSearchTemplate(); ?>
156 <script
id=
"titleTemplate" type=
"text/x-kendo-template">
157 User Hub #
if (cardTitle !=
null && cardTitle.trim() !=
"") { # / #: cardTitle # # } #
158 # if (user_name != null && user_name.trim() != "") { # / #: user_name # # } # 160 <div
id=
"cardContainerDiv" class=
"hideAA"></div>
161 <form
id=
"accountTabForm" action=
"<?php echo $menu_link; ?>?ft=9" method=
"post" target=
"_blank">
162 <input type=
"hidden" name=
"payload" value=
"">
164 <div
id=
"groupSearchModule"></div>
165 <form
id=
"groupLinkRedirect" action=
"<?php echo $menu_link ?>?ft=102101" method=
"post">
166 <input type=
"hidden" name=
"payload" value=
"">
173 function getTabList() {
175 "search" => array(
"name" =>
"search",
"text" =>
"Search",
"shortDescription" =>
"Search for another user.",
"icon" =>
"fa-search"),
177 array(
"name" =>
"addUser",
"text" =>
"Add User",
"shortDescription" =>
"Add user to this user's group",
"icon" =>
"fa-plus",
"ft" => 15),
178 array(
"name" =>
"showRelated",
"text" =>
"Show Related",
"shortDescription" =>
"Show users sharing this user's accounts",
"icon" =>
"fa-sitemap",
"ft" => 6),
179 array(
"name" =>
"accessControl",
"text" =>
"Access Control",
"shortDescription" =>
"Manage access to member accounts and sub-accounts",
"icon" =>
"fa-asterisk",
"ft" => 5),
180 array(
"name" =>
"status",
"text" =>
"Status",
"shortDescription" =>
"Status and settings for this user",
"icon" =>
"fa-tasks",
"ft" => 1),
181 array(
"name" =>
"audit",
"text" =>
"Events",
"shortDescription" =>
"Show changes to this user's account information",
"icon" =>
"fa-calendar",
"ft" => 2),
182 array(
"name" =>
"rights",
"text" =>
"User Rights",
"shortDescription" =>
"Manage this user's rights and limitations for banking features",
"icon" =>
"fa-cubes",
"ft" => 4),
183 array(
"name" =>
"viewUser",
"text" =>
"View User Accounts",
"shortDescription" =>
"Enter Banking Access Mode for this user",
"icon" =>
"fa-list",
"callJs" =>
"openAccountTab()"),
184 array(
"name" =>
"alerts",
"text" =>
"User Alerts",
"shortDescription" =>
"Manage alerts this user has configured",
"icon" =>
"fa-bell",
"ft" => 8),
185 array(
"name" =>
"repeat",
"text" =>
"Scheduled Transfers",
"shortDescription" =>
"Manage scheduled transfers for this user",
"icon" =>
"fa-calendar-check-o",
"ft" => 13),
186 array(
"name" =>
"secureMessages",
"text" =>
"Secure Messages",
"shortDescription" =>
"Show conversations with this user",
"icon" =>
"fa-comments",
"ft" => 3),
187 array(
"name" =>
"delete",
"text" =>
"Delete User",
"shortDescription" =>
" ",
"icon" =>
"fa-trash",
"ft" => 7)
198 function printInitCards($menu_link, $advPerm, $bamPerm, $isEmployee, $isMasterUser) {
199 $tabs = getTabList();
201 var payload =
"", foundUser =
false;
202 function initCardDiv() {
203 var cardPopupWindow = $(
"#cardPopupWindow").data(
"kendoWindow");
204 if (cardPopupWindow !=
null) {
208 var
template =
"<div class='col-xs-12'><div class='well well-sm row borderless'>\ 209 <h2 class='hubTitle'><span class='hcu-breadcrumb'>User Hub</span></h2>\ 210 <div class='search'><a href='#'><i class='fa <?php echo $tabs["search
"]["icon
"]; ?> fa-3x'></i><br>Search</a></div>\ 211 <div class='infoDiv'></div>\ 214 <?php
foreach($tabs[
"other"] as $index => $tab) {
218 $aStart =
"<a href='#' class='goBtn'>";
220 if (!$advPerm && in_array($tab[
"name"], array(
"addUser",
"accessControl",
"rights",
"delete"))) {
221 $openClass =
"openFt";
222 $disabledClass =
"vsgDisabled dtooltip";
225 }
else if ($tab[
"name"] ==
"viewUser") {
226 $disabledClass =
"vsgDisabled dtooltip";
228 if (!$isMasterUser && $bamPerm && $isEmployee) {
229 $disabledClass .=
" employeePerm";
230 }
else if ($isMasterUser || $bamPerm) {
234 $(
"#cardContainerDiv").on(
"click",
"[data-tabname='<?php echo $tab["name
"]; ?>']:not(.vsgDisabled) .goBtn",
function () {
235 <?php echo $tab[
"callJs"] .
"\n"; ?>
239 }
else if (HCU_array_key_exists(
"ft", $tab)) {
240 $dataFt =
"data-ft='" . $tab[
"ft"] .
"'";
241 $openClass =
"openFt";
242 }
else if (HCU_array_key_exists(
"callJs", $tab)) { ?>
243 $(
"#cardContainerDiv").on(
"click",
"[data-tabname='<?php echo $tab["name
"]; ?>']:not(.vsgDisabled) .goBtn",
function () {
244 <?php echo $tab[
"callJs"] .
"\n"; ?>
248 template +=
"<div class='col-md-4 col-xs-6 cardDiv <?php echo $openClass; ?> aa <?php echo $disabledClass; ?>'" 249 +
" data-tabname='<?php echo $tab["name
"]; ?>' <?php echo $dataFt; ?>>" 250 +
"<?php echo $aStart; ?><div class='features-column col-md-12 center'><div class='features-box-header'>" 251 +
"<i class='fa <?php echo $tab["icon
"]; ?> fa-3x'></i><h6 class='textSpan'><?php echo $tab["text
"]; ?></h6></div><div class='feature-box-content col-md-11 center'>" 252 +
"<p class='vsgSecondary hidden-xs hidden-sm'><?php echo $tab["shortDescription
"]; ?></p></div></div><?php echo $aEnd; ?></div>";
255 $(
"#cardContainerDiv").html(
template);
257 var
template = kendo.template($(
"#userInfoTemplate").html());
258 $(
"#cardContainerDiv .infoDiv").html(
template({unencrypted:
null}));
260 $(
"#cardContainerDiv").on(
"click",
".search a",
function() {
261 if ($(
".k-overlay:visible").length == 0) {
262 openUserSearch(userHubCallback);
267 $(
"#cardContainerDiv").on(
"click",
".cardDiv.openFt .goBtn",
function() {
272 $(
"#cardContainerDiv").on(
"click",
"#userInfoGroupLink",
function() {
273 $(
"#groupLinkRedirect").submit();
277 $(
"#cardContainerDiv").on(
"click",
"#userInfoAccountLink",
function() {
278 $(
"#accountLinkRedirect").submit();
289 function openTabWindow(cardToOpen, doInitialize) {
290 if (doInitialize || ($(
".k-overlay:visible").length == 0 && !$(cardToOpen).closest(
".openFt").hasClass(
"vsgDisabled"))) {
291 var data = $(cardToOpen).closest(
".cardDiv").data();
293 var externalTabWindow = $(
"#externalTabWindow").data(
"kendoWindow");
294 if (externalTabWindow ==
null) {
295 externalTabWindow = $(
"<div id='externalTabWindow'></div>").appendTo(
"body").kendoWindow({
311 if (window.activeWindows !=
null) {
312 window.activeWindows.push(
this);
315 if (typeof(userSupportDoOnActivate) ==
"function") {
316 userSupportDoOnActivate();
319 resizingAndWhatnot(
this);
331 $(
"#externalTabWindow").data(
"preferredHeight",
null);
332 $(
"#externalTabWindow").data(
"shouldClose",
true);
333 if (!$(
"#externalTabWindow").data(
"isClosing")) {
334 if (typeof(userSupportDoOnClose) ==
"function") {
335 userSupportDoOnClose();
338 if ($(
"#externalTabWindow").data(
"shouldClose")) {
339 if (window.activeWindows !=
null) {
340 window.activeWindows.pop();
347 $(
"#externalTabWindow").find(
"script").each(
function() {
348 var matches = $(
this).html().trim().match(/
function\s*[a-z_]+/gi);
349 if (matches !=
null) { <?php
350 for(var i = 0; i != matches.length; i++) {
351 var thisFunction = matches[i].replace(/
function\s*/gi,
"");
352 window[thisFunction] = undefined;
357 window.userSupportContents = undefined;
360 var selector = $(
"body > .k-window:not(:has(.searchDialog),.kWindowCard,:has(#homecuSubmitWait))");
361 kendo.destroy($(selector));
362 $(selector).
remove();
364 kendo.destroy($(
"#externalTabWindow *"));
365 $(
"body").off(
"click.userSupportHubNamespace");
368 }).data(
"kendoWindow");
370 $(
"#externalTabWindow").closest(
".k-window").addClass(
"kWindowCard");
373 var titleTemplate = kendo.template($(
"#titleTemplate").html());
374 var templateData = $(
"#cardContainerDiv").data(
"unencrypted");
375 templateData.cardTitle = $(cardToOpen).closest(
".cardDiv").find(
".textSpan").text().trim();
376 externalTabWindow.title(titleTemplate(templateData));
378 $.post(
"<?php echo $menu_link; ?>?ft=" + data.ft, {payload: payload},
function(returnData) {
379 externalTabWindow.content(returnData).open();
393 function resizingAndWhatnot(externalWindow) {
394 var kWindow = $(externalWindow.wrapper);
395 externalWindow.center();
396 var preferredHeight = $(
"#externalTabWindow").data(
"preferredHeight");
397 var preferredWidth = $(
"#externalTabWindow").data(
"preferredWidth");
398 var maxHeight = $(window).height() - 150;
400 var height = preferredHeight ==
null ? maxHeight : (preferredHeight ==
"auto" ?
"initial" : (preferredHeight > maxHeight ? maxHeight : preferredHeight));
401 $(kWindow).css({position:
"absolute", top:
"10px", height: height});
415 function userHubCallback(mode, message, unencrypted, counts, groupEncryption, openAccessControl) {
416 if (unencrypted !=
null) {
417 var
template = kendo.template($(
"#titleTemplate").html());
418 $(
".hubTitle").html(
template({user_name: unencrypted.user_name, cardTitle:
null, name: unencrypted.name}));
421 $(
"#cardContainerDiv").data(
"unencrypted", unencrypted);
422 $(
"#groupLinkRedirect [name='payload']").val(groupEncryption);
424 if (mode ==
"successfulSelection" || mode ==
"successfulOneRecord") {
427 var
template = kendo.template($(
"#userInfoTemplate").html());
428 $(
"#cardContainerDiv .infoDiv").html(
template({unencrypted: unencrypted}));
429 if (unencrypted !=
null) {
431 $(
"#cardContainerDiv").removeClass(
"hideAA");
436 if (counts.secureMessages > 0) {
437 var number = counts.secureMessages > 9 ?
"9+" : counts.secureMessages +
"";
438 $(
".cardDiv[data-tabname='secureMessages'] i").html(
"<span class='badge'>"+number+
"</span>");
440 $(
".cardDiv[data-tabname='secureMessages'] i").empty();
442 $(
"#accountTabForm [name='payload']").val(payload);
444 if (openAccessControl !=
null && openAccessControl) {
445 openTabWindow($(
".cardDiv.openFt[data-tabname='accessControl'] .goBtn"),
true);
448 <?php
if (!$isMasterUser && $bamPerm) { ?>
449 var isEmployee = unencrypted.employee ===
"Y";
451 $(
"[data-tabname='viewUser']").addClass(
"dtooltip vsgDisabled employeePerm");
453 <?php
if (!$bamPerm) { ?>
454 $(
"[data-tabname='viewUser']").removeClass(
"employeePerm");
456 $(
"[data-tabname='viewUser']").removeClass(
"dtooltip vsgDisabled employeePerm");