import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import 'rxjs/Rx'; @Injectable() export class ManageRoleService { private environment: any; constructor(public http: HttpClient) { } public setEnvironment = (environment: any) => { this.environment = environment; } public getRoleMembers = (campus, role) => { return this.http.get(`${this.environment.SERVER_URL}/secure/roles/${role}/campusCode/${campus}`); } public addRole = (userId, campus, role) => { return this.http.put(`${this.environment.SERVER_URL}/secure/roles/${role}/campusCode/${campus}/members/${userId}`, {}, {}); } public removeRole = (userId, campus, role) => { return this.http.delete(`${this.environment.SERVER_URL}/secure/roles/${role}/campusCode/${campus}/members/${userId}`); } public getSearchResultsByCampus = (startsWith: string, campusCode: string) => { if (campusCode) return this.http.get(`${this.environment.PEOPLE_SERVICE_URL}/search/campusCode/${campusCode}/maxResults/20?searchTerms=${startsWith}`); else return this.http.get(`${this.environment.PEOPLE_SERVICE_URL}/search/maxResults/20?searchTerms=${startsWith}`); } public highlightSearchText(people: any, searchText: string) { let displayText = people.firstName + " " + people.lastName + (people.email?" (" + people.email + ")":""); let SearchTextArr = [], displayTextArr = []; let result = ""; if (searchText.trim().indexOf(" ") > 0) { SearchTextArr = searchText.split(' '); displayTextArr = displayText.split(' '); displayTextArr.forEach(building => { for (var i = 0; i < SearchTextArr.length; i++) { let res = this.replaceHighlightText(SearchTextArr[i], building); if (res == building && i == SearchTextArr.length - 1) result += building + " "; else if (this.containsHTML(res)) { result += res + " "; break; } } }); } else { result = this.replaceHighlightText(searchText, displayText); } return result; } private containsHTML(html: string) { var textMatcher = new RegExp(/ 0) { let tag = document.createElement('span'); tag.innerHTML = match; tag.className = "highlight-text-auto" return tag.outerHTML; } else { return srcText; } }); return result; } else return srcText; } }