cm.onSelect = function()

in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/createMatter.controller.js [1276:1380]


            cm.onSelect = function ($item, $model, $label, value, fucnValue, $event, username) {
              
                var typeheadelelen = angular.element('.dropdown-menu li').length;
                var noresults = true;
                if (typeheadelelen == 1) {
                    if (angular.element('.dropdown-menu li a')[0]) {
                        if (angular.element('.dropdown-menu li a')[0].innerHTML == "No results found" ||( $item && $item.name == "No results found")) {
                            noresults = false;
                            if ($event.keyCode == 9 || $event.keyCode == 13) {
                                cm.user = angular.element('#' + $event.currentTarget.id).val();
                            }
                        }
                    }
                }
                if ($item && $item.name !== "No results found") {
                    if (value == "conflictcheckuser") {
                        cm.selectedConflictCheckUser = $item.name + '(' + $item.email + ')';
                        cm.textForAria($item.name + ' has been selected');
                    }

                    if (value == "team" || value == "blockuser") {
                        if ($label.assignedAllUserNamesAndEmails && $label.assignedAllUserNamesAndEmails.indexOf(';') > -1) {
                            $label.assignedUser = $item.name + '(' + $item.email + ');';
                            if ($label.assignedAllUserNamesAndEmails.indexOf($item.name) == -1 ) {
                                if ($label.assignedAllUserNamesAndEmails.indexOf($item.email) > -1) {
                                    $label.assignedAllUserNamesAndEmails = $label.assignedAllUserNamesAndEmails.replace($item.email + ";", "");
                                }
                                $label.assignedAllUserNamesAndEmails = $label.assignedAllUserNamesAndEmails + $label.assignedUser;
                                $label.assignedUser = $label.assignedAllUserNamesAndEmails;
                                
                            } else {
                                $label.assignedUser = $label.assignedAllUserNamesAndEmails;
                            }
                            cm.textForAria($item.name + ' has been selected');
                        }
                        else {
                            cm.textForAria($item.name + ' has been selected');
                            $label.assignedUser = $item.name + '(' + $item.email + ');';
                            $label.assignedAllUserNamesAndEmails = $item.name + '(' + $item.email + ');';
                        }
                        cm.typehead = false;
                        cm.notificationPopUpBlock = false;
                    }
                    if (-1 == cm.oSiteUsers.indexOf($item.email)) {
                        cm.oSiteUsers.push($item.email);
                    }
                    if (-1 == cm.oSiteUserNames.indexOf($item.name)) {
                        cm.oSiteUserNames.push($item.name);
                    }
                    if (value == "team") {
                        $label.userConfirmation = false;
                        cm.checkUserExists($label);
                    }
                }
                else {
                    if (fucnValue == "on-blurr") {
                        cm.user = username;
                        $label.assignedAllUserNamesAndEmails = $label.assignedUser;
                        var userEmailTxt = "",userEmailString="";
                        var userNames = getUserName($label.assignedUser, true);
                        var userEmails = getUserName($label.assignedUser, false);
                        var exsistingTeams = [];
                        for (var i = 0; i < userEmails.length; i++) {
                            if (userEmails[i] != "" && validateEmail(userEmails[i])) {
                                angular.forEach($label.teamUsers, function (team) {
                                    if (team.userName == userEmails[i]) {
                                        userEmailString = userEmailString + userEmails[i] + ";";
                                        exsistingTeams.push(team);                                       
                                    }
                                });
                             var userNameAndEmailTxt = (userNames[i] == userEmails[i]) ? userEmails[i] : userNames[i] + "(" + userEmails[i] + ")";
                             userEmailTxt = userEmailTxt + userNameAndEmailTxt + ";";
                             cm.textForAria(userEmailTxt);
                            }
                        }
                        angular.element('#txtUser' + $label.assigneTeamRowNumber).attr('uservalue', userEmailString);
                        $label.assignedAllUserNamesAndEmails = userEmailTxt;
                        $label.teamUsers = exsistingTeams;

                    }
                    if (fucnValue == "on-blurr" && value == "teamuser") {
                        if (typeheadelelen == 0 && noresults) {
                            cm.checkUserExists($label, $event);                            
                        }else if(typeheadelelen >=1 && !noresults){
                            cm.checkUserExists($label, $event);
                            $("[uib-typeahead-popup].dropdown-menu").css("display", "none");
                        }
                    }
                    if (!noresults) {
                        if (value == "conflictcheckuser") {
                            $label = "";
                            cm.selectedConflictCheckUser = "";
                        }
                        if (value == "blockuser") {
                            $label.assignedUser = "";
                            $label.assignedUser = cm.user;
                            cm.blockedUserName = "";
                        }
                        if (value == "team") {
                            $label.assignedUser = "";
                            $label.assignedUser = cm.user;
                        }                      
                    }
                }
            }