5 require_once(
"aGroupSupport.i");
6 require_once(
"aMemberSupport.i");
8 $showSQL = $SYSENV[
"devmode"];
9 $parameters = array(
"a" => array(
"operation" =>
""));
10 $string = array(
"filter" => FILTER_DEFAULT);
11 HCU_ImportVars($parameters,
"a", array(
"operation" => $string));
13 switch($parameters[
"a"][
"operation"]) {
15 $parameters = array(
"a" => array(
"memAccount" =>
"",
"username" =>
"",
"email" =>
"",
"address" =>
"",
"phone" =>
"",
"partialMatch" =>
"",
"fromUserHub" =>
""));
16 HCU_ImportVars($parameters,
"a", array(
"memAccount" => $string,
"username" => $string,
"email" => $string,
"address" => $string,
"phone" => $string,
17 "partialMatch" => $string,
"fromUserHub" => $string));
18 $returnArray = readUserSearch($dbh, $Cu, $parameters);
19 header(
'Content-type: application/json');
21 unset($returnArray[
"sql"]);
23 print HCU_JsonEncode($returnArray);
26 $parameters = array(
"a" => array(
"selectedUser" =>
"",
"fromUserHub" =>
""));
27 HCU_ImportVars ($parameters,
"a", array(
"selectedUser" => $string,
"fromUserHub" => $string));
28 extract($parameters[
"a"]);
31 $selectedUser = hcu_JsonDecode($selectedUser);
32 $thisThingHere = encryptUser($Cu, $selectedUser,
false);
33 $counts = $fromUserHub ==
"Y" ? getUserHubCounts($dbh, $Cu, intval($selectedUser[
"user_id"])) : 0;
34 $groupEncryption = $fromUserHub ? encryptGroup($dbh, $Cu, $selectedUser) : null;
35 $returnArray = array(
"error" => array(),
"code" => 0,
"encryption" => $thisThingHere,
"counts" => $counts,
"groupEncryption" => $groupEncryption);
36 }
catch(exception $e) {
37 $returnArray = array(
"error" => array($e->getMessage()),
"code" => $e->getCode());
40 header(
'Content-type: application/json');
42 unset($returnArray[
"sql"]);
44 print HCU_JsonEncode($returnArray);
60 function encryptUser($Cu, $unencryptedUser, $encoded =
true) {
63 if (trim($unencryptedUser) ==
"") {
64 throw new exception(
"Need the user.", 1);
66 $unencryptedUser = hcu_JsonDecode($unencryptedUser);
68 if (!is_array($unencryptedUser)) {
69 throw new exception(
"User is not coded correctly.", 2);
71 if (!HCU_array_key_exists(
"user_id", $unencryptedUser)) {
72 throw new exception(
"User id is not in array.", 3);
74 if (!HCU_array_key_exists(
"group_id", $unencryptedUser)) {
75 throw new exception(
"Group id is not in array.", 5);
77 return HCU_PayloadEncode($Cu, $unencryptedUser);
78 }
catch(exception $e) {
79 throw new exception(
"User encryption failed.", 1);
93 function encryptGroup($dbh, $Cu, $user) {
94 if (!HCU_array_key_exists(
"group_id", $user)) {
98 $groupId = intval($user[
"group_id"]);
99 $sql =
"select count(*) as count from ${Cu}user tu where tu.group_id = $groupId";
101 $sth = db_query($sql, $dbh);
103 throw new exception(
"Count query failed.", 100);
105 $count = intval(db_fetch_row($sth,0)[0]);
107 $sql =
"select u.user_id, u.user_name, u.email, array_to_string(ss.cellnumbers, ',') as cellnumber, 108 g.group_name, p.profile_code, g.group_id, p.profile_id, p.description as profile_desc, u.employee 110 left join (select uc.user_id, array_agg(distinct s.cellnumber::text) as cellnumbers from ${Cu}useraccounts uc 111 inner join cusms s on trim(uc.accountnumber) = trim(s.accountnumber) and s.cu = '${Cu}' group by uc.user_id 112 ) ss on u.user_id = ss.user_id 113 left join ${Cu}group g on u.group_id = g.group_id 114 left join cu_profile p on g.profile_id = p.profile_id 115 where u.group_id = $groupId and u.is_group_primary";
117 $sth = db_query($sql, $dbh);
121 throw new exception(
"primary user query failed!", 101);
123 for($i = 0; $row = db_fetch_assoc($sth, $i); $i++) {
124 $row[
"p_name"] = $row[
"user_name"];
126 $profileDesc = $row[
"profile_desc"];
129 $group = array(
"group" => array(
"g_name" => $user[
"group_name"],
"g_id" => $user[
"group_id"],
"p_id" => $user[
"profile_id"],
"g_profile" => $profileDesc,
130 "g_primary" => $prims,
"g_count" => $count));
132 return GroupEncrypt(
null, $Cu, $group);
146 function readUserSearch($dbh, $Cu, $parameters) {
148 $encryption = array(
"message" =>
"",
"hash" =>
"");
150 $sql =
"from ${Cu}user u 151 left join (select uc.user_id, array_agg(distinct s.cellnumber::text) as cellnumbers, {{phoneExists}} as phoneexists from ${Cu}useraccounts uc 152 left join cusms s on trim(uc.accountnumber) = trim(s.accountnumber) and s.cu = '${Cu}' 153 {{innerWhere}} group by uc.user_id 154 ) ss on u.user_id = ss.user_id 155 left join ${Cu}group g on u.group_id = g.group_id 156 left join cu_profile p on g.profile_id = p.profile_id";
161 $partialMatch = isset($parameters[
"a"][
"partialMatch"]) && trim($parameters[
"a"][
"partialMatch"]) ==
"Y";
162 $fromUserHub = isset($parameters[
"a"][
"fromUserHub"]) && trim($parameters[
"a"][
"fromUserHub"]) ==
"Y";
163 foreach($parameters[
"a"] as $key => $value) {
164 if ($key ==
"partialMatch" || $key ==
"fromUserHub" || !isset($value)) {
168 $value = isset($value) ? strtolower(trim($value)) :
"";
173 $sql = str_replace(
"{{innerWhere}}",
"where lower(trim(uc.accountnumber)) = '" . prep_save($value, 12) .
"'", $sql);
174 $sql = str_replace(
"{{phoneExists}}",
"false", $sql);
175 $where[] =
"ss.user_id is not null";
179 $sql = str_replace(
"{{innerWhere}}",
"", $sql);
180 $sql = str_replace(
"{{phoneExists}}",
"false", $sql);
181 $whereStub =
"u.user_name is not null and lower(trim(u.user_name))";
182 $value = prep_save($value, 50);
185 $sql = str_replace(
"{{innerWhere}}",
"", $sql);
186 $sql = str_replace(
"{{phoneExists}}",
"false", $sql);
187 $whereStub =
"u.email is not null and lower(trim(u.email))";
188 $value = prep_save($value, 255);
191 $joins[
"contact"] =
"left join ${Cu}usercontact c on u.contact = c.contact_id";
192 $value = trim(preg_replace(
'/\D+/',
"", $value));
193 $sql = str_replace(
"{{innerWhere}}",
"", $sql);
194 $sql = str_replace(
"{{phoneExists}}",
"bool_or(" . ($partialMatch ?
"s.cellnumber like '%$value%'" :
"s.cellnumber = '$value'") .
")", $sql);
196 $phoneOr[] =
"ss.phoneexists";
197 $phoneOr[] =
"c.phones is not null and replace(c.phones, '-', '') " 198 . ($partialMatch ?
"~ E'.*\"\\\\d*$value\\\\d*\".*'" :
"like '%\"$value\"%'");
199 $where[] =
"(" . implode(
" or ", $phoneOr) .
")";
203 $sql = str_replace(
"{{innerWhere}}",
"", $sql);
204 $sql = str_replace(
"{{phoneExists}}",
"false", $sql);
205 $where[] =
"u.user_id = " . intval($value);
212 $value = str_replace(
"_",
"^_", str_replace(
"%",
"^%", str_replace(
"^",
"^^", $value)));
214 $whereEnd =
"like '%$value%' escape '^'";
217 $whereEnd =
"= '$value'";
220 $where[] =
"$whereStub $whereEnd";
225 if (count($joins) != 0) {
226 $sql .=
" " . implode(
" ", $joins);
228 if (count($where) != 0) {
229 $sql .=
" where " . implode(
" and ", $where);
232 $realSQL =
"select u.user_id, u.user_name, u.email, u.employee, array_to_string(ss.cellnumbers, ',') as cellnumber, 233 g.group_name, p.profile_code, g.group_id, p.profile_id, 234 p.description as profile_desc 236 order by lower(u.user_name)";
238 $sth = db_query($realSQL, $dbh);
240 throw new exception(
"Search query failed.", 1);
243 $primaryAccounts = array();
244 for($i = 0; $row = db_fetch_assoc($sth, $i); $i++) {
245 foreach($row as $key => $value) {
246 $value = is_null($value) ?
"" : trim($value);
249 $data[$row[
"user_id"]] = $row;
251 $data = array_values($data);
253 if (count($data) == 1) {
254 $encryption = encryptUser($Cu, $data[0],
false);
255 $counts = $fromUserHub ? getUserHubCounts($dbh, $Cu, intval($data[0][
"user_id"])) : array();
256 $groupEncryption = $fromUserHub ? encryptGroup($dbh, $Cu, $data[0]) : null;
257 return array(
"code" => 0,
"error" => array(),
"encryption" => $encryption,
"data" => $data,
"counts" => $counts,
"groupEncryption" => $groupEncryption);
259 return array(
"code" => 0,
"error" => array(),
"total" => 0,
"data" => $data);
261 }
catch(exception $e) {
262 return array(
"code" => $e->getCode(),
"error" => array($e->getMessage()),
"data" => array(),
"total" => 0);
270 function getUserHubCounts($dbh, $Cu, $userId) {
272 $sql =
"select count(*) from cuadmeco where unread and not admdeleted and cu = '$Cu' and origination = 1 and user_id = $userId";
274 $sth = db_query($sql, $dbh);
276 throw new exception(
"Secure message query failed.", 2);
278 $counts[
"secureMessages"] = intval(db_fetch_row($sth, 0)[0]);
290 function printUserSearch($self, $callbackName, $fromUserHub =
false, $hasAdvPermissions =
false) {
299 function openUserSearch() {
300 var userSearchDialog = $(
"#userSearchDialog").data(
"kendoDialog");
301 var userFindDialog = $(
"#userFindDialog").data(
"kendoDialog");
303 if (userSearchDialog ==
null) {
304 userSearchDialog = $(
"<div id='userSearchDialog' class='searchDialog'></div>").appendTo(
"body").kendoDialog({
305 title:
"User Search",
306 content: $(
"#userSearchTemplate").html(),
308 <?php
if ($fromUserHub && !$hasAdvPermissions) { ?>
309 {text:
"<i class='fa fa-plus'></i> New User", action:
function(e) {
return false;}}, <?php
310 <?php }
else if ($fromUserHub) { ?>
311 {text:
"<i class='fa fa-plus'></i> New User", action:
function(e) {openAddNewUser(
true);}}, <?php
314 {text:
"Search", primary:
true, action:
function(e) {
315 if (!$.homecuValidator.validate()) {
319 $(
"#userSearchDialog").data(
"mode",
"valid");
321 var name = $(
"[name='userSearchSelect']:checked").data(
"val");
322 parameters[name] = $(
"[name='"+name+
"']").val().trim();
323 parameters.partialMatch = $(
"[name='partialMatch']").prop(
"checked") ?
"Y" :
"N";
325 runSearch(parameters, userSearchDialog);
333 $(
"#userSearchDialog").data(
"mode",
"invalid");
334 if (window.activeWindows !=
null) {
335 window.activeWindows.push(
this);
338 $.homecuValidator.setup({formValidate:
'userSearchForm', formStatusField:
'userSearchValidation'});
341 if (window.activeWindows !=
null) {
342 window.activeWindows.pop();
344 if ($(
"#userSearchDialog").data(
"mode") ==
"invalid" && typeof(<?php echo $callbackName; ?>) ==
"function") {
345 <?php echo $callbackName; ?>(
"invalidSearch");
349 $(
"[name='username']").focus();
352 <?php
if ($fromUserHub && !$hasAdvPermissions) { ?>
353 var tooltip = $(this.wrapper).data(
"kendoTooltip");
354 if (tooltip !=
null) {
359 var toolTipProps = homecuTooltip.defaults;
360 toolTipProps.filter =
"button.k-button:eq(0)";
361 toolTipProps.content =
"You do not have permission to add user.";
363 $(this.wrapper).kendoTooltip(toolTipProps).data(
"kendoTooltip");
366 <?php
if ($fromUserHub && !$hasAdvPermissions) { ?>
367 initOpen:
function() {
368 $(this.wrapper).find(
"button.k-button:eq(0)").addClass(
"vsgDisabled dtooltip");
372 }).data(
"kendoDialog");
374 var noRecordsFoundDialog = $(
"<div id='noRecordsFoundDialog' class='searchDialog'></div>").appendTo(
"body").kendoDialog({
375 title:
"No Users Found",
376 content:
"No users were found.",
378 <?php
if ($fromUserHub && !$hasAdvPermissions) { ?>
379 {text:
"<i class='fa fa-plus'></i> New User", action:
function(e) {
return false;}}, <?php
380 <?php }
else if ($fromUserHub) { ?>
381 {text:
"<i class='fa fa-plus'></i> New User", action:
function(e) {openAddNewUser(
true, $(
"#userSearchForm [name='username']").val());}}, <?php
384 {text:
"Start Over", primary:
true, action:
function(e) {
385 $(
"#userFindDialog").data(
"mode",
"startOver");
390 if (window.activeWindows !=
null) {
391 window.activeWindows.push(
this);
393 $(
"#userFindDialog").data(
"mode",
"invalid");
396 if (window.activeWindows !=
null) {
397 window.activeWindows.pop();
399 switch($(
"#userFindDialog").data(
"mode")) {
402 var gridData = $(
"#userFindDialog").data(
"gridData");
403 var gridSort = $(
"#userFindDialog").data(
"gridSort");
404 var dataItem = $(
"#userFindDialog").data(
"dataItem");
405 var grid = $(
"#userFindGrid").data(
"kendoGrid");
406 grid.dataSource.data(gridData);
407 grid.dataSource.sort(gridSort);
409 var selector = $(
".userTD").filter(
function() {
return $(
this).text().trim() == (dataItem.user_name+
"").trim(); }).closest(
"tr");
410 grid.select(selector);
412 if (typeof(<?php echo $callbackName; ?>) ==
"function") {
413 <?php echo $callbackName; ?>(
"invalidSearch");
417 $(
".userSearchContents [name]").each(
function() {
418 $(
this).attr(
"type") ==
"checkbox" ? $(
this).prop(
"checked",
false) : $(
this).val(
null);
420 userSearchDialog.open();
424 <?php
if ($fromUserHub && !$hasAdvPermissions) { ?>
426 var tooltip = $(this.wrapper).data(
"kendoTooltip");
427 if (tooltip !=
null) {
432 var toolTipProps = homecuTooltip.defaults;
433 toolTipProps.filter =
"button.k-button:eq(0)";
434 toolTipProps.content =
"You do not have permission to add user.";
436 $(this.wrapper).kendoTooltip(toolTipProps).data(
"kendoTooltip");
438 initOpen:
function() {
439 var selector =
"button.k-button:eq(0)";
440 $(this.wrapper).find(
"button.k-button:eq(0)").addClass(
"vsgDisabled dtooltip");
446 }).data(
"kendoDialog");
448 userFindDialog = $(
"<div id='userFindDialog' class='fusedGridDialog searchDialog'></div>").appendTo(
"body").kendoDialog({
449 title:
"Select User",
450 content:
'<div id="userFindValidation" class="k-block k-error-colored formValidateDiv" style="display:none;"></div><div id="userFindGrid"></div>',
452 <?php
if ($fromUserHub && !$hasAdvPermissions) { ?>
453 {text:
"<i class='fa fa-plus'></i> New User", action:
function(e) {
return false;}}, <?php
454 <?php }
else if ($fromUserHub) { ?>
455 {text:
"<i class='fa fa-plus'></i> New User", action:
function(e) {openAddNewUser(
true);}}, <?php
458 {text:
"Start Over", primary:
true, action:
function(e) {
459 $(
"#userFindDialog").data(
"mode",
"startOver");
464 if (window.activeWindows !=
null)
465 window.activeWindows.push(
this);
466 $(
"#userFindDialog").data(
"mode",
"invalid");
468 $.homecuValidator.setup({formValidate:
'userFindDialog', formStatusField:
'userFindValidation'});
471 if (window.activeWindows !=
null) {
472 window.activeWindows.pop();
474 switch($(
"#userFindDialog").data(
"mode")) {
477 var gridData = $(
"#userFindDialog").data(
"gridData");
478 var gridSort = $(
"#userFindDialog").data(
"gridSort");
479 var dataItem = $(
"#userFindDialog").data(
"dataItem");
480 var grid = $(
"#userFindGrid").data(
"kendoGrid");
481 grid.dataSource.data(gridData);
482 grid.dataSource.sort(gridSort);
484 var selector = $(
".userTD").filter(
function() {
return $(
this).text().trim() == (dataItem.user_name+
"").trim(); }).closest(
"tr");
485 grid.select(selector);
487 if (typeof(<?php echo $callbackName; ?>) ==
"function") {
488 <?php echo $callbackName; ?>(
"invalidSearch");
492 $(
".userSearchContents [name]").each(
function() {
493 $(
this).attr(
"type") ==
"checkbox" ? $(
this).prop(
"checked",
false) : $(
this).val(
null);
495 userSearchDialog.open();
499 <?php
if ($fromUserHub && !$hasAdvPermissions) { ?>
501 var tooltip = $(this.wrapper).data(
"kendoTooltip");
502 if (tooltip !=
null) {
507 var toolTipProps = homecuTooltip.defaults;
508 toolTipProps.filter =
"button.k-button:eq(0)";
509 toolTipProps.content =
"You do not have permission to add user.";
511 $(this.wrapper).kendoTooltip(toolTipProps).data(
"kendoTooltip");
513 initOpen:
function() {
514 var selector =
"button.k-button:eq(0)";
515 $(this.wrapper).find(
"button.k-button:eq(0)").addClass(
"vsgDisabled dtooltip");
522 }).data(
"kendoDialog");
524 $(
"#userFindDialog").data(
"gridData", []);
525 $(
"#userFindDialog").data(
"gridSort", {field:
"user_id", dir:
"asc"});
526 $(
"#userFindDialog").data(
"dataItem",
null);
528 var userGrid = $(
"#userFindGrid").kendoGrid({
535 user_id: {type:
"number"},
536 user_name: {type:
"string"},
537 email: {type:
"string"},
538 cellnumber: {type:
"number"},
539 group_name: {type:
"string"},
540 profile_code: {type:
"string"},
541 group_id: {type:
"string"},
542 profile_id: {type:
"string"},
543 description: {type:
"string"}
552 {field:
"user_name", title:
"User", attributes: {
"class":
"userTD"}},
553 {field:
"email", title:
"Email"},
554 {field:
"cellnumber", title:
"Phone"}
557 change:
function(e) {
558 if (!$(
"#userFindGrid").data(
"inChange"))
560 $(
"#userFindGrid").data(
"inChange",
true);
561 $(
"#userFindDialog").data(
"mode",
"select");
562 var dataItem= this.dataItem(this.select()[0]);
563 $(
"#userFindDialog").data(
"dataItem", dataItem);
564 $(
"#userFindDialog").data(
"gridData", this.dataSource.data());
565 $(
"#userFindDialog").data(
"gridSort", this.dataSource.sort());
566 runSelect(userSearchDialog, userFindDialog);
567 $(
"#userFindGrid").data(
"inChange",
false);
571 template:
"No Records Found" 574 }).data(
"kendoGrid");
576 $(
"body").on(
"keypress",
function(e) {
577 if ([10,13].indexOf(e.which) != -1)
579 if ($(
"#gsSearch:visible").length != 0) {
581 }
else if ($(
"#gsConfirm:visible").length != 0) {
583 }
else if ($(
"#gsResults:visible").length != 0) {
585 }
else if ($(
"#gsNoResults:visible").length != 0) {
587 }
else if ($(
".searchDialog:visible").length != 0) {
588 var dialog= $(
".searchDialog:visible").data(
"kendoDialog");
589 var actions= dialog.options.actions;
590 for(var i=0; i!= actions.length; i++) {
591 if (actions[i].primary) {
592 if (actions[i].action() !==
false) {
602 $(
"[name='phone']").blur(
function() {
603 var value = $(
this).val().trim();
604 $(
this).val(value.replace(/\D+/g,
""));
607 $(
"#userSearchDialog [name='userSearchSelect']").click(
function() {
608 var name = $(
this).data(
"val").trim();
609 $(
"#userSearchDialog [type='text']").each(
function() {
610 if (name == $(
this).attr(
"name").trim()) {
611 $(
this).prop(
"disabled",
false);
612 $(
this).attr(
"required",
"required");
613 $(
this).removeClass(
"vsgDisabled");
616 var partialMatch= $(
"[name='partialMatch']");
617 if ($(
this).hasClass(
"disablePartial")) {
618 $(partialMatch).prop(
"disabled",
true);
619 $(partialMatch).prop(
"checked",
false);
620 $(partialMatch).closest(
"label").addClass(
"vsgDisabled");
622 $(partialMatch).prop(
"disabled",
false);
623 $(partialMatch).closest(
"label").removeClass(
"vsgDisabled");
626 $(
this).prop(
"disabled",
true);
628 $(
this).removeClass(
"k-invalid");
629 $(
this).css(
"border",
"1px solid #ceced2");
631 $(
this).removeAttr(
"required");
632 $(
this).addClass(
"vsgDisabled");
637 var toolTipProps = homecuTooltip.defaults;
638 toolTipProps.filter =
"[type='text'].vsgDisabled";
639 toolTipProps.content =
"Search is single input.";
641 $(
"#userSearchDialog").kendoTooltip(toolTipProps);
643 var toolTipProps = homecuTooltip.defaults;
644 toolTipProps.filter =
"label.vsgDisabled";
645 toolTipProps.content =
"Search cannot be partial.";
647 $(
"#userSearchDialog").kendoTooltip(toolTipProps);
650 $(
".userSearchContents [name]").each(
function() {
651 $(
this).attr(
"type") ==
"checkbox" ? $(
this).prop(
"checked",
false) : $(
this).val(
null);
654 var length = $(
"#userFindGrid").data(
"kendoGrid").dataSource.data().length;
655 length <= 1 ? userSearchDialog.open() : userFindDialog.open();
658 function runSelect(userSearchDialog, userFindDialog) {
659 switch($(
"#userFindDialog").data(
"mode")) {
661 $(
"#userFindGrid").data(
"inChange",
true); <?php
663 var gridData = $(
"#userFindDialog").data(
"gridData");
664 var gridSort = $(
"#userFindDialog").data(
"gridSort");
665 var dataItem = $(
"#userFindDialog").data(
"dataItem");
666 var grid = $(
"#userFindGrid").data(
"kendoGrid");
667 grid.dataSource.data(gridData);
668 grid.dataSource.sort(gridSort);
670 var selector = $(
".userTD").filter(
function() {
return $(
this).text().trim() == (dataItem.user_name+
"").trim(); }).closest(
"tr");
671 grid.select(selector);
673 if (typeof(<?php echo $callbackName; ?>) ==
"function") {
674 <?php echo $callbackName; ?>(
"invalidFind");
676 $(
"#userFindGrid").data(
"inChange",
false);
677 userFindDialog.close();
680 var parameters = {selectedUser: kendo.stringify($(
"#userFindDialog").data(
"dataItem")), fromUserHub:
"<?php echo $fromUserHub ? 'Y' : 'N'; ?>"};
682 $.post(
"<?php echo $self; ?>&operation=userFind", parameters,
function(data) {
684 if (data.error.length > 0) {
685 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
686 }
else if (typeof(<?php echo $callbackName; ?>) ==
"function") {
687 var dataItem = $(
"#userFindDialog").data(
"dataItem");
688 <?php echo $callbackName; ?>(
"successfulSelection", data.encryption, dataItem, data.counts, data.groupEncryption, data.accountEncryption);
689 userFindDialog.close();
694 $(
".userSearchContents [name]").each(
function() {
695 $(
this).attr(
"type") ==
"checkbox" ? $(
this).prop(
"checked",
false) : $(
this).val(
null);
697 userFindDialog.close();
698 userSearchDialog.open();
709 function openFindDialog () {
710 var length = $(
"#userFindGrid").data(
"kendoGrid").dataSource.data().length;
711 var dialog = length == 0 ? $(
"#noRecordsFoundDialog").data(
"kendoDialog") : (length == 1 ? null : $(
"#userFindDialog").data(
"kendoDialog"));
712 if (dialog !=
null) {
723 function runSearch(parameters, userSearchDialog) {
724 parameters.fromUserHub =
"<?php echo $fromUserHub ? 'Y' : 'N'; ?>";
726 $.post(
"<?php echo $self; ?>&operation=userSearch", parameters,
function(data) {
728 if (data.error.length > 0) {
729 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
731 userSearchDialog.close();
732 if (data.encryption !=
null && typeof(<?php echo $callbackName; ?>) ==
"function") {
733 $(
"#userFindGrid").data(
"kendoGrid").dataSource.data(data.data);
734 <?php echo $callbackName; ?>(
"successfulOneRecord", data.encryption, data.data[0], data.counts, data.groupEncryption, data.accountEncryption);
735 }
else if (data.data.length == 0) {
736 $(
"#noRecordsFoundDialog").data(
"kendoDialog").open();
738 $(
"#userFindGrid").data(
"kendoGrid").dataSource.data(data.data);
739 $(
"#userFindDialog").data(
"kendoDialog").open();
746 function printUserSearchTemplate() { ?>
747 <script
id=
"userSearchTemplate" type=
"text/x-kendo-template">
748 <form
id=
"userSearchForm" action=
"javascript:void()"><div
class=
"userSearchContents container hcu-all-100">
749 <div
class=
"row hcuSpacer"><div
id=
"userSearchValidation" class=
"k-block k-error-colored formValidateDiv" style=
"display:none;"><div
class=
"col-xs-12 hcu-no-padding">
751 <div
class=
"row hcuSpacer">
752 <div
class=
"col-xs-5 hcu-no-padding radio"><label><input type=
"radio" checked name=
"userSearchSelect" data-val=
"username"> Username</label></div>
753 <div
class=
"col-xs-7 hcu-no-padding"><input name=
"username" type=
"text" maxlength=
"50" class=
"hcu-all-100 k-input k-textbox required" focus
754 data-required-msg=
"Username is required" required=
"required"></div>
756 <div
class=
"row hcuSpacer">
757 <div
class=
"col-xs-5 hcu-no-padding radio"><label><input type=
"radio" name=
"userSearchSelect" data-val=
"email"> Email</label></div>
758 <div
class=
"col-xs-7 hcu-no-padding"><input name=
"email" type=
"text" maxlength=
"255" class=
"hcu-all-100 k-input k-textbox vsgDisabled" disabled
759 data-required-msg=
"Email is required"></div>
761 <div
class=
"row hcuSpacer">
762 <div
class=
"col-xs-5 hcu-no-padding radio"><label><input type=
"radio" name=
"userSearchSelect" data-val=
"memAccount"> Member Acct #</label></div>
763 <div
class=
"col-xs-7 hcu-no-padding"><input name=
"memAccount" type=
"text" maxlength=
"12" class=
"hcu-all-100 k-input k-textbox vsgDisabled disablePartial" disabled
764 data-required-msg=
"Member account is required"></div>
766 <div
class=
"row hcuSpacer">
767 <div
class=
"col-xs-5 hcu-no-padding radio"><label><input type=
"radio" name=
"userSearchSelect" data-val=
"phone"> Phone</label></div>
768 <div
class=
"col-xs-7 hcu-no-padding"><input name=
"phone" type=
"text" class=
"hcu-all-100 k-input k-textbox vsgDisabled" disabled
769 data-required-msg=
"Phone is required"></div>
771 <div
class=
"row hcuSpacer">
772 <label
class=
"col-xs-5 hcu-no-padding"> </label>
773 <div
class=
"col-xs-7 checkbox hcu-no-padding"><label><input name=
"partialMatch" type=
"checkbox"><span
id=
"partialMatchText">Partial Match</span></label></div>