principal-dashboard-lib-v2 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/principal-dashboard-lib-v2.umd.js +9 -7
- package/bundles/principal-dashboard-lib-v2.umd.js.map +1 -1
- package/bundles/principal-dashboard-lib-v2.umd.min.js +1 -1
- package/bundles/principal-dashboard-lib-v2.umd.min.js.map +1 -1
- package/esm2015/lib/chartheader/chartheader.component.js +2 -2
- package/esm2015/lib/chartview/chartview.component.js +3 -2
- package/esm2015/lib/principal-dashboard-lib-v2.service.js +7 -6
- package/fesm2015/principal-dashboard-lib-v2.js +9 -7
- package/fesm2015/principal-dashboard-lib-v2.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal-dashboard-lib-v2.js","sources":["../../../projects/principal-dashboard-lib-v2/src/lib/principal-dashboard-lib-v2.service.ts","../../../projects/principal-dashboard-lib-v2/src/lib/principal-dashboard-lib-v2.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/chartheader/chartheader.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/chartview/chartview.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/detailedview/detailedview.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/exceldata.service.ts","../../../projects/principal-dashboard-lib-v2/src/lib/header/header.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/tableview/tableview.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/principal-dashboard-lib-v2.module.ts","../../../projects/principal-dashboard-lib-v2/src/public-api.ts","../../../projects/principal-dashboard-lib-v2/src/principal-dashboard-lib-v2.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Subject, BehaviorSubject, ReplaySubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PrincipalDashboardLibV2Service {\r\npublic resoureMetaData:any;\r\npublic usersMetaData:any;\r\npublic schoolTerminalData:any;\r\npublic userConsoleData:any;\r\n\r\npublic isResoureMetaDataReady = new ReplaySubject();\r\npublic isResoureMetaDataReady$ = this.isResoureMetaDataReady.asObservable();\r\n\r\npublic isUserReqiuredDataReady = new ReplaySubject();\r\npublic isUserReqiuredDataReady$ = this.isUserReqiuredDataReady.asObservable();\r\n\r\n public mychartType: any = '';\r\n public dataType: any = '';\r\n public userAllData: any = '';\r\n public userMetadata: any = {userDetails:[],resourceDetails:[]};\r\n public resoureMetadata = new Array();\r\n public userDetailObject: any = {};\r\n public userlist:any = false;\r\n public myEndTime :any;\r\n \r\n //for change chart Type\r\n public chartType = new BehaviorSubject(this.mychartType);\r\n public chartType$ = this.chartType.asObservable();\r\n //for change userWise To classRoom wise or vice versa\r\n public isUserWise_data = new BehaviorSubject(true);\r\n public isUserWise_data$ = this.isUserWise_data.asObservable();\r\n // for all user and current user information\r\n public isAllUsers = new BehaviorSubject(this.userlist);\r\n public isAllUsers$ = this.isAllUsers.asObservable();\r\n //for get details of selected user\r\n public detailedviewData = new BehaviorSubject(this.userMetadata);\r\n public detailedviewData$ = this.detailedviewData.asObservable();\r\n\r\n\r\n constructor() { }\r\n \r\n genarateResourseReqiuredData(data: any): any {\r\n this.isResoureMetaDataReady.next(false);\r\n let resourceMetadataMatrix = new Array();\r\n \r\n if(data && data !== null){\r\n let resouseID: any;\r\n let title: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let teachingpoint: any;\r\n let type: any;\r\n let resourceMetadata = data.resourcesMetadata.resourceMetadata;\r\n \r\n if(resourceMetadata!= undefined && resourceMetadata.length>0) {\r\n for (var i = 0; i < resourceMetadata.length;i++){\r\n //----------//resouseID\r\n resouseID = resourceMetadata[i].resourceId;\r\n //----------//subject\r\n if (resourceMetadata[i].subject != undefined) {\r\n if (resourceMetadata[i].subject.title != undefined) {\r\n subject = resourceMetadata[i].subject.title;\r\n } else {\r\n subject = '';\r\n }\r\n } else {\r\n subject = '';\r\n }\r\n //----------//grade\r\n if (resourceMetadata[i].grade != undefined) {\r\n if (resourceMetadata[i].grade.title != undefined) {\r\n grade = resourceMetadata[i].grade.title;\r\n } else {\r\n grade = '';\r\n }\r\n } else {\r\n grade = '';\r\n }\r\n //----------//chapter\r\n if (resourceMetadata[i].chapter != undefined) {\r\n if (resourceMetadata[i].chapter.title != undefined) {\r\n chapter = resourceMetadata[i].chapter.title;\r\n } else {\r\n chapter = '';\r\n }\r\n } else {\r\n chapter = '';\r\n }\r\n \r\n //----------//teachingpoint\r\n if (resourceMetadata[i].teachingpoint != undefined) {\r\n if (resourceMetadata[i].teachingpoint.title != undefined) {\r\n teachingpoint = resourceMetadata[i].teachingpoint.title;\r\n } else {\r\n teachingpoint = '';\r\n }\r\n } else {\r\n teachingpoint = '';\r\n }\r\n //----------//type\r\n if (resourceMetadata[i].type != undefined) {\r\n type = this.getDisplaytypeValue(resourceMetadata[i].type);\r\n } else {\r\n type = '';\r\n }\r\n \r\n //----------//title\r\n if (resourceMetadata[i].title != undefined) {\r\n title = resourceMetadata[i].title;\r\n } else {\r\n title = '';\r\n }\r\n let resourceMetauserConsoleData = {\r\n resouseID:resouseID,\r\n subject:subject,\r\n grade:grade,\r\n chapter:chapter,\r\n teachingpoint:teachingpoint,\r\n type:type,\r\n title:title\r\n }\r\n resourceMetadataMatrix.push(resourceMetauserConsoleData);\r\n this.resoureMetaData = resourceMetadataMatrix;\r\n this.isResoureMetaDataReady.next(true);\r\n }\r\n }\r\n }\r\n // this.resoureMetaData = resourceMetadataMatrix;\r\n return resourceMetadataMatrix;\r\n }\r\n genarateUserReqiuredData(data: any): any {\r\n this.isUserReqiuredDataReady.next(false);\r\n let usersMetadataMatrix = new Array();\r\n let usermetadataMatrixUpdated = new Array();\r\n let schoolTerminalMatrix = new Array();\r\n let userConsoleMatrix = new Array();\r\n if(data && data !== null){\r\n let userConsole = data.usersConsole.userConsole;\r\n let usersMetadata = data.usersMetadata.userMetadata;\r\n let schoolTerminal = data.schoolTerminals.schoolTerminal;\r\n \r\n if(usersMetadata!= null && usersMetadata.length > 0){\r\n for (let i = 0; i < usersMetadata.length; i++) {\r\n let userId: any;\r\n let userName: any;\r\n let userSubjects: any;\r\n let listOfUser:any = {}\r\n if (usersMetadata[i].userId!=\"\") {\r\n userId = usersMetadata[i].userId;\r\n \r\n if (usersMetadata[i].fullName !== undefined) {\r\n userName = usersMetadata[i].fullName // get name of user w.r.t. ID\r\n } else {\r\n userName = '';\r\n }\r\n \r\n if (usersMetadata[i].userSubjects !== undefined) {\r\n userSubjects = usersMetadata[i].userSubjects // get name of user w.r.t. ID\r\n } else {\r\n userSubjects = '';\r\n }\r\n \r\n listOfUser = {\r\n userId:userId, \r\n userName:userName, \r\n userSubjects:userSubjects\r\n };\r\n usersMetadataMatrix.push(listOfUser); // array of all users\r\n }\r\n }\r\n }\r\n for (var i = 0; i < usersMetadataMatrix.length; i++) {\r\n usersMetadataMatrix.forEach(element => {\r\n if (usersMetadataMatrix[i].userName === element.userName) {\r\n usermetadataMatrixUpdated.push(usersMetadataMatrix[i]); //array of same name users\r\n usersMetadataMatrix.splice(i, 1); //delete the same name users from usermetadataMatrix\r\n }\r\n });\r\n }\r\n for (var i = 0; i < usermetadataMatrixUpdated.length; i++) {\r\n // const randomNumber = document.createElement('span');\r\n // randomNumber.innerHTML = i.toString();\r\n usermetadataMatrixUpdated[i].userName = usermetadataMatrixUpdated[i].userName + \" \" + i;\r\n usersMetadataMatrix.push(usermetadataMatrixUpdated[i]); //adding same name users in usermetadataMatrix with some random charators\r\n this.usersMetaData = usersMetadataMatrix;\r\n }\r\n if(schoolTerminal != null && schoolTerminal.length > 0){\r\n for (var i = 0; i < schoolTerminal.length; i++) {\r\n let schoolId:any;\r\n let terminalKey:any;\r\n let terminalType:any;\r\n let location:any;\r\n let schoolTerminalData:any = {};\r\n \r\n //----------//schoolId\r\n if (schoolTerminal[i].schoolId !== undefined) {\r\n schoolId = schoolTerminal[i].schoolId // get name of user w.r.t. ID\r\n } else {\r\n schoolId = '';\r\n }\r\n //----------//terminalKey\r\n if (schoolTerminal[i].terminalKey !== undefined) {\r\n terminalKey = schoolTerminal[i].terminalKey // get name of user w.r.t. ID\r\n } else {\r\n terminalKey = '';\r\n }\r\n //----------//terminalType\r\n if (schoolTerminal[i].terminalType !== undefined) {\r\n terminalType = schoolTerminal[i].terminalType // get name of user w.r.t. ID\r\n } else {\r\n terminalType = '';\r\n }\r\n \r\n //----------//location\r\n if (schoolTerminal[i].metadata !== undefined) {\r\n let metadataJSON = JSON.parse(schoolTerminal[i].metadata);\r\n \r\n location = metadataJSON.location // get name of user w.r.t. ID\r\n console.log(\"metadataJSON\",location);\r\n } else {\r\n location = '';\r\n }\r\n schoolTerminalData = {\r\n schoolId:schoolId,\r\n terminalKey:terminalKey,\r\n terminalType:terminalType,\r\n location:location\r\n };\r\n \r\n schoolTerminalMatrix.push(schoolTerminalData);\r\n this.schoolTerminalData = schoolTerminalMatrix;\r\n }\r\n }\r\n if(userConsole !=null && userConsole.length > 0){\r\n for (let index = 0; index < userConsole.length; index++) {\r\n let userId: any;\r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let selectedDate: any;\r\n let terminalIP: any;\r\n let userConsoleResources: any;\r\n let resourceMetadataIDS: any;\r\n let resourceMetauserConsoleData = new Array();\r\n let userName:any;\r\n let userSubjects:any;\r\n let terminalLocation: any;\r\n //----------//user iD\r\n if (userConsole[index].userId !== undefined) {\r\n userId = userConsole[index].userId // get name of user w.r.t. ID\r\n } else {\r\n userId = '';\r\n }\r\n //----------// startTime \r\n if (userConsole[index].startTime !== undefined) {\r\n startTime = userConsole[index].startTime // get name of user w.r.t. ID\r\n } else {\r\n startTime = '';\r\n }\r\n //----------// endTime \r\n if (userConsole[index].endTime !== undefined) {\r\n endTime = userConsole[index].endTime // get name of user w.r.t. ID\r\n this.myEndTime = endTime;\r\n } else {\r\n endTime = '';\r\n }\r\n //----------// Date \r\n if (userConsole[index].selectedDate !== undefined) {\r\n selectedDate = userConsole[index].selectedDate // get name of user w.r.t. ID\r\n } else {\r\n selectedDate = '';\r\n }\r\n \r\n //----------// Duration\r\n if (userConsole[index].duration !== undefined) {\r\n duration = userConsole[index].duration // get name of user w.r.t. ID\r\n } else {\r\n duration = '';\r\n }\r\n //----------// terminalIP\r\n if (userConsole[index].terminalIP !== undefined) {\r\n terminalIP = userConsole[index].terminalIP // get name of user w.r.t. ID\r\n } else {\r\n terminalIP = '';\r\n }\r\n \r\n //----------// userConsoleResources\r\n if (userConsole[index].userConsoleResources !== undefined) {\r\n userConsoleResources = userConsole[index].userConsoleResources // get name of user w.r.t. ID\r\n } else {\r\n userConsoleResources = null;\r\n }\r\n \r\n if(userConsoleResources != null){\r\n if (userConsoleResources.userConsoleResource !== undefined) {\r\n resourceMetauserConsoleData = userConsoleResources.userConsoleResource; // get name of user w.r.t. ID\r\n } else {\r\n resourceMetauserConsoleData = [];\r\n }\r\n }\r\n \r\n //----------// userName and userSubjects\r\n for (let i = 0; i < usersMetadataMatrix.length; i++) {\r\n if (userId === usersMetadataMatrix[i].userId) {\r\n userName = usersMetadataMatrix[i].userName;\r\n userSubjects = usersMetadataMatrix[i].userSubjects;\r\n }\r\n }\r\n //----------// terminalIP and terminalLocation\r\n \r\n for (let i = 0; i < schoolTerminalMatrix.length; i++) {\r\n console.log(\"schoolTerminalMatrix[i]\",schoolTerminalMatrix[i]);\r\n console.log(\"schoolTerminalMatrix[i].terminalKey\",terminalIP,schoolTerminalMatrix[i].terminalKey);\r\n if (terminalIP === schoolTerminalMatrix[i].terminalKey) {\r\n terminalLocation = schoolTerminalMatrix[i].location;\r\n break;\r\n }else{\r\n terminalLocation = \"location\";\r\n }\r\n }\r\n let userData = {\r\n userId:userId,\r\n userName:userName,\r\n startTime:new Date(startTime),\r\n endTime:new Date(endTime),\r\n terminalIP:terminalIP,\r\n resourceMetauserConsoleData:resourceMetauserConsoleData,\r\n duration:duration,\r\n terminalLocation:terminalLocation,\r\n userSubjects:userSubjects\r\n }\r\n userConsoleMatrix.push(userData);\r\n this.userConsoleData = userConsoleMatrix;\r\n this.isUserReqiuredDataReady.next(true);\r\n }\r\n }\r\n }\r\n // console.log(usersMetadataMatrix,schoolTerminalMatrix,userConsoleMatrix);\r\n return {\r\n usersMetadata:usersMetadataMatrix,\r\n schoolTerminalData:schoolTerminalMatrix,\r\n userConsoleData: userConsoleMatrix\r\n }\r\n }\r\n userWiseChartData(){\r\n let dataTableforChart = new Array();\r\n dataTableforChart = [];\r\n if(this.userConsoleData){\r\n if(this.userConsoleData.length > 0){\r\n for(let i = 0; i < this.userConsoleData.length; i++){\r\n let userData = [this.userConsoleData[i].userName,this.userConsoleData[i].startTime,this.userConsoleData[i].endTime];\r\n dataTableforChart.push(userData);\r\n }\r\n }\r\n }\r\n return dataTableforChart;\r\n }\r\n classRoomWiseChartData(){\r\n let dataTableforChart = new Array();\r\n dataTableforChart = [];\r\n if(this.userConsoleData){\r\n console.log(\"this.userConsoleData\",this.userConsoleData);\r\n for(let i = 0; i < this.userConsoleData.length; i++){\r\n let userData = [this.userConsoleData[i].terminalIP,this.userConsoleData[i].startTime,this.userConsoleData[i].endTime];\r\n dataTableforChart.push(userData);\r\n }\r\n }\r\n return dataTableforChart;\r\n \r\n }\r\n allUserChartData(){\r\n let dataTableforChart = new Array();\r\n dataTableforChart = [];\r\n let AlluserDetailsForTableChart =new Array();\r\n AlluserDetailsForTableChart = [];\r\n if(this.userConsoleData && this.usersMetaData){\r\n let inActiveuserName: any;\r\n let userSubjects: any;\r\n let myID: any;\r\n let AlluserDetails =new Array();\r\n for (let index = 0; index < this.userConsoleData.length; index++) {\r\n AlluserDetails.push(this.userConsoleData[index]);\r\n AlluserDetailsForTableChart.push(this.userConsoleData[index])\r\n }\r\n for (let i = 0; i < this.usersMetaData.length; i++) {\r\n myID = this.usersMetaData[i].userId;\r\n inActiveuserName = this.usersMetaData[i].userName;\r\n userSubjects = this.usersMetaData[i].userSubjects;\r\n let myChartRowuserConsoleData = \r\n {\r\n userId:myID,\r\n userName:inActiveuserName,\r\n startTime:new Date(this.myEndTime),\r\n endTime:new Date(this.myEndTime),\r\n terminalIP:\"\",\r\n resourceMetauserConsoleData:[],\r\n duration:\"0\",\r\n terminalLocation:\"\",\r\n userSubjects:userSubjects\r\n };\r\n AlluserDetails.push(myChartRowuserConsoleData);\r\n \r\n let myTableRowuserConsoleData = {\r\n userId:myID,\r\n userName:inActiveuserName,\r\n startTime:\"\",\r\n endTime:\"\",\r\n terminalIP:\"\",\r\n resourceMetauserConsoleData:[],\r\n duration:0,\r\n terminalLocation:\"\",\r\n userSubjects:userSubjects\r\n };\r\n AlluserDetailsForTableChart.push(myTableRowuserConsoleData);\r\n }\r\n for(let i = 0; i < AlluserDetails.length; i++){\r\n let userData = [AlluserDetails[i].userName,AlluserDetails[i].startTime,AlluserDetails[i].endTime];\r\n dataTableforChart.push(userData);\r\n }\r\n }\r\n return {forChartData:dataTableforChart,fordurationTable:AlluserDetailsForTableChart}\r\n }\r\n allRoomsData(){\r\n let dataTableforChart = new Array();\r\n dataTableforChart = [];\r\n let allRoomsDetails = new Array();\r\n allRoomsDetails = [];\r\n if(this.userConsoleData && this.schoolTerminalData){\r\n let myChartRowData: any={};\r\n let inActiveClassRoom: any;\r\n for(let i = 0; i < this.userConsoleData.length; i++){\r\n allRoomsDetails.push(this.userConsoleData[i]);\r\n let userData = [this.userConsoleData[i].terminalLocation,this.userConsoleData[i].startTime,this.userConsoleData[i].endTime];\r\n dataTableforChart.push(userData);\r\n }\r\n \r\n for (let i = 0; i < this.schoolTerminalData.length; i++) {\r\n inActiveClassRoom = this.schoolTerminalData[i].location;\r\n \r\n myChartRowData = {\r\n userId:\"\",\r\n userName:\"\",\r\n startTime:new Date(this.myEndTime),\r\n endTime:new Date(this.myEndTime),\r\n terminalIP:\"\",\r\n resourceMetauserConsoleData:[],\r\n duration:0,\r\n terminalLocation:inActiveClassRoom,\r\n userSubjects:\"\"\r\n };\r\n allRoomsDetails.push(myChartRowData);\r\n let myChartRowuserConsoleData = [inActiveClassRoom,new Date(this.myEndTime),new Date(this.myEndTime)];\r\n dataTableforChart.push(myChartRowuserConsoleData);\r\n }\r\n \r\n }\r\n return {forChartData:dataTableforChart,fordurationTable:allRoomsDetails};\r\n }\r\n dataForTableView(userConsoleMatrix: any,resourceMetadataMatrix: any) {\r\n let currentDate: any;\r\n let resourceMatrixForTableChart = new Array();\r\n let resourceMatrixForExcel = new Array();\r\n resourceMatrixForTableChart = [];\r\n resourceMatrixForExcel = [];\r\n for (let i = 0; i <userConsoleMatrix.length; i++) {\r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let terminalIP: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let AssestDetail: any;\r\n let resourceType: any;\r\n let resourceTitle: any;\r\n let teachingpoint: any;\r\n let location: any;\r\n let teacherName: any;\r\n let teacherSubject: any;\r\n \r\n let resourceMetadataIDs: any;\r\n let resourceArrayForExcel = new Array();\r\n let resourceArrayForTableChart = new Array();\r\n let userConsoleDataMatrix = new Array();\r\n resourceArrayForTableChart = [];\r\n userConsoleDataMatrix = [];\r\n //----------------- for subject and Name\r\n \r\n\r\n teacherSubject = userConsoleMatrix[i].userSubjects;\r\n teacherName = userConsoleMatrix[i].userName;\r\n //----------------- for start Time and EndTime \r\n if ((userConsoleMatrix[i].startTime != undefined && userConsoleMatrix[i].startTime != \"\") && (userConsoleMatrix[i].endTime != undefined&&userConsoleMatrix[i].endTime != \"\")) {\r\n startTime = userConsoleMatrix[i].startTime.toLocaleTimeString('en-US', { hour12: true });\r\n endTime = userConsoleMatrix[i].endTime.toLocaleTimeString('en-US', { hour12: true });\r\n currentDate = userConsoleMatrix[i].startTime.getDate() + '/' + (userConsoleMatrix[i].startTime.getMonth()+1) + '/' + userConsoleMatrix[i].startTime.getFullYear();\r\n }\r\n //----------------- for duration\r\n duration = Math.floor(userConsoleMatrix[i].duration);\r\n //----------------- for Terminal loaction and terminal IP\r\n location = userConsoleMatrix[i].terminalLocation;\r\n terminalIP = userConsoleMatrix[i].terminalIP;\r\n let roomDetail = location + ' ' + terminalIP;\r\n \r\n resourceMetadataIDs = userConsoleMatrix[i].resourceMetauserConsoleData;\r\n \r\n if (resourceMetadataIDs.length == 0) {\r\n subject = undefined;\r\n grade = undefined;\r\n chapter = undefined;\r\n teachingpoint = undefined;\r\n AssestDetail = undefined;\r\n resourceTitle = undefined;\r\n resourceType = undefined;\r\n resourceArrayForTableChart = [teacherName,teacherSubject,currentDate,startTime,endTime,duration,roomDetail,subject,grade,chapter,teachingpoint,AssestDetail];\r\n resourceMatrixForTableChart.push(resourceArrayForTableChart);\r\n \r\n }else{\r\n //resourceMetadataMatrix = [resouseID,subject,grade,chapter,teachingpoint,type,title]\r\n for (let k = 0; k < resourceMetadataIDs.length; k++) {\r\n for (let i = 0; i < resourceMetadataMatrix.length; i++) {\r\n if (resourceMetadataIDs[k] === resourceMetadataMatrix[i].resouseID) {\r\n subject = resourceMetadataMatrix[i].subject;\r\n grade = resourceMetadataMatrix[i].grade;\r\n chapter = resourceMetadataMatrix[i].chapter;\r\n teachingpoint = resourceMetadataMatrix[i].teachingpoint;\r\n AssestDetail = this.getDisplaytypeValue(resourceMetadataMatrix[i].type) + \": \" + resourceMetadataMatrix[i].title;\r\n\r\n resourceArrayForTableChart = [teacherName,teacherSubject,currentDate,startTime,endTime,duration,roomDetail,subject,grade,chapter,teachingpoint,AssestDetail];\r\n resourceMatrixForTableChart.push(resourceArrayForTableChart);\r\n teacherName = undefined;\r\n teacherSubject = undefined;\r\n currentDate = undefined;\r\n startTime = undefined;\r\n endTime = undefined;\r\n duration = undefined;\r\n roomDetail = undefined;\r\n \r\n }\r\n }\r\n }\r\n }\r\n }\r\n return resourceMatrixForTableChart;\r\n }\r\n dataForDetailedView(userConsoleMatrix: any,resourceMetadataMatrix: any, rowLabel: any) {\r\n let detailedView_UserDataMatrix = new Array();\r\n detailedView_UserDataMatrix = [];\r\n let detailedView_ResourceDataMatrix = new Array();\r\n detailedView_ResourceDataMatrix = [];\r\n \r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let terminalIP: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let AssestDetail: any;\r\n let teachingpoint: any;\r\n let location: any;\r\n let teacherName: any;\r\n let teacherSubject: any;\r\n let currentDate: any;\r\n let resourceMetadataIDs: any;\r\n let resourceArrayForTableChart = new Array();\r\n resourceArrayForTableChart = [];\r\n //----------------- for subject and Name\r\n teacherSubject = userConsoleMatrix[rowLabel].userSubjects;\r\n teacherName = userConsoleMatrix[rowLabel].userName;\r\n //----------------- for start Time and EndTime\r\n if ((userConsoleMatrix[rowLabel].startTime != undefined && userConsoleMatrix[rowLabel].startTime != \"\") && (userConsoleMatrix[rowLabel].endTime != undefined&&userConsoleMatrix[rowLabel].endTime != \"\")) {\r\n startTime = userConsoleMatrix[rowLabel].startTime.toLocaleTimeString('en-US', { hour12: true });\r\n endTime = userConsoleMatrix[rowLabel].endTime.toLocaleTimeString('en-US', { hour12: true });\r\n currentDate = userConsoleMatrix[rowLabel].startTime.getDate() + '/' + userConsoleMatrix[rowLabel].startTime.getMonth() + '/' + userConsoleMatrix[rowLabel].startTime.getFullYear();\r\n }\r\n //----------------- for duration\r\n duration = Math.floor(userConsoleMatrix[rowLabel].duration);\r\n //----------------- for Terminal loaction and terminal IP\r\n location = userConsoleMatrix[rowLabel].terminalLocation;\r\n terminalIP = userConsoleMatrix[rowLabel].terminalIP;\r\n let roomDetail = location + ' ' + terminalIP;\r\n resourceMetadataIDs = userConsoleMatrix[rowLabel].resourceMetauserConsoleData;\r\n\r\n detailedView_UserDataMatrix = [teacherName,startTime,teacherSubject,endTime,roomDetail]\r\n \r\n if (resourceMetadataIDs.length == 0) {\r\n subject = undefined;\r\n grade = undefined;\r\n chapter = undefined;\r\n teachingpoint = undefined;\r\n AssestDetail = undefined;\r\n // resourceArrayForTableChart = [subject,grade,chapter,teachingpoint,AssestDetail];\r\n // detailedView_ResourceDataMatrix.push(resourceArrayForTableChart);\r\n }else{\r\n //resourceMetadataMatrix = [resouseID,subject,grade,chapter,teachingpoint,type,title]\r\n for (let k = 0; k < resourceMetadataIDs.length; k++) {\r\n for (let i = 0; i < resourceMetadataMatrix.length; i++) {\r\n if (resourceMetadataIDs[k] === resourceMetadataMatrix[i].resouseID) {\r\n subject = resourceMetadataMatrix[i].subject;\r\n grade = resourceMetadataMatrix[i].grade;\r\n chapter = resourceMetadataMatrix[i].chapter;\r\n teachingpoint = resourceMetadataMatrix[i].teachingpoint;\r\n AssestDetail =resourceMetadataMatrix[i].type + \": \" + resourceMetadataMatrix[i].title;\r\n \r\n resourceArrayForTableChart = [subject,grade,chapter,teachingpoint,AssestDetail];\r\n detailedView_ResourceDataMatrix.push(resourceArrayForTableChart);\r\n }\r\n }\r\n }\r\n } \r\n \r\n return {userDetails:detailedView_UserDataMatrix,resourceDetails:detailedView_ResourceDataMatrix};\r\n }\r\n // To GET DISPLAY TYPE\r\n getDisplaytypeValue(key: any) {\r\n let assetTypeConfig = [\r\n {\r\n type: \"asset_media\",\r\n display: \"Media\"\r\n },\r\n {\r\n type: \"asset_print\",\r\n display: \"Print\"\r\n },\r\n {\r\n type: \"quiz\",\r\n display: \"Quiz\"\r\n },\r\n {\r\n type: \"question\",\r\n display: \"Question\"\r\n },\r\n {\r\n type: \"chapter\",\r\n display: \"Chapter\"\r\n },\r\n {\r\n type: \"tp\",\r\n display: \"Topic\"\r\n },\r\n {\r\n type: \"whiteboard\",\r\n display: \"Whiteboard\"\r\n },\r\n {\r\n type: \"widget\",\r\n display: \"Widget\"\r\n },\r\n {\r\n type: \"casset_media\",\r\n display: \"cMedia\"\r\n },\r\n {\r\n type: \"casset_print\",\r\n display: \"cPrint\"\r\n },\r\n {\r\n type: \"cquiz\",\r\n display: \"cQuiz\"\r\n },\r\n {\r\n type: \"cquestion\",\r\n display: \"cQuestion\"\r\n },\r\n {\r\n type: \"image\",\r\n display: \"Image\"\r\n },\r\n {\r\n type: \"video\",\r\n display: \"Video\"\r\n },\r\n\r\n ];\r\n let displayValue = key;\r\n assetTypeConfig.forEach((value) => {\r\n if (value.type === key) {\r\n displayValue = value.display;\r\n }\r\n });\r\n return displayValue;\r\n\r\n }\r\n}\r\n","import { Component, OnInit ,Output, ViewChild, Input,EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-principal-dashboard-lib-v2',\r\n templateUrl: './principal-dashboard-lib-v2.component.html',\r\n styleUrls: ['./principal-dashboard-lib-v2.component.scss']\r\n})\r\nexport class PrincipalDashboardLibV2Component implements OnInit {\r\n @Input() data;\r\n @Input() set responseStatus(res: any) {\r\n this.setMessageForUser(res);\r\n // console.log(\" @Input() set responseStatus(res: any) >>>>>>>>>>>>.\",res);\r\n }\r\n @Output() userSelectedDate = new EventEmitter();\r\n messageForUser = \"Loding...\";\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n // console.log(\" IN --> 7 data\",this.data);\r\n }\r\n setMessageForUser(res: any){\r\n this.messageForUser = res;\r\n }\r\n onUserSelectDate(e:any){\r\n // console.log(\" IN --> 1\");\r\n this.data = null;\r\n this.userSelectedDate.emit(e);\r\n }\r\n \r\n\r\n}\r\n","import { getLocaleDateTimeFormat } from '@angular/common';\r\nimport { Component, ElementRef, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { ChartType } from 'angular-google-charts';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\ndeclare let require: any;\r\n\r\n@Component({\r\n selector: 'lib-chartheader',\r\n templateUrl: './chartheader.component.html',\r\n styleUrls: ['./chartheader.component.scss'],\r\n})\r\nexport class ChartheaderComponent implements OnInit {\r\n constructor(\r\n private pdService: PrincipalDashboardLibV2Service\r\n ) {}\r\n \r\n //variables\r\n mytype = ChartType.Timeline;\r\n datadisplaytype = 'UserWise';\r\n isUserWise = true;\r\n myIcon: any;\r\n libVersion:any;\r\n isChartView=true;\r\n\r\n ngOnInit(): void {\r\n this.libVersion = \"0.0.13\";\r\n // this.myIcon = document.getElementById('myIconImg');\r\n // this.changeChatType() \r\n }\r\n changeChatType() {\r\n if (this.mytype == ChartType.Timeline) {\r\n this.isChartView = false;\r\n this.mytype = ChartType.Table;\r\n this.pdService.chartType.next(this.mytype);\r\n \r\n } else {\r\n this.isChartView = true;\r\n this.mytype = ChartType.Timeline;\r\n \r\n this.pdService.chartType.next(this.mytype);\r\n }\r\n }\r\n changeDataTypeClassRoom() {\r\n this.isUserWise = false;\r\n this.pdService.isUserWise_data.next(false);\r\n }\r\n changeDataTypeUser() {\r\n this.isUserWise = true;\r\n this.pdService.isUserWise_data.next(true);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n OnInit,\r\n ViewChild,\r\n Input,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { ChartType, GoogleChartComponent } from 'angular-google-charts';\r\nimport { element } from 'protractor';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\n@Component({\r\n selector: 'lib-chartview',\r\n templateUrl: './chartview.component.html',\r\n styleUrls: ['./chartview.component.scss'],\r\n})\r\nexport class ChartviewComponent implements OnInit {\r\n @Input() set data(res: any) {\r\n if(res!== null){\r\n this.loadChart(res);\r\n }\r\n \r\n }\r\n chartview:any;\r\n myDataList:any;\r\n chartDataTable:any;\r\n myChartOptions: any;\r\n AllrowHeight: any;\r\n myXmlData: any;\r\n currentdataList:any;\r\n resourceDataList:any;\r\n alldataList:any;\r\n selectedUserData:any;\r\n rowElements:any;\r\n \r\n installedClassrooms: any;\r\n currentRooms: any;\r\n totalUsers = 0;\r\n eligibleUsers = 0;\r\n currentUsers = 0;\r\n myChartType = ChartType.Timeline;\r\n myChartwidth = window.innerWidth * 0.88;\r\n myChartHeight = window.innerHeight;\r\n currentList = \"Current Users\";\r\n allList = \"All Users\";\r\n isAllUsers = false;\r\n isUserWise = false;\r\n alluserList: any;\r\n myChartDataMatrix = new Array();\r\n \r\n totalChartDataMatrix = new Array();\r\n constructor(\r\n private pdService: PrincipalDashboardLibV2Service\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n loadChart(response: any) {\r\n // console.log(' IN --> 8 loadChart');\r\n this.totalUsers = 0;\r\n this.eligibleUsers = 0;\r\n this.currentUsers = 0;\r\n this.myChartType = ChartType.Timeline;\r\n this.myChartwidth = window.innerWidth * 0.88;\r\n this.myChartHeight = window.innerHeight;\r\n this.currentList = \"Current Users\";\r\n this.allList = \"All Users\";\r\n this.isAllUsers = false;\r\n this.isUserWise = false;\r\n this.myChartDataMatrix =[];\r\n this.totalChartDataMatrix =[];\r\n\r\n this.chartview = document.getElementById('pd-chartview');\r\n this.myDataList = document.getElementById('pd-xmlData');\r\n // let parse = new DOMParser();\r\n if(response){\r\n this.myXmlData = JSON.parse(response);\r\n }\r\n \r\n if(this.myXmlData){\r\n this.currentdataList = this.pdService.genarateUserReqiuredData(this.myXmlData);\r\n this.alluserList = this.pdService.allUserChartData();\r\n this.resourceDataList = this.pdService.genarateResourseReqiuredData(this.myXmlData);\r\n this.totalUsers = this.currentdataList.usersMetadata.length;\r\n this.findCurrentUserCount();\r\n }\r\n this.pdService.chartType.subscribe((data) => {\r\n if (data) {\r\n this.updateChartType(data);\r\n }\r\n });\r\n this.pdService.isUserWise_data.subscribe((data) => {\r\n this.updateDataType(data);\r\n });\r\n window.addEventListener('resize', this.onResizeWindow.bind(this));\r\n }\r\n onResizeWindow(event: any) {\r\n this.myChartwidth = window.innerWidth * 0.88; //set an appropriate factor\r\n }\r\n myChartReady() {\r\n this.createDivforTotalDurartion();\r\n this.setHeightofDivforTotalDurartion();\r\n // this.removeBlankEntryBar();\r\n }\r\n updateChartType(dataType: any) {\r\n if (this.chartview != null && this.chartview != undefined) {\r\n if (dataType == ChartType.Table) {\r\n this.chartview.style.display = 'none';\r\n } else {\r\n this.chartview.style.display = 'block';\r\n }\r\n }\r\n }\r\n updateDataType(dataType: any) {\r\n this.isUserWise = dataType;\r\n if (this.myXmlData) {\r\n if(this.isUserWise){\r\n this.currentList = \"Current Users\";\r\n this.allList = \"All Users\";\r\n if(this.isAllUsers){\r\n this.userWiseAllData();\r\n }else{\r\n this.userWiseCurrentData();\r\n } \r\n }else{\r\n this.allList = \"All Rooms\";\r\n this.currentList = \"Current Rooms\";\r\n if(this.isAllUsers){\r\n this.classRoomWiseAllData();\r\n }else{\r\n this.classRoomWiseCurrentData();\r\n } \r\n }\r\n }\r\n }\r\n updateChart() {\r\n let labels = document.getElementById('labels');\r\n while (labels.firstChild) {\r\n labels.removeChild(labels.lastChild);\r\n }\r\n this.chartDataTable = this.myChartDataMatrix;\r\n console.log(\"this.myChartDataMatrix\",this.myChartDataMatrix);\r\n \r\n \r\n (this.myChartOptions = {\r\n tooltip: {\r\n trigger: 'none',\r\n },\r\n colors: ['#ff7f0e', '#2ca02c', '#8c564b', '#d62728', '#bcbd22', '#17becf'],\r\n timeline: {\r\n colorByRowLabel: true,\r\n barLabelStyle: {\r\n fontSize: 7,\r\n },\r\n },\r\n hAxis: {\r\n format: 'HH:mm a',\r\n },\r\n });\r\n setTimeout(() => {\r\n this.myChartHeight = this.AllrowHeight + 100;//to set perfect height of chart \r\n }, 1000);\r\n }\r\n\r\n calulateTotalDuration(detailViewMatrix:any) {\r\n \r\n let id_durationArray;\r\n let id_durationMatrix = new Array();\r\n id_durationMatrix = [];\r\n this.totalChartDataMatrix = [];\r\n if (this.isUserWise) {\r\n for (let i = 0; i < detailViewMatrix.length; i++) {\r\n id_durationArray = {\r\n name: detailViewMatrix[i].userName,\r\n value: parseInt(detailViewMatrix[i].duration),\r\n };\r\n id_durationMatrix.push(id_durationArray);\r\n }\r\n } else {\r\n for (let i = 0; i < detailViewMatrix.length; i++) {\r\n id_durationArray = {\r\n name: detailViewMatrix[i].terminalLocation,\r\n value: parseInt(detailViewMatrix[i].duration),\r\n };\r\n id_durationMatrix.push(id_durationArray);\r\n }\r\n }\r\n \r\n let obj: any = {};\r\n id_durationMatrix = [...new Set(id_durationMatrix)];\r\n \r\n id_durationMatrix.forEach((item) => {\r\n if (obj[item.name]) {\r\n obj[item.name].value = obj[item.name].value + item.value;\r\n } else {\r\n\r\n obj[item.name] = item;\r\n }\r\n });\r\n let valuesArr = Object.values(obj);\r\n \r\n let myArray = new Array();\r\n myArray = [];\r\n valuesArr.forEach((item: any) => {\r\n myArray.push(item.value);\r\n });\r\n for (let i = 0; i < myArray.length; i++) {\r\n let totaldurationPerRow = [this.timeConvert(myArray[i]).toString() + ' hrs'];\r\n // let totalChartRowDataArray = [totaldurationPerRow];\r\n this.totalChartDataMatrix.push(totaldurationPerRow);\r\n }\r\n }\r\n timeConvert(n: any) {\r\n var num = Math.floor(n);\r\n var hours = num / 60;\r\n var rhours = Math.floor(hours);\r\n var minutes = (hours - rhours) * 60;\r\n var rminutes = Math.round(minutes);\r\n return rhours + ':' + rminutes;\r\n }\r\n removeBlankEntryBar() {\r\n const chartDiv = document.getElementById('myTimeLine');\r\n var el = chartDiv.getElementsByTagName(\"rect\"); //get all the descendant rect element inside the container \r\n var width = 100000000; //set a large initial value to width\r\n var elToRem = []; //element would be added to this array for removal\r\n for (var i = 0; i < el.length; i++) { //looping over all the rect element of container\r\n var cwidth = parseInt(el[i].getAttribute(\"width\"));//getting the width of ith element\r\n if (cwidth < width) { //if current element width is less than previous width then this is min. width and ith element should be removed\r\n elToRem = [el[i]];\r\n width = cwidth; //setting the width with min width\r\n }\r\n else if (cwidth == width) { //if current element width is equal to previous width then more that one element would be removed\r\n elToRem.push(el[i]);\r\n }\r\n }\r\n for (var i = 0; i < elToRem.length; i++) {\r\n // now iterate JUST the elements to remove\r\n elToRem[i].setAttribute(\"fill\", \"none\");\r\n\r\n }\r\n }\r\n createDivforTotalDurartion() {\r\n let rowLabels = [];\r\n this.rowElements = [];\r\n var labels = document.getElementById('labels');\r\n while (labels.firstChild) {\r\n labels.removeChild(labels.lastChild);\r\n }\r\n for (var i = 0; i < this.totalChartDataMatrix.length; i++) {\r\n var team = this.totalChartDataMatrix[i][0];\r\n rowLabels.push(team);\r\n var label = labels.appendChild(document.createElement('div'));\r\n label.style['border-bottom'] = '1px solid #b7b7b7';\r\n label.style['font-family'] = 'Arial';\r\n label.style['font-size'] = '13px';\r\n label.style['text-align'] = 'left';\r\n label.style['padding-left'] = '8px';\r\n label.style['padding-right'] = '8px';\r\n label.style.position = 'inherit';\r\n if (i % 2) {\r\n label.style['background-color'] = '#e6e6e6';\r\n } else {\r\n label.style['background-color'] = '#ffffff';\r\n }\r\n label.innerHTML = team;\r\n this.rowElements.push(label);\r\n }\r\n }\r\n setHeightofDivforTotalDurartion() {\r\n \r\n this.AllrowHeight = 0;\r\n const chartDiv = document.getElementById('myTimeLine');\r\n let rows = chartDiv.getElementsByTagName('rect');\r\n let rowIndex = -1;\r\n\r\n for (let i = 0; i < rows.length; i++) {\r\n rowIndex++;\r\n if (rowIndex < this.rowElements.length) {\r\n let rowHeight = parseFloat(rows[i].getAttribute('height')) + 'px';\r\n this.AllrowHeight += parseFloat(rows[i].getAttribute('height'));\r\n\r\n const currentCell = this.rowElements[rowIndex];\r\n if (currentCell) {\r\n currentCell.style.height = rowHeight;\r\n currentCell.style.lineHeight = rowHeight;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSelectRowData(event: any) {\r\n const { row, column } = event.selection[0]; \r\n if(this.isAllUsers){\r\n this.selectedUserData = this.pdService.dataForDetailedView(this.alluserList.fordurationTable,this.resourceDataList, row);\r\n \r\n }else{\r\n this.selectedUserData = this.pdService.dataForDetailedView(this.currentdataList.userConsoleData,this.resourceDataList, row);\r\n \r\n \r\n }\r\n // console.log(\"this.selectedUserData\",this.selectedUserData);\r\n this.pdService.detailedviewData.next(this.selectedUserData);\r\n this.updateChart();\r\n // alluserList\r\n }\r\n showAllUser() {\r\n this.pdService.isAllUsers.next(true);\r\n this.isAllUsers = true;\r\n if(this.isUserWise){\r\n this.userWiseAllData();\r\n }else{\r\n this.classRoomWiseAllData();\r\n }\r\n }\r\n showCurrentUser() {\r\n this.isAllUsers = false;\r\n this.pdService.isAllUsers.next(false);\r\n if(this.isUserWise){\r\n this.userWiseCurrentData();\r\n }else{\r\n this.classRoomWiseCurrentData();\r\n }\r\n }\r\n userWiseCurrentData(){\r\n \r\n let chartDataUserWise = this.pdService.userWiseChartData();\r\n // console.log(\"chartDataUserWise\",chartDataUserWise);\r\n \r\n if(chartDataUserWise.length>0){\r\n this.myChartDataMatrix =chartDataUserWise;\r\n this.updateChart();\r\n if(this.currentdataList.userConsoleData.length>0){\r\n this.calulateTotalDuration(this.currentdataList.userConsoleData);\r\n }\r\n } \r\n }\r\n userWiseAllData(){\r\n let chartDataUserWise = this.alluserList.forChartData;\r\n if(chartDataUserWise.length>0){\r\n this.myChartDataMatrix =chartDataUserWise;\r\n \r\n this.updateChart();\r\n this.calulateTotalDuration(this.alluserList.fordurationTable);\r\n }\r\n \r\n }\r\n classRoomWiseCurrentData(){\r\n let classRoomdata = this.pdService.classRoomWiseChartData();\r\n // console.log(\"classRoomdata\",classRoomdata);\r\n if(classRoomdata && classRoomdata.length>0){\r\n \r\n \r\n this.myChartDataMatrix =classRoomdata; \r\n this.updateChart();\r\n if(this.currentdataList.userConsoleData.length>0){\r\n this.calulateTotalDuration(this.currentdataList.userConsoleData);\r\n }\r\n } \r\n }\r\n \r\n classRoomWiseAllData(){\r\n let allclassRoomList = this.pdService.allRoomsData();\r\n if(allclassRoomList.forChartData && allclassRoomList.forChartData.length > 0){\r\n this.myChartDataMatrix = allclassRoomList.forChartData;\r\n this.updateChart();\r\n }\r\n if(allclassRoomList.fordurationTable && allclassRoomList.fordurationTable.length > 0){\r\n this.calulateTotalDuration(allclassRoomList.fordurationTable);\r\n }\r\n \r\n }\r\n\r\n findCurrentUserCount(){\r\n let userConsoleData = this.currentdataList.userConsoleData;\r\n \r\n let userNameArray = new Array();\r\n for (let index = 0; index < userConsoleData.length; index++) {\r\n const element = userConsoleData[index].userName;\r\n userNameArray.push(element);\r\n }\r\n let uniqueUserName = [...new Set(userNameArray)];\r\n this.currentUsers = uniqueUserName.length;\r\n }\r\n ngOnDestroy() {\r\n // console.log('ngOnDestroy >>');\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\n\r\n@Component({\r\n selector: 'lib-detailedview',\r\n templateUrl: './detailedview.component.html',\r\n styleUrls: ['./detailedview.component.scss'],\r\n})\r\nexport class DetailedviewComponent implements OnInit {\r\n userMetadata: any;\r\n resourseMetadata: any;\r\n deatilViewContainer: any;\r\n deatilViewTable: any;\r\n closeButton: any;\r\n getTotalData:any\r\n userMetadataHeadingArray = [\r\n 'Name:',\r\n 'Start Time:',\r\n 'Subject:',\r\n 'End Time:',\r\n 'Room Details:',\r\n ];\r\n resourseMetadataHeadingArray = [\r\n 'Subject',\r\n 'Class',\r\n 'Chapter Name',\r\n 'Topic Name',\r\n 'Assets Details',\r\n ];\r\n constructor(private pdService: PrincipalDashboardLibV2Service) {}\r\n\r\n ngOnInit(): void {\r\n this.deatilViewContainer = document.getElementById('pd-deatilViewContainer');\r\n this.deatilViewTable = document.getElementById('pd-deatilViewTable');\r\n this.closeButton = document.getElementById('pd-closeButton');\r\n \r\n this.pdService.detailedviewData.subscribe((data) => {\r\n if(data){\r\n if(data.userDetails.length>0 ){\r\n this.createTable(data.userDetails);\r\n }\r\n if(data.resourceDetails.length>0){\r\n // console.log(\"data.resourceDetails\",data.resourceDetails);\r\n \r\n this.createResourcesTable(data.resourceDetails);\r\n }\r\n }\r\n \r\n });\r\n \r\n this.deatilViewContainer.style.display = 'none';\r\n }\r\n createTable(userMetadata: any) {\r\n this.deatilViewContainer.style.display = 'block';\r\n while (this.deatilViewTable.firstChild) {\r\n this.deatilViewTable.removeChild(this.deatilViewTable.lastChild);\r\n }\r\n\r\n let labelArray = new Array();\r\n let cnt = 0;\r\n for (let i = 0; i < userMetadata.length; i++) {\r\n let label = document.createElement('label');\r\n label.appendChild(\r\n document.createTextNode(this.userMetadataHeadingArray[i])\r\n );\r\n if (label.textContent === 'undefined'|| label.textContent === undefined) {\r\n label.textContent = '';\r\n }\r\n labelArray.push(label);\r\n let data = document.createElement('label');\r\n data.appendChild(document.createTextNode(userMetadata[i]));\r\n if (data.textContent === 'undefined'|| data.textContent === undefined) {\r\n data.textContent = '';\r\n }\r\n labelArray.push(data);\r\n }\r\n let tbl = document.createElement('table');\r\n tbl.id = \"userDataTable\";\r\n tbl.className = \"table table-bordered\";\r\n let tblBody = document.createElement('tbody');\r\n for (let j = 0; j < userMetadata.length / 2; j++) {\r\n let row = document.createElement('tr');\r\n let cell: any;\r\n for (let i = 0; i < 4; i++) {\r\n if (i % 2 == 0) {\r\n cell = document.createElement('th');\r\n cell.style['font-weight'] = \"bold\"\r\n // cell.style.background =\"#e0e0e0\";\r\n } else {\r\n cell = document.createElement('td');\r\n }\r\n if (cnt < labelArray.length) {\r\n cell.appendChild(labelArray[cnt]);\r\n row.appendChild(cell);\r\n }\r\n cnt++;\r\n }\r\n tblBody.appendChild(row);\r\n tbl.appendChild(tblBody);\r\n this.deatilViewTable.appendChild(tbl);\r\n }\r\n }\r\n createResourcesTable(resoureMetadata: any) {\r\n let labelArray = new Array();\r\n let cnt = 0;\r\n for (let i = 0; i < this.resourseMetadataHeadingArray.length; i++) {\r\n let label = document.createElement('label');\r\n label.appendChild(\r\n document.createTextNode(this.resourseMetadataHeadingArray[i])\r\n );\r\n if (label.textContent === 'undefined'|| label.textContent === undefined) {\r\n label.textContent = '';\r\n }\r\n labelArray.push(label);\r\n }\r\n for (let i = 0; i < resoureMetadata.length; i++) {\r\n for (let j = 0; j < 5; j++) {\r\n let label = document.createElement('label');\r\n label.appendChild(document.createTextNode(resoureMetadata[i][j]));\r\n if (label.textContent === 'undefined'|| label.textContent === undefined) {\r\n label.textContent = '';\r\n }\r\n labelArray.push(label);\r\n }\r\n }\r\n let tbl = document.createElement('table');\r\n tbl.className = \"table table-bordered\";\r\n tbl.id = \"resoureMetadataTable\";\r\n let tblBody = document.createElement('tbody');\r\n for (let j = 0; j <= resoureMetadata.length; j++) {\r\n let row = document.createElement('tr');\r\n let cell: any;\r\n for (let i = 0; i < 5; i++) {\r\n if (j == 0) {\r\n cell = document.createElement('th');\r\n cell.style['font-weight'] = 'bold';\r\n // cell.style.background =\"#e0e0e0\";\r\n } else {\r\n cell = document.createElement('td');\r\n }\r\n\r\n if (cnt < labelArray.length) {\r\n cell.appendChild(labelArray[cnt]);\r\n row.appendChild(cell);\r\n }\r\n cnt++;\r\n }\r\n tblBody.appendChild(row);\r\n tbl.appendChild(tblBody);\r\n this.deatilViewTable.appendChild(tbl);\r\n }\r\n }\r\n \r\n onCloseBtnClick() {\r\n this.deatilViewContainer.style.display = 'none';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { resourceUsage } from 'process';\r\nimport * as FileSaver from 'file-saver'\r\nimport * as XLSX from 'xlsx';\r\nimport { HtmlTagDefinition } from '@angular/compiler';\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExceldataService {\r\n resourceTypes = new Array();\r\n myEndTime:any;\r\n constructor() { }\r\n //_____FOR EXCEL CONVERTOR\r\n public workbook:any;\r\n public tabName = [{\"name\":\"School\"},{\"name\":\"User Summary\"},{\"name\":\"Terminal Summary\"},{\"name\":\"Usage Details\"}]\r\n public exportAsExcelFile(json: any,excelFileName: string): void {\r\n let excelBuffer: any;\r\n let myobj: any = {Sheets:{}, SheetNames:[] }\r\n for (let i = 0; i < json.length; i++) {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json[i]);\r\n myobj.Sheets[this.tabName[i].name] = worksheet\r\n myobj.SheetNames.push(this.tabName[i].name)\r\n }\r\n const workbook:XLSX.WorkBook = myobj; \r\n excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n //_____FOR EXCEL CONVERTOR END\r\n\r\n genarateResourseReqiuredData_Excel(data: any): any {\r\n let resouseID: any;\r\n let title: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let teachingpoint: any;\r\n let type: any;\r\n let resourceMetadataMatrix = new Array();\r\n let resourceMetadata = data.resourcesMetadata.resourceMetadata;\r\n \r\n if(resourceMetadata!= undefined && resourceMetadata.length>0) {\r\n for (var i = 0; i < resourceMetadata.length;i++){\r\n //----------//resouseID\r\n resouseID = resourceMetadata[i].resourceId;\r\n //----------//subject\r\n if (resourceMetadata[i].subject != undefined) {\r\n if (resourceMetadata[i].subject.title != undefined) {\r\n subject = resourceMetadata[i].subject.title;\r\n } else {\r\n subject = '';\r\n }\r\n } else {\r\n subject = '';\r\n }\r\n //----------//grade\r\n if (resourceMetadata[i].grade != undefined) {\r\n if (resourceMetadata[i].grade.title != undefined) {\r\n grade = resourceMetadata[i].grade.title;\r\n } else {\r\n grade = '';\r\n }\r\n } else {\r\n grade = '';\r\n }\r\n //----------//chapter\r\n if (resourceMetadata[i].chapter != undefined) {\r\n if (resourceMetadata[i].chapter.title != undefined) {\r\n chapter = resourceMetadata[i].chapter.title;\r\n } else {\r\n chapter = '';\r\n }\r\n } else {\r\n chapter = '';\r\n }\r\n \r\n //----------//teachingpoint\r\n if (resourceMetadata[i].teachingpoint != undefined) {\r\n if (resourceMetadata[i].teachingpoint.title != undefined) {\r\n teachingpoint = resourceMetadata[i].teachingpoint.title;\r\n } else {\r\n teachingpoint = '';\r\n }\r\n } else {\r\n teachingpoint = '';\r\n }\r\n //----------//type\r\n if (resourceMetadata[i].type != undefined) {\r\n type = this.getDisplaytypeValue(resourceMetadata[i].type);\r\n } else {\r\n type = '';\r\n }\r\n \r\n //----------//title\r\n if (resourceMetadata[i].title != undefined) {\r\n title = resourceMetadata[i].title;\r\n } else {\r\n title = '';\r\n }\r\n \r\n \r\n let resourceMetauserConsoleData = {\r\n resouseID:resouseID,\r\n subject:subject,\r\n grade:grade,\r\n chapter:chapter,\r\n teachingpoint:teachingpoint,\r\n type:type,\r\n title:title\r\n }\r\n resourceMetadataMatrix.push(resourceMetauserConsoleData);\r\n this.resourceTypes.push(type);\r\n }\r\n }\r\n this.resourceTypes = [...new Set(this.resourceTypes)]\r\n return resourceMetadataMatrix;\r\n }\r\n genarateUserReqiuredData_Excel(data: any): any {\r\n let userConsole = data.usersConsole.userConsole;\r\n let usersMetadata = data.usersMetadata.userMetadata;\r\n let schoolTerminal = data.schoolTerminals.schoolTerminal;\r\n \r\n \r\n let usersMetadataMatrix = new Array();\r\n let usermetadataMatrixUpdated = new Array();\r\n let schoolTerminalMatrix = new Array();\r\n let userConsoleMatrix = new Array();\r\n if(usersMetadata!= null && usersMetadata.length > 0){\r\n for (let i = 0; i < usersMetadata.length; i++) {\r\n let userId: any;\r\n let userName: any;\r\n let userSubjects: any;\r\n let listOfUser:any = {}\r\n if (usersMetadata[i].userId!=\"\") {\r\n userId = usersMetadata[i].userId;\r\n \r\n if (usersMetadata[i].fullName !== undefined) {\r\n userName = usersMetadata[i].fullName // get name of user w.r.t. ID\r\n } else {\r\n userName = '';\r\n }\r\n\r\n if (usersMetadata[i].userSubjects !== undefined) {\r\n userSubjects = usersMetadata[i].userSubjects // get name of user w.r.t. ID\r\n } else {\r\n userSubjects = '';\r\n }\r\n \r\n listOfUser = {\r\n userId:userId, \r\n userName:userName, \r\n userSubjects:userSubjects\r\n };\r\n usersMetadataMatrix.push(listOfUser); // array of all users\r\n }\r\n }\r\n }\r\n for (var i = 0; i < usersMetadataMatrix.length; i++) {\r\n usersMetadataMatrix.forEach(element => {\r\n if (usersMetadataMatrix[i].userName === element.userName) {\r\n usermetadataMatrixUpdated.push(usersMetadataMatrix[i]); //array of same name users\r\n usersMetadataMatrix.splice(i, 1); //delete the same name users from usermetadataMatrix\r\n }\r\n });\r\n }\r\n for (var i = 0; i < usermetadataMatrixUpdated.length; i++) {\r\n usermetadataMatrixUpdated[i].userName = usermetadataMatrixUpdated[i].userName + \" \" + i;\r\n usersMetadataMatrix.push(usermetadataMatrixUpdated[i]); //adding same name users in usermetadataMatrix with some random charators\r\n }\r\n if(schoolTerminal != null && schoolTerminal.length > 0){\r\n for (var i = 0; i < schoolTerminal.length; i++) {\r\n let schoolId:any;\r\n let terminalKey:any;\r\n let terminalType:any;\r\n let location:any;\r\n let schoolTerminalData:any = {};\r\n \r\n //----------//schoolId\r\n if (schoolTerminal[i].schoolId !== undefined) {\r\n schoolId = schoolTerminal[i].schoolId // get name of user w.r.t. ID\r\n } else {\r\n schoolId = '';\r\n }\r\n //----------//terminalKey\r\n if (schoolTerminal[i].terminalKey !== undefined) {\r\n terminalKey = schoolTerminal[i].terminalKey // get name of user w.r.t. ID\r\n } else {\r\n terminalKey = '';\r\n }\r\n //----------//terminalType\r\n if (schoolTerminal[i].terminalType !== undefined) {\r\n terminalType = schoolTerminal[i].terminalType // get name of user w.r.t. ID\r\n } else {\r\n terminalType = '';\r\n }\r\n \r\n //----------//location\r\n if (schoolTerminal[i].metadata !== undefined) {\r\n location = schoolTerminal[i].metadata // get name of user w.r.t. ID\r\n } else {\r\n location = '';\r\n }\r\n schoolTerminalData = {\r\n schoolId:schoolId,\r\n terminalKey:terminalKey,\r\n terminalType:terminalType,\r\n location:location\r\n };\r\n schoolTerminalMatrix.push(schoolTerminalData);\r\n \r\n }\r\n }\r\n if(userConsole !=null && userConsole.length > 0){\r\n for (let index = 0; index < userConsole.length; index++) {\r\n let userId: any;\r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let selectedDate: any;\r\n let terminalIP: any;\r\n let userConsoleResources: any;\r\n let resourceMetadataIDS: any;\r\n let resourceMetauserConsoleData = new Array();\r\n let userName:any;\r\n let userSubjects:any;\r\n let terminalLocation: any;\r\n //----------//user iD\r\n if (userConsole[index].userId !== undefined) {\r\n userId = userConsole[index].userId // get name of user w.r.t. ID\r\n } else {\r\n userId = '';\r\n }\r\n //----------// startTime \r\n if (userConsole[index].startTime !== undefined) {\r\n startTime = userConsole[index].startTime // get name of user w.r.t. ID\r\n } else {\r\n startTime = '';\r\n }\r\n //----------// endTime \r\n if (userConsole[index].endTime !== undefined) {\r\n endTime = userConsole[index].endTime // get name of user w.r.t. ID\r\n this.myEndTime = endTime;\r\n } else {\r\n endTime = '';\r\n }\r\n //----------// Date \r\n if (userConsole[index].selectedDate !== undefined) {\r\n selectedDate = userConsole[index].selectedDate // get name of user w.r.t. ID\r\n } else {\r\n selectedDate = '';\r\n }\r\n \r\n //----------// Duration\r\n if (userConsole[index].duration !== undefined) {\r\n duration = userConsole[index].duration // get name of user w.r.t. ID\r\n } else {\r\n duration = '';\r\n }\r\n //----------// terminalIP\r\n if (userConsole[index].terminalIP !== undefined) {\r\n terminalIP = userConsole[index].terminalIP // get name of user w.r.t. ID\r\n } else {\r\n terminalIP = '';\r\n }\r\n \r\n //----------// userConsoleResources\r\n if (userConsole[index].userConsoleResources !== undefined) {\r\n userConsoleResources = userConsole[index].userConsoleResources // get name of user w.r.t. ID\r\n } else {\r\n userConsoleResources = null;\r\n }\r\n \r\n if(userConsoleResources != null){\r\n if (userConsoleResources.userConsoleResource !== undefined) {\r\n resourceMetauserConsoleData = userConsoleResources.userConsoleResource; // get name of user w.r.t. ID\r\n } else {\r\n resourceMetauserConsoleData = [];\r\n }\r\n }\r\n \r\n //----------// userName and userSubjects\r\n for (let i = 0; i < usersMetadataMatrix.length; i++) {\r\n if (userId === usersMetadataMatrix[i].userId) {\r\n userName = usersMetadataMatrix[i].userName;\r\n userSubjects = usersMetadataMatrix[i].userSubjects;\r\n }\r\n }\r\n //----------// terminalIP and terminalLocation\r\n \r\n for (let i = 0; i < schoolTerminalMatrix.length; i++) {\r\n if (terminalIP === schoolTerminalMatrix[i].terminalKey) {\r\n terminalLocation = schoolTerminalMatrix[i].location;\r\n }\r\n }\r\n let userData = {\r\n userId:userId,\r\n userName:userName,\r\n startTime:new Date(startTime),\r\n endTime:new Date(endTime),\r\n terminalIP:terminalIP,\r\n resourceMetauserConsoleData:resourceMetauserConsoleData,\r\n duration:duration,\r\n terminalLocation:terminalLocation,\r\n userSubjects:userSubjects\r\n }\r\n \r\n userConsoleMatrix.push(userData);\r\n \r\n }\r\n }\r\n return {usersMetadata:usersMetadataMatrix,schoolTerminalData:schoolTerminalMatrix,userConsoleData: userConsoleMatrix}\r\n }\r\n \r\n deatilData_Excel(userConsoleMatrix: any,resourceMetadataMatrix: any){\r\n // console.log(\"resourceMetadataMatrix\",resourceMetadataMatrix);\r\n \r\n let currentDate: any;\r\n let resourceMatrixForExcel = new Array();\r\n resourceMatrixForExcel = [];\r\n for (let i = 0; i <userConsoleMatrix.length; i++) {\r\n let userID:any;\r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let terminalIP: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let resourceType: any;\r\n let resourceTitle: any;\r\n let teachingpoint: any;\r\n let location: any;\r\n let teacherName: any;\r\n let teacherSubject: any;\r\n \r\n let resourceMetadataIDs: any;\r\n let resourceArrayForExcel = new Array();\r\n \r\n\r\n userID = userConsoleMatrix[i].userId;\r\n //----------------- for subject and Name\r\n teacherSubject = userConsoleMatrix[i].userSubjects;\r\n teacherName = userConsoleMatrix[i].userName;\r\n //----------------- for start Time and EndTime \r\n if ((userConsoleMatrix[i].startTime != undefined && userConsoleMatrix[i].startTime != \"\") && (userConsoleMatrix[i].endTime != undefined&&userConsoleMatrix[i].endTime != \"\")) {\r\n startTime = userConsoleMatrix[i].startTime.toLocaleTimeString('en-US', { hour12: true });\r\n endTime = userConsoleMatrix[i].endTime.toLocaleTimeString('en-US', { hour12: true });\r\n currentDate = userConsoleMatrix[i].startTime.getDate() + '/' + (userConsoleMatrix[i].startTime.getMonth()+1) + '/' + userConsoleMatrix[i].startTime.getFullYear();\r\n }\r\n //----------------- for duration\r\n duration = Math.floor(userConsoleMatrix[i].duration);\r\n //----------------- for Terminal loaction and terminal IP\r\n location = userConsoleMatrix[i].terminalLocation;\r\n terminalIP = userConsoleMatrix[i].terminalIP;\r\n let roomDetail = location + ' ' + terminalIP;\r\n let locationName = location;\r\n let terminalIPAddress = terminalIP;\r\n resourceMetadataIDs = userConsoleMatrix[i].resourceMetauserConsoleData;\r\n \r\n if (resourceMetadataIDs.length == 0) {\r\n subject = '';\r\n grade = '';\r\n chapter = '';\r\n teachingpoint = '';\r\n resourceTitle = '';\r\n resourceType = '';\r\n resourceArrayForExcel = [teacherName,teacherSubject,currentDate,startTime,endTime,duration,locationName, terminalIPAddress,subject,grade,chapter,teachingpoint,resourceTitle,resourceType,userID];\r\n resourceMatrixForExcel.push(resourceArrayForExcel);\r\n }else{\r\n for (let k = 0; k < resourceMetadataIDs.length; k++) {\r\n for (let i = 0; i < resourceMetadataMatrix.length; i++) {\r\n // resouseID:resouseID,\r\n // subject:subject,\r\n // grade:grade,\r\n // chapter:chapter,\r\n // teachingpoint:teachingpoint,\r\n // type:type,\r\n // title:title\r\n if (resourceMetadataIDs[k] === resourceMetadataMatrix[i].resouseID) {\r\n\r\n subject = resourceMetadataMatrix[i].subject;\r\n grade = resourceMetadataMatrix[i].grade;\r\n chapter = resourceMetadataMatrix[i].chapter;\r\n teachingpoint = resourceMetadataMatrix[i].teachingpoint;\r\n resourceTitle = resourceMetadataMatrix[i].title;\r\n resourceType = this.getDisplaytypeValue(resourceMetadataMatrix[i].type);\r\n // FOR EXCEL\r\n resourceArrayForExcel = [teacherName,teacherSubject,currentDate,startTime,endTime,duration,locationName, terminalIPAddress,subject,grade,chapter,teachingpoint,resourceTitle,resourceType,userID];\r\n resourceMatrixForExcel.push(resourceArrayForExcel);\r\n teacherName = '';\r\n teacherSubject= '';\r\n currentDate= '';\r\n startTime= '';\r\n endTime= '';\r\n locationName= ''; \r\n terminalIPAddress= '';\r\n duration = '';\r\n \r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n return resourceMatrixForExcel;\r\n }\r\n deatilUsage_Excel(resourceMatrixForExcel){\r\n let userList=[];\r\n // console.log(\"resourceMatrixForExcel>>>>>>>>>>>>>>>>>>>\",resourceMatrixForExcel);\r\n \r\n if(resourceMatrixForExcel.length > 0){\r\n for(let i=0;i<resourceMatrixForExcel.length;i++){\r\n let data = {\r\n // Sr_No: i+1,\r\n Name:resourceMatrixForExcel[i][0],\r\n Subjects:resourceMatrixForExcel[i][1],\r\n Date:\tresourceMatrixForExcel[i][2],\r\n startTime:resourceMatrixForExcel[i][3],\r\n endTime:resourceMatrixForExcel[i][4],\r\n \"duration(mins)\":resourceMatrixForExcel[i][5],\r\n location:resourceMatrixForExcel[i][6],\r\n IP:resourceMatrixForExcel[i][7],\r\n subjectTitle:resourceMatrixForExcel[i][8],\r\n gradeTitle:resourceMatrixForExcel[i][9],\r\n Chapter:resourceMatrixForExcel[i][10],\r\n tpTitle:resourceMatrixForExcel[i][11],\r\n resourceTitle:resourceMatrixForExcel[i][12],\r\n resourceType:resourceMatrixForExcel[i][13],\r\n }\r\n userList.push(data);\r\n }\r\n \r\n } \r\n // console.log(\"userList\",userList);\r\n return userList; \r\n }\r\n userSummary_Excel(data,resourceMatrixForExcel){\r\n // console.log(\"resourceMatrixForExcel\",resourceMatrixForExcel)\r\n let userMetadataList = data.usersMetadata.userMetadata;\r\n let resourcelist = new Array();\r\n let resourceTypeList = new Array();\r\n let userObjectList= new Array();\r\n let classRooms= new Array();\r\n let datesAccess= new Array();\r\n let grades= new Array();\r\n let subjectTought= new Array();\r\n // let unique_resourceTypeList = []; \r\n let duration = 0;\r\n for (let i = 0; i < userMetadataList.length; i++) {\r\n resourcelist = [];\r\n resourceTypeList = [];\r\n classRooms = []; \r\n datesAccess = [];\r\n grades = [];\r\n subjectTought = [];\r\n \r\n duration = 0;\r\n // console.log(\"userMetadataList[i]\",userMetadataList);\r\n // console.log(\"resourceMatrixForExcel[i]\",[...new Set(resourceMatrixForExcel)]);\r\n for (let j = 0; j < resourceMatrixForExcel.length; j++){\r\n \r\n if(userMetadataList[i].userId === resourceMatrixForExcel[j][14]){\r\n if(resourceMatrixForExcel[j][12] != ''){\r\n resourcelist.push(resourceMatrixForExcel[j][12]);\r\n }\r\n \r\n if(resourceMatrixForExcel[j][13] != ''){\r\n resourceTypeList.push(resourceMatrixForExcel[j][13]);\r\n }\r\n if(resourceMatrixForExcel[j][5] != ''){\r\n duration = duration + resourceMatrixForExcel[j][5];\r\n }\r\n \r\n \r\n classRooms.push(resourceMatrixForExcel[j][6]);\r\n datesAccess.push(resourceMatrixForExcel[j][2]);\r\n grades.push(resourceMatrixForExcel[j][9]);\r\n subjectTought.push(resourceMatrixForExcel[j][8]);\r\n \r\n \r\n }\r\n }\r\n \r\n let ClassRooms:any; \r\n let DatesAccess:any; \r\n let Grades:any; \r\n let SubjectTought:any; \r\n let dayAccess:any; \r\n \r\n if(classRooms.length>0){\r\n ClassRooms = [...new Set(classRooms)][0];\r\n }else{\r\n ClassRooms = '';\r\n }\r\n if(datesAccess.length>0){\r\n dayAccess = [...new Set(datesAccess)].length;\r\n }else{\r\n dayAccess = '';\r\n }\r\n if(datesAccess.length>0){\r\n DatesAccess = [...new Set(datesAccess)][0];\r\n }else{\r\n DatesAccess = '';\r\n }\r\n if(grades.length>0){\r\n Grades = [...new Set(grades)][0];\r\n }else{\r\n Grades = ''\r\n }\r\n \r\n if(subjectTought.length>0){\r\n SubjectTought = [...new Set(subjectTought)][0];\r\n }else{\r\n SubjectTought = '';\r\n }\r\n // if(resourceTypeList.length>0){\r\n // unique_resourceTypeList = [...new Set(resourceTypeList)];\r\n \r\n // }\r\n // console.log(\"this.resourceTypes\",this.resourceTypes)\r\n let user = {\r\n Name:userMetadataList[i].fullName,\r\n Subjects:userMetadataList[i].userSubjects,\r\n duration:duration,\r\n ClassRooms:ClassRooms,\r\n DatesAccess:DatesAccess,\r\n DayAccess:dayAccess,\r\n Grades:Grades,\r\n SubjectTought:SubjectTought,\r\n AseestUsed:resourcelist,\r\n AssetType:resourceTypeList\r\n }\r\n userObjectList.push(user);\r\n \r\n }\r\n // console.log(\"userObjectList\",userObjectList)\r\n let userSummaryList = new Array();\r\n for(let i = 0; i < userObjectList.length; i++){\r\n const Assetcounts = [];\r\n //find count of present asset type\r\n let presentAsset =userObjectList[i].AssetType;\r\n presentAsset = [...new Set(presentAsset)];\r\n // console.log(\"presentAsset\",presentAsset)\r\n //find count of present asset count\r\n const sampleArray =userObjectList[i].AssetType;\r\n sampleArray.forEach(function (x) { Assetcounts[x] = (Assetcounts[x] || 0) + 1; });\r\n // find missing assets\r\n let missingAssets = this.resourceTypes.filter(n => !presentAsset.includes(n));\r\n // adding missing asset with count 0 in list\r\n missingAssets.forEach((element) => {\r\n Assetcounts[element] = 0;\r\n });\r\n // console.log(Assetcounts);\r\n let asset_media = {\r\n // Sr_No: i+1,\r\n Name:userObjectList[i].Name,\r\n Subjects_taught:userObjectList[i].Subjects,\r\n \" Duration(mins)\":userObjectList[i].duration,\r\n ClassRooms:userObjectList[i].ClassRooms,\r\n DaysAccsessed:userObjectList[i].DayAccess,\r\n DatesAccess:userObjectList[i].DatesAccess,\r\n Grades:userObjectList[i].Grades,\r\n Subjects:userObjectList[i].SubjectTought\r\n }\r\n const returnedTarget = Object.assign(asset_media, Assetcounts);\r\n userSummaryList.push(returnedTarget);\r\n\r\n }\r\n \r\n // console.log(\"userSummaryList\",userSummaryList);\r\n \r\n return userSummaryList;\r\n }\r\n\r\n // To GET DISPLAY TYPE\r\n getDisplaytypeValue(key: any) {\r\n let assetTypeConfig = [\r\n {\r\n type: \"asset_media\",\r\n display: \"Media\"\r\n },\r\n {\r\n type: \"asset_print\",\r\n display: \"Print\"\r\n },\r\n {\r\n type: \"quiz\",\r\n display: \"Quiz\"\r\n },\r\n {\r\n type: \"question\",\r\n display: \"Question\"\r\n },\r\n {\r\n type: \"chapter\",\r\n display: \"Chapter\"\r\n },\r\n {\r\n type: \"tp\",\r\n display: \"Topic\"\r\n },\r\n {\r\n type: \"whiteboard\",\r\n display: \"Whiteboard\"\r\n },\r\n {\r\n type: \"widget\",\r\n display: \"Widget\"\r\n },\r\n {\r\n type: \"casset_media\",\r\n display: \"cMedia\"\r\n },\r\n {\r\n type: \"casset_print\",\r\n display: \"cPrint\"\r\n },\r\n {\r\n type: \"cquiz\",\r\n display: \"cQuiz\"\r\n },\r\n {\r\n type: \"cquestion\",\r\n display: \"cQuestion\"\r\n },\r\n {\r\n type: \"image\",\r\n display: \"Image\"\r\n },\r\n {\r\n type: \"video\",\r\n display: \"Video\"\r\n },\r\n \r\n ];\r\n let displayValue = key;\r\n assetTypeConfig.forEach((value) => {\r\n if (value.type === key) {\r\n displayValue = value.display;\r\n }\r\n });\r\n return displayValue;\r\n \r\n }\r\n}\r\n","import { Component, OnInit, Output, ViewChild, Input, EventEmitter } from '@angular/core';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\nimport { ExceldataService } from '../exceldata.service';\r\nimport { DatepickerOptions } from 'ng2-datepicker';\r\n@Component({\r\n selector: 'lib-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Input() set data(res: any) {\r\n if(res!== null){\r\n this.loadData(res);\r\n } \r\n }\r\n @Output() userSelectedDate = new EventEmitter();\r\n\r\n myCalendar: any;\r\n calenderDate: any;\r\n currentDate: any;\r\n calenderCurrentDate: any;\r\n todayDate: any;\r\n refreshTimer = 0;\r\n refreshInterval: any;\r\n calenderEvent: any;\r\n message: any;\r\n intervalId: any;\r\n mydata :any;\r\n dataList: any;\r\n //for datepicker\r\n title = 'datepicker';\r\n date: Date = new Date();\r\n options: DatepickerOptions = {\r\n inputClass: 'input',\r\n calendarClass: 'datepicker-default',\r\n scrollBarColor: '#010001',\r\n format: 'dd/LL/yyyy',\r\n maxDate: new Date()\r\n };\r\n \r\n constructor(\r\n private excelService: ExceldataService,\r\n private pdService:PrincipalDashboardLibV2Service\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getDefaultDate();\r\n this.startTimer();\r\n }\r\n getDefaultDate() {\r\n let date = new Date();\r\n this.getDateFormat(date);\r\n this.todayDate = this.calenderCurrentDate;\r\n }\r\n dateSelected(e: any){\r\n this.getDateFormat(e);\r\n this.mydata = null;\r\n this.refreshChart();\r\n }\r\n getDateFormat(date:any){\r\n let day = date.getDate();\r\n let month = date.getMonth() + 1;\r\n let year = date.getFullYear();\r\n let m;\r\n let d;\r\n if (month < 10) {\r\n m = \"0\" + month;\r\n } else {\r\n m = month;\r\n }\r\n if (day < 10) {\r\n d = \"0\" + day;\r\n } else {\r\n d = day;\r\n }\r\n let today = year + \"-\" + m + \"-\" + d;\r\n this.currentDate = today;\r\n this.calenderCurrentDate = today.split(\"-\").reverse().join(\"-\");\r\n }\r\n // selectDate(e: any) {\r\n // this.calenderEvent = e;\r\n // let today = e.target.value;\r\n // // console.log(\"e.target.value\", e.target.value);\r\n // today = today.split(\"-\").reverse().join(\"-\");\r\n // this.calenderCurrentDate = today;\r\n // this.mydata = null;\r\n // this.refreshChart();\r\n // // this.userSelectedDate.emit(this.calenderCurrentDate);\r\n // ;\r\n // console.log(\" IN --> 5\");\r\n // }\r\n refreshChart() {\r\n this.stopTimer();\r\n this.refreshTimer = 0;\r\n if(this.calenderCurrentDate === this.todayDate){\r\n this.countDown();\r\n }\r\n this.userSelectedDate.emit(this.calenderCurrentDate);\r\n }\r\n\r\n startTimer() {\r\n this.countDown();\r\n }\r\n stopTimer() {\r\n this.clearTimer();\r\n this.message = ``;\r\n }\r\n clearTimer() {\r\n this.refreshTimer = 0;\r\n window.clearInterval(this.intervalId);\r\n }\r\n countDown() {\r\n console.log(\"countDown\")\r\n this.clearTimer();\r\n this.intervalId = window.setInterval(() => {\r\n this.refreshTimer -= 1;\r\n if (this.refreshTimer === 0) {\r\n this.refreshChart();\r\n this.message = '';\r\n } else {\r\n if (this.refreshTimer < 0) {\r\n this.refreshTimer = 300;\r\n } // reset\r\n this.message = `${this.refreshTimer}`;\r\n }\r\n }, 1000);\r\n }\r\n timeConvert(n: any) {\r\n var num = n;\r\n var hours = num / 60;\r\n var rhours = Math.floor(hours);\r\n var minutes = (hours - rhours) * 60;\r\n var rminutes = Math.round(minutes);\r\n return rhours + ':' + rminutes;\r\n }\r\n // currentdataList: any;\r\n // currentResoursedataList:any;\r\n loadData(response: any){\r\n if(response){\r\n this.mydata = JSON.parse(response);\r\n if (this.mydata) {\r\n //get current data list\r\n let genarateUserReqiuredData = this.excelService.genarateUserReqiuredData_Excel(this.mydata);\r\n let currentdataList =genarateUserReqiuredData.userConsoleData;\r\n // resoureMetadata list\r\n let currentResoursedataList = this.excelService.genarateResourseReqiuredData_Excel(this.mydata);\r\n \r\n let deatilData = this.excelService.deatilData_Excel(currentdataList,currentResoursedataList);\r\n let userDetails_data = this.excelService.deatilUsage_Excel(deatilData);\r\n let UserSummary = this.excelService.userSummary_Excel(this.mydata,deatilData);\r\n \r\n let schoolDetails = this.mydata.schoolMetadata.school;\r\n let userDetails = userDetails_data;\r\n let terminalDetails = this.mydata.schoolTerminals.schoolTerminal;\r\n // console.log(\"schoolDetails\",schoolDetails);\r\n // console.log(\"UserSummary\",UserSummary);\r\n // console.log(\"terminalDetails\",terminalDetails);\r\n // console.log(\"userDetails\",userDetails);\r\n \r\n this.dataList = [\r\n [schoolDetails],\r\n UserSummary,\r\n terminalDetails,\r\n userDetails\r\n ]\r\n }\r\n }\r\n \r\n }\r\n exportReport(){\r\n if(this.mydata){\r\n this.excelService.exportAsExcelFile(this.dataList, 'UsageReport-'+ this.calenderCurrentDate);\r\n }\r\n \r\n }\r\n ngOnDestroy() {\r\n this.clearTimer();\r\n }\r\n \r\n}\r\n","import { Component, OnInit ,Input} from '@angular/core';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\nimport { ChartType } from 'angular-google-charts';\r\n\r\n@Component({\r\n selector: 'lib-tableview',\r\n templateUrl: './tableview.component.html',\r\n styleUrls: ['./tableview.component.scss'],\r\n})\r\n\r\nexport class TableviewComponent implements OnInit {\r\n @Input() set data(res: any) {\r\n if(res!== null){\r\n this.loadTable(res);\r\n }\r\n }\r\n constructor(\r\n private pdService: PrincipalDashboardLibV2Service\r\n ) {}\r\n resourseMetadata: any;\r\n tableRow: any;\r\n userMetadata: any;\r\n tableViewDiv: any;\r\n tblBody: any;\r\n myXmlData: any;\r\n myChartType = ChartType.Table;\r\n currentdataList:any;\r\n currentResoursedataList:any;\r\n tableViewData:any;\r\n alluserList:any;\r\n isUserWise = true;\r\n \r\n ngOnInit(): void {\r\n \r\n }\r\n loadTable(response: any){\r\n // let parse = new DOMParser();\r\n // this.myXmlData = parse.parseFromString(response, 'application/xml');\r\n if(response){\r\n this.myXmlData = JSON.parse(response);\r\n if(this.myXmlData){\r\n // get current data list\r\n let genarateUserReqiuredData = this.pdService.genarateUserReqiuredData(this.myXmlData);\r\n this.currentdataList =genarateUserReqiuredData.userConsoleData;\r\n // get all user list \r\n let fetchAlluserList = this.pdService.allUserChartData()\r\n this.alluserList = fetchAlluserList.fordurationTable;\r\n // resoureMetadata list\r\n this.currentResoursedataList = this.pdService.genarateResourseReqiuredData(this.myXmlData);\r\n \r\n }\r\n }\r\n \r\n \r\n this.tableViewDiv = document.getElementById('tableViewDiv');\r\n this.tableRow = document.getElementById('tableRow');\r\n this.tblBody = document.getElementById('tblBody');\r\n this.tableViewDiv.style.display = 'none';\r\n \r\n this.pdService.chartType.subscribe((data) => {\r\n if (data) {\r\n this.updateChartType(data);\r\n }\r\n });\r\n this.pdService.isUserWise_data.subscribe((data) => {\r\n this.updateDataType(data);\r\n });\r\n this.pdService.isAllUsers.subscribe((data) => {\r\n if(data){\r\n this.showAllUser();\r\n }else{\r\n this.showCurrentDataUser();\r\n }\r\n \r\n });\r\n }\r\n showCurrentDataUser() {\r\n this.tableViewData = this.pdService.dataForTableView(this.currentdataList,this.currentResoursedataList);\r\n if(this.tableViewData){\r\n this.ueserWiseTableView(this.tableViewData);\r\n }\r\n }\r\n showAllUser() {\r\n this.tableViewData = this.pdService.dataForTableView(this.alluserList ,this.currentResoursedataList);\r\n if(this.tableViewData){\r\n this.ueserWiseTableView(this.tableViewData);\r\n }\r\n }\r\n updateDataType(dataType: any) {\r\n this.isUserWise = dataType;\r\n }\r\n updateChartType(dataType: any) {\r\n this.myChartType = dataType;\r\n if (this.myChartType == ChartType.Timeline) {\r\n this.tableViewDiv.style.display = 'none';\r\n } else {\r\n this.tableViewDiv.style.display = 'block';\r\n }\r\n }\r\n \r\n ueserWiseTableView(resoureMetadata: any) {\r\n // this.deleterow(\"tableRow\");\r\n document.getElementById(\"tblBody\").innerHTML = \"\";\r\n let labelArray = new Array();\r\n let cnt = 0;\r\n for (let i = 0; i < resoureMetadata.length; i++) {\r\n for (let j = 0; j < 12; j++) {\r\n let label = document.createElement('label');\r\n label.appendChild(document.createTextNode(resoureMetadata[i][j]));\r\n if (label.textContent === 'undefined' || label.textContent===undefined) {\r\n label.textContent = '';\r\n }\r\n labelArray.push(label);\r\n // console.log(\"label\",label);\r\n }\r\n }\r\n for (let j = 0; j <= resoureMetadata.length; j++) {\r\n let row = document.createElement('tr');\r\n \r\n let cell: any;\r\n for (let i = 0; i < 12; i++) {\r\n cell = document.createElement('td');\r\n \r\n if (cnt < labelArray.length) {\r\n cell.appendChild(labelArray[cnt]);\r\n row.appendChild(cell);\r\n }\r\n cnt++;\r\n }\r\n this.tblBody.appendChild(row);\r\n // this.tableRow.appendChild(this.tblBody);\r\n }\r\n \r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PrincipalDashboardLibV2Component } from './principal-dashboard-lib-v2.component';\r\n\r\nimport { ChartheaderComponent } from './chartheader/chartheader.component';\r\nimport { ChartviewComponent } from './chartview/chartview.component';\r\nimport { DetailedviewComponent } from './detailedview/detailedview.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { TableviewComponent } from './tableview/tableview.component';\r\nimport { GoogleChartsModule } from 'angular-google-charts';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DatepickerModule } from 'ng2-datepicker';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ChartheaderComponent,\r\n ChartviewComponent,\r\n DetailedviewComponent,\r\n HeaderComponent,\r\n TableviewComponent,\r\n PrincipalDashboardLibV2Component\r\n ],\r\n imports: [\r\n CommonModule,\r\n GoogleChartsModule,\r\n DatepickerModule\r\n ],\r\n exports: [\r\n PrincipalDashboardLibV2Component\r\n ]\r\n})\r\nexport class PrincipalDashboardLibV2Module { }\r\n","/*\r\n * Public API Surface of principal-dashboard-lib-v2\r\n */\r\n\r\nexport * from './lib/principal-dashboard-lib-v2.service';\r\nexport * from './lib/principal-dashboard-lib-v2.component';\r\nexport * from './lib/principal-dashboard-lib-v2.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ChartheaderComponent as ɵa} from './lib/chartheader/chartheader.component';\nexport {ChartviewComponent as ɵb} from './lib/chartview/chartview.component';\nexport {DetailedviewComponent as ɵc} from './lib/detailedview/detailedview.component';\nexport {ExceldataService as ɵe} from './lib/exceldata.service';\nexport {HeaderComponent as ɵd} from './lib/header/header.component';\nexport {TableviewComponent as ɵf} from './lib/tableview/tableview.component';"],"names":["XLSX.utils","XLSX.write","FileSaver.saveAs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"principal-dashboard-lib-v2.js","sources":["../../../projects/principal-dashboard-lib-v2/src/lib/principal-dashboard-lib-v2.service.ts","../../../projects/principal-dashboard-lib-v2/src/lib/principal-dashboard-lib-v2.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/chartheader/chartheader.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/chartview/chartview.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/detailedview/detailedview.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/exceldata.service.ts","../../../projects/principal-dashboard-lib-v2/src/lib/header/header.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/tableview/tableview.component.ts","../../../projects/principal-dashboard-lib-v2/src/lib/principal-dashboard-lib-v2.module.ts","../../../projects/principal-dashboard-lib-v2/src/public-api.ts","../../../projects/principal-dashboard-lib-v2/src/principal-dashboard-lib-v2.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Subject, BehaviorSubject, ReplaySubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PrincipalDashboardLibV2Service {\r\npublic resoureMetaData:any;\r\npublic usersMetaData:any;\r\npublic schoolTerminalData:any;\r\npublic userConsoleData:any;\r\n\r\npublic isResoureMetaDataReady = new ReplaySubject();\r\npublic isResoureMetaDataReady$ = this.isResoureMetaDataReady.asObservable();\r\n\r\npublic isUserReqiuredDataReady = new ReplaySubject();\r\npublic isUserReqiuredDataReady$ = this.isUserReqiuredDataReady.asObservable();\r\n\r\n public mychartType: any = '';\r\n public dataType: any = '';\r\n public userAllData: any = '';\r\n public userMetadata: any = {userDetails:[],resourceDetails:[]};\r\n public resoureMetadata = new Array();\r\n public userDetailObject: any = {};\r\n public userlist:any = false;\r\n public myEndTime :any;\r\n \r\n //for change chart Type\r\n public chartType = new BehaviorSubject(this.mychartType);\r\n public chartType$ = this.chartType.asObservable();\r\n //for change userWise To classRoom wise or vice versa\r\n public isUserWise_data = new BehaviorSubject(true);\r\n public isUserWise_data$ = this.isUserWise_data.asObservable();\r\n // for all user and current user information\r\n public isAllUsers = new BehaviorSubject(this.userlist);\r\n public isAllUsers$ = this.isAllUsers.asObservable();\r\n //for get details of selected user\r\n public detailedviewData = new BehaviorSubject(this.userMetadata);\r\n public detailedviewData$ = this.detailedviewData.asObservable();\r\n\r\n\r\n constructor() { }\r\n \r\n genarateResourseReqiuredData(data: any): any {\r\n this.isResoureMetaDataReady.next(false);\r\n let resourceMetadataMatrix = new Array();\r\n \r\n if(data && data !== null){\r\n let resouseID: any;\r\n let title: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let teachingpoint: any;\r\n let type: any;\r\n let resourceMetadata = data.resourcesMetadata.resourceMetadata;\r\n \r\n if(resourceMetadata!= undefined && resourceMetadata.length>0) {\r\n for (var i = 0; i < resourceMetadata.length;i++){\r\n //----------//resouseID\r\n resouseID = resourceMetadata[i].resourceId;\r\n //----------//subject\r\n if (resourceMetadata[i].subject != undefined) {\r\n if (resourceMetadata[i].subject.title != undefined) {\r\n subject = resourceMetadata[i].subject.title;\r\n } else {\r\n subject = '';\r\n }\r\n } else {\r\n subject = '';\r\n }\r\n //----------//grade\r\n if (resourceMetadata[i].grade != undefined) {\r\n if (resourceMetadata[i].grade.title != undefined) {\r\n grade = resourceMetadata[i].grade.title;\r\n } else {\r\n grade = '';\r\n }\r\n } else {\r\n grade = '';\r\n }\r\n //----------//chapter\r\n if (resourceMetadata[i].chapter != undefined) {\r\n if (resourceMetadata[i].chapter.title != undefined) {\r\n chapter = resourceMetadata[i].chapter.title;\r\n } else {\r\n chapter = '';\r\n }\r\n } else {\r\n chapter = '';\r\n }\r\n \r\n //----------//teachingpoint\r\n if (resourceMetadata[i].teachingpoint != undefined) {\r\n if (resourceMetadata[i].teachingpoint.title != undefined) {\r\n teachingpoint = resourceMetadata[i].teachingpoint.title;\r\n } else {\r\n teachingpoint = '';\r\n }\r\n } else {\r\n teachingpoint = '';\r\n }\r\n //----------//type\r\n if (resourceMetadata[i].type != undefined) {\r\n type = this.getDisplaytypeValue(resourceMetadata[i].type);\r\n } else {\r\n type = '';\r\n }\r\n \r\n //----------//title\r\n if (resourceMetadata[i].title != undefined) {\r\n title = resourceMetadata[i].title;\r\n } else {\r\n title = '';\r\n }\r\n let resourceMetauserConsoleData = {\r\n resouseID:resouseID,\r\n subject:subject,\r\n grade:grade,\r\n chapter:chapter,\r\n teachingpoint:teachingpoint,\r\n type:type,\r\n title:title\r\n }\r\n resourceMetadataMatrix.push(resourceMetauserConsoleData);\r\n this.resoureMetaData = resourceMetadataMatrix;\r\n this.isResoureMetaDataReady.next(true);\r\n }\r\n }\r\n }\r\n // this.resoureMetaData = resourceMetadataMatrix;\r\n return resourceMetadataMatrix;\r\n }\r\n genarateUserReqiuredData(data: any): any {\r\n this.isUserReqiuredDataReady.next(false);\r\n let usersMetadataMatrix = new Array();\r\n let usermetadataMatrixUpdated = new Array();\r\n let schoolTerminalMatrix = new Array();\r\n let userConsoleMatrix = new Array();\r\n if(data && data !== null){\r\n let userConsole = data.usersConsole.userConsole;\r\n let usersMetadata = data.usersMetadata.userMetadata;\r\n let schoolTerminal = data.schoolTerminals.schoolTerminal;\r\n \r\n if(usersMetadata!= null && usersMetadata.length > 0){\r\n for (let i = 0; i < usersMetadata.length; i++) {\r\n let userId: any;\r\n let userName: any;\r\n let userSubjects: any;\r\n let listOfUser:any = {}\r\n if (usersMetadata[i].userId!=\"\") {\r\n userId = usersMetadata[i].userId;\r\n \r\n if (usersMetadata[i].fullName !== undefined) {\r\n userName = usersMetadata[i].fullName // get name of user w.r.t. ID\r\n } else {\r\n userName = '';\r\n }\r\n \r\n if (usersMetadata[i].userSubjects !== undefined) {\r\n userSubjects = usersMetadata[i].userSubjects // get name of user w.r.t. ID\r\n } else {\r\n userSubjects = '';\r\n }\r\n \r\n listOfUser = {\r\n userId:userId, \r\n userName:userName, \r\n userSubjects:userSubjects\r\n };\r\n usersMetadataMatrix.push(listOfUser); // array of all users\r\n }\r\n }\r\n }\r\n for (var i = 0; i < usersMetadataMatrix.length; i++) {\r\n usersMetadataMatrix.forEach(element => {\r\n if (usersMetadataMatrix[i].userName === element.userName) {\r\n usermetadataMatrixUpdated.push(usersMetadataMatrix[i]); //array of same name users\r\n usersMetadataMatrix.splice(i, 1); //delete the same name users from usermetadataMatrix\r\n }\r\n });\r\n }\r\n for (var i = 0; i < usermetadataMatrixUpdated.length; i++) {\r\n // const randomNumber = document.createElement('span');\r\n // randomNumber.innerHTML = i.toString();\r\n usermetadataMatrixUpdated[i].userName = usermetadataMatrixUpdated[i].userName + \" \" + i;\r\n usersMetadataMatrix.push(usermetadataMatrixUpdated[i]); //adding same name users in usermetadataMatrix with some random charators\r\n this.usersMetaData = usersMetadataMatrix;\r\n }\r\n if(schoolTerminal != null && schoolTerminal.length > 0){\r\n for (var i = 0; i < schoolTerminal.length; i++) {\r\n let schoolId:any;\r\n let terminalKey:any;\r\n let terminalType:any;\r\n let location:any;\r\n let schoolTerminalData:any = {};\r\n \r\n //----------//schoolId\r\n if (schoolTerminal[i].schoolId !== undefined) {\r\n schoolId = schoolTerminal[i].schoolId // get name of user w.r.t. ID\r\n } else {\r\n schoolId = '';\r\n }\r\n //----------//terminalKey\r\n if (schoolTerminal[i].terminalKey !== undefined) {\r\n terminalKey = schoolTerminal[i].terminalKey // get name of user w.r.t. ID\r\n } else {\r\n terminalKey = '';\r\n }\r\n //----------//terminalType\r\n if (schoolTerminal[i].terminalType !== undefined) {\r\n terminalType = schoolTerminal[i].terminalType // get name of user w.r.t. ID\r\n } else {\r\n terminalType = '';\r\n }\r\n \r\n //----------//location\r\n if (schoolTerminal[i].metadata !== undefined) {\r\n let metadataJSON = JSON.parse(schoolTerminal[i].metadata);\r\n \r\n location = metadataJSON.location // get name of user w.r.t. ID\r\n console.log(\"metadataJSON\",location);\r\n } else {\r\n location = '';\r\n }\r\n schoolTerminalData = {\r\n schoolId:schoolId,\r\n terminalKey:terminalKey,\r\n terminalType:terminalType,\r\n location:location\r\n };\r\n \r\n schoolTerminalMatrix.push(schoolTerminalData);\r\n this.schoolTerminalData = schoolTerminalMatrix;\r\n }\r\n }\r\n if(userConsole !=null && userConsole.length > 0){\r\n for (let index = 0; index < userConsole.length; index++) {\r\n let userId: any;\r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let selectedDate: any;\r\n let terminalIP: any;\r\n let userConsoleResources: any;\r\n let resourceMetadataIDS: any;\r\n let resourceMetauserConsoleData = new Array();\r\n let userName:any;\r\n let userSubjects:any;\r\n let terminalLocation: any;\r\n //----------//user iD\r\n if (userConsole[index].userId !== undefined) {\r\n userId = userConsole[index].userId // get name of user w.r.t. ID\r\n } else {\r\n userId = '';\r\n }\r\n //----------// startTime \r\n if (userConsole[index].startTime !== undefined) {\r\n startTime = userConsole[index].startTime // get name of user w.r.t. ID\r\n } else {\r\n startTime = '';\r\n }\r\n //----------// endTime \r\n if (userConsole[index].endTime !== undefined) {\r\n endTime = userConsole[index].endTime // get name of user w.r.t. ID\r\n this.myEndTime = endTime;\r\n } else {\r\n endTime = '';\r\n }\r\n //----------// Date \r\n if (userConsole[index].selectedDate !== undefined) {\r\n selectedDate = userConsole[index].selectedDate // get name of user w.r.t. ID\r\n } else {\r\n selectedDate = '';\r\n }\r\n \r\n //----------// Duration\r\n if (userConsole[index].duration !== undefined) {\r\n duration = userConsole[index].duration // get name of user w.r.t. ID\r\n } else {\r\n duration = '';\r\n }\r\n //----------// terminalIP\r\n if (userConsole[index].terminalIP !== undefined) {\r\n terminalIP = userConsole[index].terminalIP // get name of user w.r.t. ID\r\n } else {\r\n terminalIP = '';\r\n }\r\n \r\n //----------// userConsoleResources\r\n if (userConsole[index].userConsoleResources !== undefined) {\r\n userConsoleResources = userConsole[index].userConsoleResources // get name of user w.r.t. ID\r\n } else {\r\n userConsoleResources = null;\r\n }\r\n \r\n if(userConsoleResources != null){\r\n if (userConsoleResources.userConsoleResource !== undefined) {\r\n resourceMetauserConsoleData = userConsoleResources.userConsoleResource; // get name of user w.r.t. ID\r\n } else {\r\n resourceMetauserConsoleData = [];\r\n }\r\n }\r\n \r\n //----------// userName and userSubjects\r\n for (let i = 0; i < usersMetadataMatrix.length; i++) {\r\n if (userId === usersMetadataMatrix[i].userId) {\r\n userName = usersMetadataMatrix[i].userName;\r\n userSubjects = usersMetadataMatrix[i].userSubjects;\r\n }\r\n }\r\n //----------// terminalIP and terminalLocation\r\n \r\n for (let i = 0; i < schoolTerminalMatrix.length; i++) {\r\n console.log(\"schoolTerminalMatrix[i]\",schoolTerminalMatrix[i]);\r\n console.log(\"schoolTerminalMatrix[i].terminalKey\",terminalIP,schoolTerminalMatrix[i].terminalKey);\r\n if (terminalIP === schoolTerminalMatrix[i].terminalKey) {\r\n terminalLocation = schoolTerminalMatrix[i].location;\r\n break;\r\n }else{\r\n terminalLocation = \"location\";\r\n }\r\n }\r\n let userData = {\r\n userId:userId,\r\n userName:userName,\r\n startTime:new Date(startTime),\r\n endTime:new Date(endTime),\r\n terminalIP:terminalIP,\r\n resourceMetauserConsoleData:resourceMetauserConsoleData,\r\n duration:duration,\r\n terminalLocation:terminalLocation,\r\n userSubjects:userSubjects\r\n }\r\n userConsoleMatrix.push(userData);\r\n this.userConsoleData = userConsoleMatrix;\r\n this.isUserReqiuredDataReady.next(true);\r\n }\r\n }\r\n }\r\n // console.log(usersMetadataMatrix,schoolTerminalMatrix,userConsoleMatrix);\r\n return {\r\n usersMetadata:usersMetadataMatrix,\r\n schoolTerminalData:schoolTerminalMatrix,\r\n userConsoleData: userConsoleMatrix\r\n }\r\n }\r\n userWiseChartData(){\r\n let dataTableforChart = new Array();\r\n dataTableforChart = [];\r\n if(this.userConsoleData){\r\n if(this.userConsoleData.length > 0){\r\n for(let i = 0; i < this.userConsoleData.length; i++){\r\n let userData = [this.userConsoleData[i].userName,this.userConsoleData[i].startTime,this.userConsoleData[i].endTime];\r\n dataTableforChart.push(userData);\r\n }\r\n }\r\n }\r\n return dataTableforChart;\r\n }\r\n classRoomWiseChartData(){\r\n let dataTableforChart = new Array();\r\n dataTableforChart = [];\r\n if(this.userConsoleData){\r\n \r\n for(let i = 0; i < this.userConsoleData.length; i++){\r\n let userData = [this.userConsoleData[i].terminalIP,this.userConsoleData[i].startTime,this.userConsoleData[i].endTime];\r\n dataTableforChart.push(userData);\r\n }\r\n }\r\n console.log(\"this.classRoomWiseChartData\",dataTableforChart);\r\n return dataTableforChart;\r\n \r\n }\r\n allUserChartData(){\r\n let dataTableforChart = new Array();\r\n dataTableforChart = [];\r\n let AlluserDetailsForTableChart =new Array();\r\n AlluserDetailsForTableChart = [];\r\n if(this.userConsoleData && this.usersMetaData){\r\n let inActiveuserName: any;\r\n let userSubjects: any;\r\n let myID: any;\r\n let AlluserDetails =new Array();\r\n for (let index = 0; index < this.userConsoleData.length; index++) {\r\n AlluserDetails.push(this.userConsoleData[index]);\r\n AlluserDetailsForTableChart.push(this.userConsoleData[index])\r\n }\r\n for (let i = 0; i < this.usersMetaData.length; i++) {\r\n myID = this.usersMetaData[i].userId;\r\n inActiveuserName = this.usersMetaData[i].userName;\r\n userSubjects = this.usersMetaData[i].userSubjects;\r\n let myChartRowuserConsoleData = \r\n {\r\n userId:myID,\r\n userName:inActiveuserName,\r\n startTime:new Date(this.myEndTime),\r\n endTime:new Date(this.myEndTime),\r\n terminalIP:\"\",\r\n resourceMetauserConsoleData:[],\r\n duration:\"0\",\r\n terminalLocation:\"\",\r\n userSubjects:userSubjects\r\n };\r\n AlluserDetails.push(myChartRowuserConsoleData);\r\n \r\n let myTableRowuserConsoleData = {\r\n userId:myID,\r\n userName:inActiveuserName,\r\n startTime:\"\",\r\n endTime:\"\",\r\n terminalIP:\"\",\r\n resourceMetauserConsoleData:[],\r\n duration:0,\r\n terminalLocation:\"\",\r\n userSubjects:userSubjects\r\n };\r\n AlluserDetailsForTableChart.push(myTableRowuserConsoleData);\r\n }\r\n for(let i = 0; i < AlluserDetails.length; i++){\r\n let userData = [AlluserDetails[i].userName,AlluserDetails[i].startTime,AlluserDetails[i].endTime];\r\n dataTableforChart.push(userData);\r\n }\r\n }\r\n return {forChartData:dataTableforChart,fordurationTable:AlluserDetailsForTableChart}\r\n }\r\n allRoomsData(){\r\n let dataTableforChart = new Array();\r\n dataTableforChart = [];\r\n let allRoomsDetails = new Array();\r\n allRoomsDetails = [];\r\n if(this.userConsoleData && this.schoolTerminalData){\r\n let myChartRowData: any={};\r\n let inActiveClassRoom: any;\r\n for(let i = 0; i < this.userConsoleData.length; i++){\r\n allRoomsDetails.push(this.userConsoleData[i]);\r\n let userData = [this.userConsoleData[i].terminalIP,this.userConsoleData[i].startTime,this.userConsoleData[i].endTime];\r\n dataTableforChart.push(userData);\r\n }\r\n \r\n for (let i = 0; i < this.schoolTerminalData.length; i++) {\r\n console.log(\"schoolTerminalData\",this.schoolTerminalData);\r\n \r\n inActiveClassRoom = this.schoolTerminalData[i].terminalKey;\r\n \r\n myChartRowData = {\r\n userId:\"\",\r\n userName:\"\",\r\n startTime:new Date(this.myEndTime),\r\n endTime:new Date(this.myEndTime),\r\n terminalIP:inActiveClassRoom,\r\n resourceMetauserConsoleData:[],\r\n duration:0,\r\n terminalLocation:\"\",\r\n userSubjects:\"\"\r\n };\r\n allRoomsDetails.push(myChartRowData);\r\n let myChartRowuserConsoleData = [inActiveClassRoom,new Date(this.myEndTime),new Date(this.myEndTime)];\r\n dataTableforChart.push(myChartRowuserConsoleData);\r\n }\r\n \r\n }\r\n return {forChartData:dataTableforChart,fordurationTable:allRoomsDetails};\r\n }\r\n dataForTableView(userConsoleMatrix: any,resourceMetadataMatrix: any) {\r\n let currentDate: any;\r\n let resourceMatrixForTableChart = new Array();\r\n let resourceMatrixForExcel = new Array();\r\n resourceMatrixForTableChart = [];\r\n resourceMatrixForExcel = [];\r\n for (let i = 0; i <userConsoleMatrix.length; i++) {\r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let terminalIP: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let AssestDetail: any;\r\n let resourceType: any;\r\n let resourceTitle: any;\r\n let teachingpoint: any;\r\n let location: any;\r\n let teacherName: any;\r\n let teacherSubject: any;\r\n \r\n let resourceMetadataIDs: any;\r\n let resourceArrayForExcel = new Array();\r\n let resourceArrayForTableChart = new Array();\r\n let userConsoleDataMatrix = new Array();\r\n resourceArrayForTableChart = [];\r\n userConsoleDataMatrix = [];\r\n //----------------- for subject and Name\r\n \r\n\r\n teacherSubject = userConsoleMatrix[i].userSubjects;\r\n teacherName = userConsoleMatrix[i].userName;\r\n //----------------- for start Time and EndTime \r\n if ((userConsoleMatrix[i].startTime != undefined && userConsoleMatrix[i].startTime != \"\") && (userConsoleMatrix[i].endTime != undefined&&userConsoleMatrix[i].endTime != \"\")) {\r\n startTime = userConsoleMatrix[i].startTime.toLocaleTimeString('en-US', { hour12: true });\r\n endTime = userConsoleMatrix[i].endTime.toLocaleTimeString('en-US', { hour12: true });\r\n currentDate = userConsoleMatrix[i].startTime.getDate() + '/' + (userConsoleMatrix[i].startTime.getMonth()+1) + '/' + userConsoleMatrix[i].startTime.getFullYear();\r\n }\r\n //----------------- for duration\r\n duration = Math.floor(userConsoleMatrix[i].duration);\r\n //----------------- for Terminal loaction and terminal IP\r\n location = userConsoleMatrix[i].terminalLocation;\r\n terminalIP = userConsoleMatrix[i].terminalIP;\r\n let roomDetail = location + ' ' + terminalIP;\r\n \r\n resourceMetadataIDs = userConsoleMatrix[i].resourceMetauserConsoleData;\r\n \r\n if (resourceMetadataIDs.length == 0) {\r\n subject = undefined;\r\n grade = undefined;\r\n chapter = undefined;\r\n teachingpoint = undefined;\r\n AssestDetail = undefined;\r\n resourceTitle = undefined;\r\n resourceType = undefined;\r\n resourceArrayForTableChart = [teacherName,teacherSubject,currentDate,startTime,endTime,duration,roomDetail,subject,grade,chapter,teachingpoint,AssestDetail];\r\n resourceMatrixForTableChart.push(resourceArrayForTableChart);\r\n \r\n }else{\r\n //resourceMetadataMatrix = [resouseID,subject,grade,chapter,teachingpoint,type,title]\r\n for (let k = 0; k < resourceMetadataIDs.length; k++) {\r\n for (let i = 0; i < resourceMetadataMatrix.length; i++) {\r\n if (resourceMetadataIDs[k] === resourceMetadataMatrix[i].resouseID) {\r\n subject = resourceMetadataMatrix[i].subject;\r\n grade = resourceMetadataMatrix[i].grade;\r\n chapter = resourceMetadataMatrix[i].chapter;\r\n teachingpoint = resourceMetadataMatrix[i].teachingpoint;\r\n AssestDetail = this.getDisplaytypeValue(resourceMetadataMatrix[i].type) + \": \" + resourceMetadataMatrix[i].title;\r\n\r\n resourceArrayForTableChart = [teacherName,teacherSubject,currentDate,startTime,endTime,duration,roomDetail,subject,grade,chapter,teachingpoint,AssestDetail];\r\n resourceMatrixForTableChart.push(resourceArrayForTableChart);\r\n teacherName = undefined;\r\n teacherSubject = undefined;\r\n currentDate = undefined;\r\n startTime = undefined;\r\n endTime = undefined;\r\n duration = undefined;\r\n roomDetail = undefined;\r\n \r\n }\r\n }\r\n }\r\n }\r\n }\r\n return resourceMatrixForTableChart;\r\n }\r\n dataForDetailedView(userConsoleMatrix: any,resourceMetadataMatrix: any, rowLabel: any) {\r\n let detailedView_UserDataMatrix = new Array();\r\n detailedView_UserDataMatrix = [];\r\n let detailedView_ResourceDataMatrix = new Array();\r\n detailedView_ResourceDataMatrix = [];\r\n \r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let terminalIP: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let AssestDetail: any;\r\n let teachingpoint: any;\r\n let location: any;\r\n let teacherName: any;\r\n let teacherSubject: any;\r\n let currentDate: any;\r\n let resourceMetadataIDs: any;\r\n let resourceArrayForTableChart = new Array();\r\n resourceArrayForTableChart = [];\r\n //----------------- for subject and Name\r\n teacherSubject = userConsoleMatrix[rowLabel].userSubjects;\r\n teacherName = userConsoleMatrix[rowLabel].userName;\r\n //----------------- for start Time and EndTime\r\n if ((userConsoleMatrix[rowLabel].startTime != undefined && userConsoleMatrix[rowLabel].startTime != \"\") && (userConsoleMatrix[rowLabel].endTime != undefined&&userConsoleMatrix[rowLabel].endTime != \"\")) {\r\n startTime = userConsoleMatrix[rowLabel].startTime.toLocaleTimeString('en-US', { hour12: true });\r\n endTime = userConsoleMatrix[rowLabel].endTime.toLocaleTimeString('en-US', { hour12: true });\r\n currentDate = userConsoleMatrix[rowLabel].startTime.getDate() + '/' + userConsoleMatrix[rowLabel].startTime.getMonth() + '/' + userConsoleMatrix[rowLabel].startTime.getFullYear();\r\n }\r\n //----------------- for duration\r\n duration = Math.floor(userConsoleMatrix[rowLabel].duration);\r\n //----------------- for Terminal loaction and terminal IP\r\n location = userConsoleMatrix[rowLabel].terminalLocation;\r\n terminalIP = userConsoleMatrix[rowLabel].terminalIP;\r\n let roomDetail = location + ' ' + terminalIP;\r\n resourceMetadataIDs = userConsoleMatrix[rowLabel].resourceMetauserConsoleData;\r\n\r\n detailedView_UserDataMatrix = [teacherName,startTime,teacherSubject,endTime,roomDetail]\r\n \r\n if (resourceMetadataIDs.length == 0) {\r\n subject = undefined;\r\n grade = undefined;\r\n chapter = undefined;\r\n teachingpoint = undefined;\r\n AssestDetail = undefined;\r\n // resourceArrayForTableChart = [subject,grade,chapter,teachingpoint,AssestDetail];\r\n // detailedView_ResourceDataMatrix.push(resourceArrayForTableChart);\r\n }else{\r\n //resourceMetadataMatrix = [resouseID,subject,grade,chapter,teachingpoint,type,title]\r\n for (let k = 0; k < resourceMetadataIDs.length; k++) {\r\n for (let i = 0; i < resourceMetadataMatrix.length; i++) {\r\n if (resourceMetadataIDs[k] === resourceMetadataMatrix[i].resouseID) {\r\n subject = resourceMetadataMatrix[i].subject;\r\n grade = resourceMetadataMatrix[i].grade;\r\n chapter = resourceMetadataMatrix[i].chapter;\r\n teachingpoint = resourceMetadataMatrix[i].teachingpoint;\r\n AssestDetail =resourceMetadataMatrix[i].type + \": \" + resourceMetadataMatrix[i].title;\r\n \r\n resourceArrayForTableChart = [subject,grade,chapter,teachingpoint,AssestDetail];\r\n detailedView_ResourceDataMatrix.push(resourceArrayForTableChart);\r\n }\r\n }\r\n }\r\n } \r\n \r\n return {userDetails:detailedView_UserDataMatrix,resourceDetails:detailedView_ResourceDataMatrix};\r\n }\r\n // To GET DISPLAY TYPE\r\n getDisplaytypeValue(key: any) {\r\n let assetTypeConfig = [\r\n {\r\n type: \"asset_media\",\r\n display: \"Media\"\r\n },\r\n {\r\n type: \"asset_print\",\r\n display: \"Print\"\r\n },\r\n {\r\n type: \"quiz\",\r\n display: \"Quiz\"\r\n },\r\n {\r\n type: \"question\",\r\n display: \"Question\"\r\n },\r\n {\r\n type: \"chapter\",\r\n display: \"Chapter\"\r\n },\r\n {\r\n type: \"tp\",\r\n display: \"Topic\"\r\n },\r\n {\r\n type: \"whiteboard\",\r\n display: \"Whiteboard\"\r\n },\r\n {\r\n type: \"widget\",\r\n display: \"Widget\"\r\n },\r\n {\r\n type: \"casset_media\",\r\n display: \"cMedia\"\r\n },\r\n {\r\n type: \"casset_print\",\r\n display: \"cPrint\"\r\n },\r\n {\r\n type: \"cquiz\",\r\n display: \"cQuiz\"\r\n },\r\n {\r\n type: \"cquestion\",\r\n display: \"cQuestion\"\r\n },\r\n {\r\n type: \"image\",\r\n display: \"Image\"\r\n },\r\n {\r\n type: \"video\",\r\n display: \"Video\"\r\n },\r\n\r\n ];\r\n let displayValue = key;\r\n assetTypeConfig.forEach((value) => {\r\n if (value.type === key) {\r\n displayValue = value.display;\r\n }\r\n });\r\n return displayValue;\r\n\r\n }\r\n}\r\n","import { Component, OnInit ,Output, ViewChild, Input,EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-principal-dashboard-lib-v2',\r\n templateUrl: './principal-dashboard-lib-v2.component.html',\r\n styleUrls: ['./principal-dashboard-lib-v2.component.scss']\r\n})\r\nexport class PrincipalDashboardLibV2Component implements OnInit {\r\n @Input() data;\r\n @Input() set responseStatus(res: any) {\r\n this.setMessageForUser(res);\r\n // console.log(\" @Input() set responseStatus(res: any) >>>>>>>>>>>>.\",res);\r\n }\r\n @Output() userSelectedDate = new EventEmitter();\r\n messageForUser = \"Loding...\";\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n // console.log(\" IN --> 7 data\",this.data);\r\n }\r\n setMessageForUser(res: any){\r\n this.messageForUser = res;\r\n }\r\n onUserSelectDate(e:any){\r\n // console.log(\" IN --> 1\");\r\n this.data = null;\r\n this.userSelectedDate.emit(e);\r\n }\r\n \r\n\r\n}\r\n","import { getLocaleDateTimeFormat } from '@angular/common';\r\nimport { Component, ElementRef, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { ChartType } from 'angular-google-charts';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\ndeclare let require: any;\r\n\r\n@Component({\r\n selector: 'lib-chartheader',\r\n templateUrl: './chartheader.component.html',\r\n styleUrls: ['./chartheader.component.scss'],\r\n})\r\nexport class ChartheaderComponent implements OnInit {\r\n constructor(\r\n private pdService: PrincipalDashboardLibV2Service\r\n ) {}\r\n \r\n //variables\r\n mytype = ChartType.Timeline;\r\n datadisplaytype = 'UserWise';\r\n isUserWise = true;\r\n myIcon: any;\r\n libVersion:any;\r\n isChartView=true;\r\n\r\n ngOnInit(): void {\r\n this.libVersion = \"0.0.14\";\r\n // this.myIcon = document.getElementById('myIconImg');\r\n // this.changeChatType() \r\n }\r\n changeChatType() {\r\n if (this.mytype == ChartType.Timeline) {\r\n this.isChartView = false;\r\n this.mytype = ChartType.Table;\r\n this.pdService.chartType.next(this.mytype);\r\n \r\n } else {\r\n this.isChartView = true;\r\n this.mytype = ChartType.Timeline;\r\n \r\n this.pdService.chartType.next(this.mytype);\r\n }\r\n }\r\n changeDataTypeClassRoom() {\r\n this.isUserWise = false;\r\n this.pdService.isUserWise_data.next(false);\r\n }\r\n changeDataTypeUser() {\r\n this.isUserWise = true;\r\n this.pdService.isUserWise_data.next(true);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n OnInit,\r\n ViewChild,\r\n Input,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { ChartType, GoogleChartComponent } from 'angular-google-charts';\r\nimport { element } from 'protractor';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\n@Component({\r\n selector: 'lib-chartview',\r\n templateUrl: './chartview.component.html',\r\n styleUrls: ['./chartview.component.scss'],\r\n})\r\nexport class ChartviewComponent implements OnInit {\r\n @Input() set data(res: any) {\r\n if(res!== null){\r\n this.loadChart(res);\r\n }\r\n \r\n }\r\n chartview:any;\r\n myDataList:any;\r\n chartDataTable:any;\r\n myChartOptions: any;\r\n AllrowHeight: any;\r\n myXmlData: any;\r\n currentdataList:any;\r\n resourceDataList:any;\r\n alldataList:any;\r\n selectedUserData:any;\r\n rowElements:any;\r\n \r\n installedClassrooms: any;\r\n currentRooms: any;\r\n totalUsers = 0;\r\n eligibleUsers = 0;\r\n currentUsers = 0;\r\n myChartType = ChartType.Timeline;\r\n myChartwidth = window.innerWidth * 0.88;\r\n myChartHeight = window.innerHeight;\r\n currentList = \"Current Users\";\r\n allList = \"All Users\";\r\n isAllUsers = false;\r\n isUserWise = false;\r\n alluserList: any;\r\n myChartDataMatrix = new Array();\r\n \r\n totalChartDataMatrix = new Array();\r\n constructor(\r\n private pdService: PrincipalDashboardLibV2Service\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n loadChart(response: any) {\r\n // console.log(' IN --> 8 loadChart');\r\n this.totalUsers = 0;\r\n this.eligibleUsers = 0;\r\n this.currentUsers = 0;\r\n this.myChartType = ChartType.Timeline;\r\n this.myChartwidth = window.innerWidth * 0.88;\r\n this.myChartHeight = window.innerHeight;\r\n this.currentList = \"Current Users\";\r\n this.allList = \"All Users\";\r\n this.isAllUsers = false;\r\n this.isUserWise = false;\r\n this.myChartDataMatrix =[];\r\n this.totalChartDataMatrix =[];\r\n\r\n this.chartview = document.getElementById('pd-chartview');\r\n this.myDataList = document.getElementById('pd-xmlData');\r\n // let parse = new DOMParser();\r\n if(response){\r\n this.myXmlData = JSON.parse(response);\r\n }\r\n \r\n if(this.myXmlData){\r\n this.currentdataList = this.pdService.genarateUserReqiuredData(this.myXmlData);\r\n this.alluserList = this.pdService.allUserChartData();\r\n this.resourceDataList = this.pdService.genarateResourseReqiuredData(this.myXmlData);\r\n this.totalUsers = this.currentdataList.usersMetadata.length;\r\n this.findCurrentUserCount();\r\n }\r\n this.pdService.chartType.subscribe((data) => {\r\n if (data) {\r\n this.updateChartType(data);\r\n }\r\n });\r\n this.pdService.isUserWise_data.subscribe((data) => {\r\n this.updateDataType(data);\r\n });\r\n window.addEventListener('resize', this.onResizeWindow.bind(this));\r\n }\r\n onResizeWindow(event: any) {\r\n this.myChartwidth = window.innerWidth * 0.88; //set an appropriate factor\r\n }\r\n myChartReady() {\r\n this.createDivforTotalDurartion();\r\n this.setHeightofDivforTotalDurartion();\r\n // this.removeBlankEntryBar();\r\n }\r\n updateChartType(dataType: any) {\r\n if (this.chartview != null && this.chartview != undefined) {\r\n if (dataType == ChartType.Table) {\r\n this.chartview.style.display = 'none';\r\n } else {\r\n this.chartview.style.display = 'block';\r\n }\r\n }\r\n }\r\n updateDataType(dataType: any) {\r\n this.isUserWise = dataType;\r\n if (this.myXmlData) {\r\n if(this.isUserWise){\r\n this.currentList = \"Current Users\";\r\n this.allList = \"All Users\";\r\n if(this.isAllUsers){\r\n this.userWiseAllData();\r\n }else{\r\n this.userWiseCurrentData();\r\n } \r\n }else{\r\n this.allList = \"All Rooms\";\r\n this.currentList = \"Current Rooms\";\r\n if(this.isAllUsers){\r\n this.classRoomWiseAllData();\r\n }else{\r\n this.classRoomWiseCurrentData();\r\n } \r\n }\r\n }\r\n }\r\n updateChart() {\r\n let labels = document.getElementById('labels');\r\n while (labels.firstChild) {\r\n labels.removeChild(labels.lastChild);\r\n }\r\n this.chartDataTable = this.myChartDataMatrix;\r\n console.log(\"this.myChartDataMatrix\",this.myChartDataMatrix);\r\n \r\n \r\n (this.myChartOptions = {\r\n tooltip: {\r\n trigger: 'none',\r\n },\r\n colors: ['#ff7f0e', '#2ca02c', '#8c564b', '#d62728', '#bcbd22', '#17becf'],\r\n timeline: {\r\n colorByRowLabel: true,\r\n barLabelStyle: {\r\n fontSize: 7,\r\n },\r\n },\r\n hAxis: {\r\n format: 'HH:mm a',\r\n },\r\n });\r\n setTimeout(() => {\r\n this.myChartHeight = this.AllrowHeight + 100;//to set perfect height of chart \r\n }, 1000);\r\n }\r\n\r\n calulateTotalDuration(detailViewMatrix:any) {\r\n \r\n let id_durationArray;\r\n let id_durationMatrix = new Array();\r\n id_durationMatrix = [];\r\n this.totalChartDataMatrix = [];\r\n if (this.isUserWise) {\r\n for (let i = 0; i < detailViewMatrix.length; i++) {\r\n id_durationArray = {\r\n name: detailViewMatrix[i].userName,\r\n value: parseInt(detailViewMatrix[i].duration),\r\n };\r\n id_durationMatrix.push(id_durationArray);\r\n }\r\n } else {\r\n for (let i = 0; i < detailViewMatrix.length; i++) {\r\n // console.log(\"detailViewMatrix[i]\",detailViewMatrix[i]);\r\n id_durationArray = {\r\n name: detailViewMatrix[i].terminalIP,\r\n value: parseInt(detailViewMatrix[i].duration),\r\n };\r\n id_durationMatrix.push(id_durationArray);\r\n }\r\n }\r\n \r\n let obj: any = {};\r\n id_durationMatrix = [...new Set(id_durationMatrix)];\r\n \r\n id_durationMatrix.forEach((item) => {\r\n if (obj[item.name]) {\r\n obj[item.name].value = obj[item.name].value + item.value;\r\n } else {\r\n\r\n obj[item.name] = item;\r\n }\r\n });\r\n let valuesArr = Object.values(obj);\r\n \r\n let myArray = new Array();\r\n myArray = [];\r\n valuesArr.forEach((item: any) => {\r\n myArray.push(item.value);\r\n });\r\n for (let i = 0; i < myArray.length; i++) {\r\n let totaldurationPerRow = [this.timeConvert(myArray[i]).toString() + ' hrs'];\r\n // let totalChartRowDataArray = [totaldurationPerRow];\r\n this.totalChartDataMatrix.push(totaldurationPerRow);\r\n }\r\n }\r\n timeConvert(n: any) {\r\n var num = Math.floor(n);\r\n var hours = num / 60;\r\n var rhours = Math.floor(hours);\r\n var minutes = (hours - rhours) * 60;\r\n var rminutes = Math.round(minutes);\r\n return rhours + ':' + rminutes;\r\n }\r\n removeBlankEntryBar() {\r\n const chartDiv = document.getElementById('myTimeLine');\r\n var el = chartDiv.getElementsByTagName(\"rect\"); //get all the descendant rect element inside the container \r\n var width = 100000000; //set a large initial value to width\r\n var elToRem = []; //element would be added to this array for removal\r\n for (var i = 0; i < el.length; i++) { //looping over all the rect element of container\r\n var cwidth = parseInt(el[i].getAttribute(\"width\"));//getting the width of ith element\r\n if (cwidth < width) { //if current element width is less than previous width then this is min. width and ith element should be removed\r\n elToRem = [el[i]];\r\n width = cwidth; //setting the width with min width\r\n }\r\n else if (cwidth == width) { //if current element width is equal to previous width then more that one element would be removed\r\n elToRem.push(el[i]);\r\n }\r\n }\r\n for (var i = 0; i < elToRem.length; i++) {\r\n // now iterate JUST the elements to remove\r\n elToRem[i].setAttribute(\"fill\", \"none\");\r\n\r\n }\r\n }\r\n createDivforTotalDurartion() {\r\n let rowLabels = [];\r\n this.rowElements = [];\r\n var labels = document.getElementById('labels');\r\n while (labels.firstChild) {\r\n labels.removeChild(labels.lastChild);\r\n }\r\n for (var i = 0; i < this.totalChartDataMatrix.length; i++) {\r\n var team = this.totalChartDataMatrix[i][0];\r\n rowLabels.push(team);\r\n var label = labels.appendChild(document.createElement('div'));\r\n label.style['border-bottom'] = '1px solid #b7b7b7';\r\n label.style['font-family'] = 'Arial';\r\n label.style['font-size'] = '13px';\r\n label.style['text-align'] = 'left';\r\n label.style['padding-left'] = '8px';\r\n label.style['padding-right'] = '8px';\r\n label.style.position = 'inherit';\r\n if (i % 2) {\r\n label.style['background-color'] = '#e6e6e6';\r\n } else {\r\n label.style['background-color'] = '#ffffff';\r\n }\r\n label.innerHTML = team;\r\n this.rowElements.push(label);\r\n }\r\n }\r\n setHeightofDivforTotalDurartion() {\r\n \r\n this.AllrowHeight = 0;\r\n const chartDiv = document.getElementById('myTimeLine');\r\n let rows = chartDiv.getElementsByTagName('rect');\r\n let rowIndex = -1;\r\n\r\n for (let i = 0; i < rows.length; i++) {\r\n rowIndex++;\r\n if (rowIndex < this.rowElements.length) {\r\n let rowHeight = parseFloat(rows[i].getAttribute('height')) + 'px';\r\n this.AllrowHeight += parseFloat(rows[i].getAttribute('height'));\r\n\r\n const currentCell = this.rowElements[rowIndex];\r\n if (currentCell) {\r\n currentCell.style.height = rowHeight;\r\n currentCell.style.lineHeight = rowHeight;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSelectRowData(event: any) {\r\n const { row, column } = event.selection[0]; \r\n if(this.isAllUsers){\r\n this.selectedUserData = this.pdService.dataForDetailedView(this.alluserList.fordurationTable,this.resourceDataList, row);\r\n \r\n }else{\r\n this.selectedUserData = this.pdService.dataForDetailedView(this.currentdataList.userConsoleData,this.resourceDataList, row);\r\n \r\n \r\n }\r\n // console.log(\"this.selectedUserData\",this.selectedUserData);\r\n this.pdService.detailedviewData.next(this.selectedUserData);\r\n this.updateChart();\r\n // alluserList\r\n }\r\n showAllUser() {\r\n this.pdService.isAllUsers.next(true);\r\n this.isAllUsers = true;\r\n if(this.isUserWise){\r\n this.userWiseAllData();\r\n }else{\r\n this.classRoomWiseAllData();\r\n }\r\n }\r\n showCurrentUser() {\r\n this.isAllUsers = false;\r\n this.pdService.isAllUsers.next(false);\r\n if(this.isUserWise){\r\n this.userWiseCurrentData();\r\n }else{\r\n this.classRoomWiseCurrentData();\r\n }\r\n }\r\n userWiseCurrentData(){\r\n \r\n let chartDataUserWise = this.pdService.userWiseChartData();\r\n // console.log(\"chartDataUserWise\",chartDataUserWise);\r\n \r\n if(chartDataUserWise.length>0){\r\n this.myChartDataMatrix =chartDataUserWise;\r\n this.updateChart();\r\n if(this.currentdataList.userConsoleData.length>0){\r\n this.calulateTotalDuration(this.currentdataList.userConsoleData);\r\n }\r\n } \r\n }\r\n userWiseAllData(){\r\n let chartDataUserWise = this.alluserList.forChartData;\r\n if(chartDataUserWise.length>0){\r\n this.myChartDataMatrix =chartDataUserWise;\r\n \r\n this.updateChart();\r\n this.calulateTotalDuration(this.alluserList.fordurationTable);\r\n }\r\n \r\n }\r\n classRoomWiseCurrentData(){\r\n let classRoomdata = this.pdService.classRoomWiseChartData();\r\n // console.log(\"classRoomdata\",classRoomdata);\r\n if(classRoomdata && classRoomdata.length>0){\r\n \r\n \r\n this.myChartDataMatrix =classRoomdata; \r\n this.updateChart();\r\n if(this.currentdataList.userConsoleData.length>0){\r\n this.calulateTotalDuration(this.currentdataList.userConsoleData);\r\n }\r\n } \r\n }\r\n \r\n classRoomWiseAllData(){\r\n let allclassRoomList = this.pdService.allRoomsData();\r\n if(allclassRoomList.forChartData && allclassRoomList.forChartData.length > 0){\r\n this.myChartDataMatrix = allclassRoomList.forChartData;\r\n this.updateChart();\r\n }\r\n if(allclassRoomList.fordurationTable && allclassRoomList.fordurationTable.length > 0){\r\n this.calulateTotalDuration(allclassRoomList.fordurationTable);\r\n }\r\n \r\n }\r\n\r\n findCurrentUserCount(){\r\n let userConsoleData = this.currentdataList.userConsoleData;\r\n \r\n let userNameArray = new Array();\r\n for (let index = 0; index < userConsoleData.length; index++) {\r\n const element = userConsoleData[index].userName;\r\n userNameArray.push(element);\r\n }\r\n let uniqueUserName = [...new Set(userNameArray)];\r\n this.currentUsers = uniqueUserName.length;\r\n }\r\n ngOnDestroy() {\r\n // console.log('ngOnDestroy >>');\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\n\r\n@Component({\r\n selector: 'lib-detailedview',\r\n templateUrl: './detailedview.component.html',\r\n styleUrls: ['./detailedview.component.scss'],\r\n})\r\nexport class DetailedviewComponent implements OnInit {\r\n userMetadata: any;\r\n resourseMetadata: any;\r\n deatilViewContainer: any;\r\n deatilViewTable: any;\r\n closeButton: any;\r\n getTotalData:any\r\n userMetadataHeadingArray = [\r\n 'Name:',\r\n 'Start Time:',\r\n 'Subject:',\r\n 'End Time:',\r\n 'Room Details:',\r\n ];\r\n resourseMetadataHeadingArray = [\r\n 'Subject',\r\n 'Class',\r\n 'Chapter Name',\r\n 'Topic Name',\r\n 'Assets Details',\r\n ];\r\n constructor(private pdService: PrincipalDashboardLibV2Service) {}\r\n\r\n ngOnInit(): void {\r\n this.deatilViewContainer = document.getElementById('pd-deatilViewContainer');\r\n this.deatilViewTable = document.getElementById('pd-deatilViewTable');\r\n this.closeButton = document.getElementById('pd-closeButton');\r\n \r\n this.pdService.detailedviewData.subscribe((data) => {\r\n if(data){\r\n if(data.userDetails.length>0 ){\r\n this.createTable(data.userDetails);\r\n }\r\n if(data.resourceDetails.length>0){\r\n // console.log(\"data.resourceDetails\",data.resourceDetails);\r\n \r\n this.createResourcesTable(data.resourceDetails);\r\n }\r\n }\r\n \r\n });\r\n \r\n this.deatilViewContainer.style.display = 'none';\r\n }\r\n createTable(userMetadata: any) {\r\n this.deatilViewContainer.style.display = 'block';\r\n while (this.deatilViewTable.firstChild) {\r\n this.deatilViewTable.removeChild(this.deatilViewTable.lastChild);\r\n }\r\n\r\n let labelArray = new Array();\r\n let cnt = 0;\r\n for (let i = 0; i < userMetadata.length; i++) {\r\n let label = document.createElement('label');\r\n label.appendChild(\r\n document.createTextNode(this.userMetadataHeadingArray[i])\r\n );\r\n if (label.textContent === 'undefined'|| label.textContent === undefined) {\r\n label.textContent = '';\r\n }\r\n labelArray.push(label);\r\n let data = document.createElement('label');\r\n data.appendChild(document.createTextNode(userMetadata[i]));\r\n if (data.textContent === 'undefined'|| data.textContent === undefined) {\r\n data.textContent = '';\r\n }\r\n labelArray.push(data);\r\n }\r\n let tbl = document.createElement('table');\r\n tbl.id = \"userDataTable\";\r\n tbl.className = \"table table-bordered\";\r\n let tblBody = document.createElement('tbody');\r\n for (let j = 0; j < userMetadata.length / 2; j++) {\r\n let row = document.createElement('tr');\r\n let cell: any;\r\n for (let i = 0; i < 4; i++) {\r\n if (i % 2 == 0) {\r\n cell = document.createElement('th');\r\n cell.style['font-weight'] = \"bold\"\r\n // cell.style.background =\"#e0e0e0\";\r\n } else {\r\n cell = document.createElement('td');\r\n }\r\n if (cnt < labelArray.length) {\r\n cell.appendChild(labelArray[cnt]);\r\n row.appendChild(cell);\r\n }\r\n cnt++;\r\n }\r\n tblBody.appendChild(row);\r\n tbl.appendChild(tblBody);\r\n this.deatilViewTable.appendChild(tbl);\r\n }\r\n }\r\n createResourcesTable(resoureMetadata: any) {\r\n let labelArray = new Array();\r\n let cnt = 0;\r\n for (let i = 0; i < this.resourseMetadataHeadingArray.length; i++) {\r\n let label = document.createElement('label');\r\n label.appendChild(\r\n document.createTextNode(this.resourseMetadataHeadingArray[i])\r\n );\r\n if (label.textContent === 'undefined'|| label.textContent === undefined) {\r\n label.textContent = '';\r\n }\r\n labelArray.push(label);\r\n }\r\n for (let i = 0; i < resoureMetadata.length; i++) {\r\n for (let j = 0; j < 5; j++) {\r\n let label = document.createElement('label');\r\n label.appendChild(document.createTextNode(resoureMetadata[i][j]));\r\n if (label.textContent === 'undefined'|| label.textContent === undefined) {\r\n label.textContent = '';\r\n }\r\n labelArray.push(label);\r\n }\r\n }\r\n let tbl = document.createElement('table');\r\n tbl.className = \"table table-bordered\";\r\n tbl.id = \"resoureMetadataTable\";\r\n let tblBody = document.createElement('tbody');\r\n for (let j = 0; j <= resoureMetadata.length; j++) {\r\n let row = document.createElement('tr');\r\n let cell: any;\r\n for (let i = 0; i < 5; i++) {\r\n if (j == 0) {\r\n cell = document.createElement('th');\r\n cell.style['font-weight'] = 'bold';\r\n // cell.style.background =\"#e0e0e0\";\r\n } else {\r\n cell = document.createElement('td');\r\n }\r\n\r\n if (cnt < labelArray.length) {\r\n cell.appendChild(labelArray[cnt]);\r\n row.appendChild(cell);\r\n }\r\n cnt++;\r\n }\r\n tblBody.appendChild(row);\r\n tbl.appendChild(tblBody);\r\n this.deatilViewTable.appendChild(tbl);\r\n }\r\n }\r\n \r\n onCloseBtnClick() {\r\n this.deatilViewContainer.style.display = 'none';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { resourceUsage } from 'process';\r\nimport * as FileSaver from 'file-saver'\r\nimport * as XLSX from 'xlsx';\r\nimport { HtmlTagDefinition } from '@angular/compiler';\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExceldataService {\r\n resourceTypes = new Array();\r\n myEndTime:any;\r\n constructor() { }\r\n //_____FOR EXCEL CONVERTOR\r\n public workbook:any;\r\n public tabName = [{\"name\":\"School\"},{\"name\":\"User Summary\"},{\"name\":\"Terminal Summary\"},{\"name\":\"Usage Details\"}]\r\n public exportAsExcelFile(json: any,excelFileName: string): void {\r\n let excelBuffer: any;\r\n let myobj: any = {Sheets:{}, SheetNames:[] }\r\n for (let i = 0; i < json.length; i++) {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json[i]);\r\n myobj.Sheets[this.tabName[i].name] = worksheet\r\n myobj.SheetNames.push(this.tabName[i].name)\r\n }\r\n const workbook:XLSX.WorkBook = myobj; \r\n excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n //_____FOR EXCEL CONVERTOR END\r\n\r\n genarateResourseReqiuredData_Excel(data: any): any {\r\n let resouseID: any;\r\n let title: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let teachingpoint: any;\r\n let type: any;\r\n let resourceMetadataMatrix = new Array();\r\n let resourceMetadata = data.resourcesMetadata.resourceMetadata;\r\n \r\n if(resourceMetadata!= undefined && resourceMetadata.length>0) {\r\n for (var i = 0; i < resourceMetadata.length;i++){\r\n //----------//resouseID\r\n resouseID = resourceMetadata[i].resourceId;\r\n //----------//subject\r\n if (resourceMetadata[i].subject != undefined) {\r\n if (resourceMetadata[i].subject.title != undefined) {\r\n subject = resourceMetadata[i].subject.title;\r\n } else {\r\n subject = '';\r\n }\r\n } else {\r\n subject = '';\r\n }\r\n //----------//grade\r\n if (resourceMetadata[i].grade != undefined) {\r\n if (resourceMetadata[i].grade.title != undefined) {\r\n grade = resourceMetadata[i].grade.title;\r\n } else {\r\n grade = '';\r\n }\r\n } else {\r\n grade = '';\r\n }\r\n //----------//chapter\r\n if (resourceMetadata[i].chapter != undefined) {\r\n if (resourceMetadata[i].chapter.title != undefined) {\r\n chapter = resourceMetadata[i].chapter.title;\r\n } else {\r\n chapter = '';\r\n }\r\n } else {\r\n chapter = '';\r\n }\r\n \r\n //----------//teachingpoint\r\n if (resourceMetadata[i].teachingpoint != undefined) {\r\n if (resourceMetadata[i].teachingpoint.title != undefined) {\r\n teachingpoint = resourceMetadata[i].teachingpoint.title;\r\n } else {\r\n teachingpoint = '';\r\n }\r\n } else {\r\n teachingpoint = '';\r\n }\r\n //----------//type\r\n if (resourceMetadata[i].type != undefined) {\r\n type = this.getDisplaytypeValue(resourceMetadata[i].type);\r\n } else {\r\n type = '';\r\n }\r\n \r\n //----------//title\r\n if (resourceMetadata[i].title != undefined) {\r\n title = resourceMetadata[i].title;\r\n } else {\r\n title = '';\r\n }\r\n \r\n \r\n let resourceMetauserConsoleData = {\r\n resouseID:resouseID,\r\n subject:subject,\r\n grade:grade,\r\n chapter:chapter,\r\n teachingpoint:teachingpoint,\r\n type:type,\r\n title:title\r\n }\r\n resourceMetadataMatrix.push(resourceMetauserConsoleData);\r\n this.resourceTypes.push(type);\r\n }\r\n }\r\n this.resourceTypes = [...new Set(this.resourceTypes)]\r\n return resourceMetadataMatrix;\r\n }\r\n genarateUserReqiuredData_Excel(data: any): any {\r\n let userConsole = data.usersConsole.userConsole;\r\n let usersMetadata = data.usersMetadata.userMetadata;\r\n let schoolTerminal = data.schoolTerminals.schoolTerminal;\r\n \r\n \r\n let usersMetadataMatrix = new Array();\r\n let usermetadataMatrixUpdated = new Array();\r\n let schoolTerminalMatrix = new Array();\r\n let userConsoleMatrix = new Array();\r\n if(usersMetadata!= null && usersMetadata.length > 0){\r\n for (let i = 0; i < usersMetadata.length; i++) {\r\n let userId: any;\r\n let userName: any;\r\n let userSubjects: any;\r\n let listOfUser:any = {}\r\n if (usersMetadata[i].userId!=\"\") {\r\n userId = usersMetadata[i].userId;\r\n \r\n if (usersMetadata[i].fullName !== undefined) {\r\n userName = usersMetadata[i].fullName // get name of user w.r.t. ID\r\n } else {\r\n userName = '';\r\n }\r\n\r\n if (usersMetadata[i].userSubjects !== undefined) {\r\n userSubjects = usersMetadata[i].userSubjects // get name of user w.r.t. ID\r\n } else {\r\n userSubjects = '';\r\n }\r\n \r\n listOfUser = {\r\n userId:userId, \r\n userName:userName, \r\n userSubjects:userSubjects\r\n };\r\n usersMetadataMatrix.push(listOfUser); // array of all users\r\n }\r\n }\r\n }\r\n for (var i = 0; i < usersMetadataMatrix.length; i++) {\r\n usersMetadataMatrix.forEach(element => {\r\n if (usersMetadataMatrix[i].userName === element.userName) {\r\n usermetadataMatrixUpdated.push(usersMetadataMatrix[i]); //array of same name users\r\n usersMetadataMatrix.splice(i, 1); //delete the same name users from usermetadataMatrix\r\n }\r\n });\r\n }\r\n for (var i = 0; i < usermetadataMatrixUpdated.length; i++) {\r\n usermetadataMatrixUpdated[i].userName = usermetadataMatrixUpdated[i].userName + \" \" + i;\r\n usersMetadataMatrix.push(usermetadataMatrixUpdated[i]); //adding same name users in usermetadataMatrix with some random charators\r\n }\r\n if(schoolTerminal != null && schoolTerminal.length > 0){\r\n for (var i = 0; i < schoolTerminal.length; i++) {\r\n let schoolId:any;\r\n let terminalKey:any;\r\n let terminalType:any;\r\n let location:any;\r\n let schoolTerminalData:any = {};\r\n \r\n //----------//schoolId\r\n if (schoolTerminal[i].schoolId !== undefined) {\r\n schoolId = schoolTerminal[i].schoolId // get name of user w.r.t. ID\r\n } else {\r\n schoolId = '';\r\n }\r\n //----------//terminalKey\r\n if (schoolTerminal[i].terminalKey !== undefined) {\r\n terminalKey = schoolTerminal[i].terminalKey // get name of user w.r.t. ID\r\n } else {\r\n terminalKey = '';\r\n }\r\n //----------//terminalType\r\n if (schoolTerminal[i].terminalType !== undefined) {\r\n terminalType = schoolTerminal[i].terminalType // get name of user w.r.t. ID\r\n } else {\r\n terminalType = '';\r\n }\r\n \r\n //----------//location\r\n if (schoolTerminal[i].metadata !== undefined) {\r\n location = schoolTerminal[i].metadata // get name of user w.r.t. ID\r\n } else {\r\n location = '';\r\n }\r\n schoolTerminalData = {\r\n schoolId:schoolId,\r\n terminalKey:terminalKey,\r\n terminalType:terminalType,\r\n location:location\r\n };\r\n schoolTerminalMatrix.push(schoolTerminalData);\r\n \r\n }\r\n }\r\n if(userConsole !=null && userConsole.length > 0){\r\n for (let index = 0; index < userConsole.length; index++) {\r\n let userId: any;\r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let selectedDate: any;\r\n let terminalIP: any;\r\n let userConsoleResources: any;\r\n let resourceMetadataIDS: any;\r\n let resourceMetauserConsoleData = new Array();\r\n let userName:any;\r\n let userSubjects:any;\r\n let terminalLocation: any;\r\n //----------//user iD\r\n if (userConsole[index].userId !== undefined) {\r\n userId = userConsole[index].userId // get name of user w.r.t. ID\r\n } else {\r\n userId = '';\r\n }\r\n //----------// startTime \r\n if (userConsole[index].startTime !== undefined) {\r\n startTime = userConsole[index].startTime // get name of user w.r.t. ID\r\n } else {\r\n startTime = '';\r\n }\r\n //----------// endTime \r\n if (userConsole[index].endTime !== undefined) {\r\n endTime = userConsole[index].endTime // get name of user w.r.t. ID\r\n this.myEndTime = endTime;\r\n } else {\r\n endTime = '';\r\n }\r\n //----------// Date \r\n if (userConsole[index].selectedDate !== undefined) {\r\n selectedDate = userConsole[index].selectedDate // get name of user w.r.t. ID\r\n } else {\r\n selectedDate = '';\r\n }\r\n \r\n //----------// Duration\r\n if (userConsole[index].duration !== undefined) {\r\n duration = userConsole[index].duration // get name of user w.r.t. ID\r\n } else {\r\n duration = '';\r\n }\r\n //----------// terminalIP\r\n if (userConsole[index].terminalIP !== undefined) {\r\n terminalIP = userConsole[index].terminalIP // get name of user w.r.t. ID\r\n } else {\r\n terminalIP = '';\r\n }\r\n \r\n //----------// userConsoleResources\r\n if (userConsole[index].userConsoleResources !== undefined) {\r\n userConsoleResources = userConsole[index].userConsoleResources // get name of user w.r.t. ID\r\n } else {\r\n userConsoleResources = null;\r\n }\r\n \r\n if(userConsoleResources != null){\r\n if (userConsoleResources.userConsoleResource !== undefined) {\r\n resourceMetauserConsoleData = userConsoleResources.userConsoleResource; // get name of user w.r.t. ID\r\n } else {\r\n resourceMetauserConsoleData = [];\r\n }\r\n }\r\n \r\n //----------// userName and userSubjects\r\n for (let i = 0; i < usersMetadataMatrix.length; i++) {\r\n if (userId === usersMetadataMatrix[i].userId) {\r\n userName = usersMetadataMatrix[i].userName;\r\n userSubjects = usersMetadataMatrix[i].userSubjects;\r\n }\r\n }\r\n //----------// terminalIP and terminalLocation\r\n \r\n for (let i = 0; i < schoolTerminalMatrix.length; i++) {\r\n if (terminalIP === schoolTerminalMatrix[i].terminalKey) {\r\n terminalLocation = schoolTerminalMatrix[i].location;\r\n }\r\n }\r\n let userData = {\r\n userId:userId,\r\n userName:userName,\r\n startTime:new Date(startTime),\r\n endTime:new Date(endTime),\r\n terminalIP:terminalIP,\r\n resourceMetauserConsoleData:resourceMetauserConsoleData,\r\n duration:duration,\r\n terminalLocation:terminalLocation,\r\n userSubjects:userSubjects\r\n }\r\n \r\n userConsoleMatrix.push(userData);\r\n \r\n }\r\n }\r\n return {usersMetadata:usersMetadataMatrix,schoolTerminalData:schoolTerminalMatrix,userConsoleData: userConsoleMatrix}\r\n }\r\n \r\n deatilData_Excel(userConsoleMatrix: any,resourceMetadataMatrix: any){\r\n // console.log(\"resourceMetadataMatrix\",resourceMetadataMatrix);\r\n \r\n let currentDate: any;\r\n let resourceMatrixForExcel = new Array();\r\n resourceMatrixForExcel = [];\r\n for (let i = 0; i <userConsoleMatrix.length; i++) {\r\n let userID:any;\r\n let startTime: any;\r\n let endTime: any;\r\n let duration: any;\r\n let terminalIP: any;\r\n let subject: any;\r\n let grade: any;\r\n let chapter: any;\r\n let resourceType: any;\r\n let resourceTitle: any;\r\n let teachingpoint: any;\r\n let location: any;\r\n let teacherName: any;\r\n let teacherSubject: any;\r\n \r\n let resourceMetadataIDs: any;\r\n let resourceArrayForExcel = new Array();\r\n \r\n\r\n userID = userConsoleMatrix[i].userId;\r\n //----------------- for subject and Name\r\n teacherSubject = userConsoleMatrix[i].userSubjects;\r\n teacherName = userConsoleMatrix[i].userName;\r\n //----------------- for start Time and EndTime \r\n if ((userConsoleMatrix[i].startTime != undefined && userConsoleMatrix[i].startTime != \"\") && (userConsoleMatrix[i].endTime != undefined&&userConsoleMatrix[i].endTime != \"\")) {\r\n startTime = userConsoleMatrix[i].startTime.toLocaleTimeString('en-US', { hour12: true });\r\n endTime = userConsoleMatrix[i].endTime.toLocaleTimeString('en-US', { hour12: true });\r\n currentDate = userConsoleMatrix[i].startTime.getDate() + '/' + (userConsoleMatrix[i].startTime.getMonth()+1) + '/' + userConsoleMatrix[i].startTime.getFullYear();\r\n }\r\n //----------------- for duration\r\n duration = Math.floor(userConsoleMatrix[i].duration);\r\n //----------------- for Terminal loaction and terminal IP\r\n location = userConsoleMatrix[i].terminalLocation;\r\n terminalIP = userConsoleMatrix[i].terminalIP;\r\n let roomDetail = location + ' ' + terminalIP;\r\n let locationName = location;\r\n let terminalIPAddress = terminalIP;\r\n resourceMetadataIDs = userConsoleMatrix[i].resourceMetauserConsoleData;\r\n \r\n if (resourceMetadataIDs.length == 0) {\r\n subject = '';\r\n grade = '';\r\n chapter = '';\r\n teachingpoint = '';\r\n resourceTitle = '';\r\n resourceType = '';\r\n resourceArrayForExcel = [teacherName,teacherSubject,currentDate,startTime,endTime,duration,locationName, terminalIPAddress,subject,grade,chapter,teachingpoint,resourceTitle,resourceType,userID];\r\n resourceMatrixForExcel.push(resourceArrayForExcel);\r\n }else{\r\n for (let k = 0; k < resourceMetadataIDs.length; k++) {\r\n for (let i = 0; i < resourceMetadataMatrix.length; i++) {\r\n // resouseID:resouseID,\r\n // subject:subject,\r\n // grade:grade,\r\n // chapter:chapter,\r\n // teachingpoint:teachingpoint,\r\n // type:type,\r\n // title:title\r\n if (resourceMetadataIDs[k] === resourceMetadataMatrix[i].resouseID) {\r\n\r\n subject = resourceMetadataMatrix[i].subject;\r\n grade = resourceMetadataMatrix[i].grade;\r\n chapter = resourceMetadataMatrix[i].chapter;\r\n teachingpoint = resourceMetadataMatrix[i].teachingpoint;\r\n resourceTitle = resourceMetadataMatrix[i].title;\r\n resourceType = this.getDisplaytypeValue(resourceMetadataMatrix[i].type);\r\n // FOR EXCEL\r\n resourceArrayForExcel = [teacherName,teacherSubject,currentDate,startTime,endTime,duration,locationName, terminalIPAddress,subject,grade,chapter,teachingpoint,resourceTitle,resourceType,userID];\r\n resourceMatrixForExcel.push(resourceArrayForExcel);\r\n teacherName = '';\r\n teacherSubject= '';\r\n currentDate= '';\r\n startTime= '';\r\n endTime= '';\r\n locationName= ''; \r\n terminalIPAddress= '';\r\n duration = '';\r\n \r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n return resourceMatrixForExcel;\r\n }\r\n deatilUsage_Excel(resourceMatrixForExcel){\r\n let userList=[];\r\n // console.log(\"resourceMatrixForExcel>>>>>>>>>>>>>>>>>>>\",resourceMatrixForExcel);\r\n \r\n if(resourceMatrixForExcel.length > 0){\r\n for(let i=0;i<resourceMatrixForExcel.length;i++){\r\n let data = {\r\n // Sr_No: i+1,\r\n Name:resourceMatrixForExcel[i][0],\r\n Subjects:resourceMatrixForExcel[i][1],\r\n Date:\tresourceMatrixForExcel[i][2],\r\n startTime:resourceMatrixForExcel[i][3],\r\n endTime:resourceMatrixForExcel[i][4],\r\n \"duration(mins)\":resourceMatrixForExcel[i][5],\r\n location:resourceMatrixForExcel[i][6],\r\n IP:resourceMatrixForExcel[i][7],\r\n subjectTitle:resourceMatrixForExcel[i][8],\r\n gradeTitle:resourceMatrixForExcel[i][9],\r\n Chapter:resourceMatrixForExcel[i][10],\r\n tpTitle:resourceMatrixForExcel[i][11],\r\n resourceTitle:resourceMatrixForExcel[i][12],\r\n resourceType:resourceMatrixForExcel[i][13],\r\n }\r\n userList.push(data);\r\n }\r\n \r\n } \r\n // console.log(\"userList\",userList);\r\n return userList; \r\n }\r\n userSummary_Excel(data,resourceMatrixForExcel){\r\n // console.log(\"resourceMatrixForExcel\",resourceMatrixForExcel)\r\n let userMetadataList = data.usersMetadata.userMetadata;\r\n let resourcelist = new Array();\r\n let resourceTypeList = new Array();\r\n let userObjectList= new Array();\r\n let classRooms= new Array();\r\n let datesAccess= new Array();\r\n let grades= new Array();\r\n let subjectTought= new Array();\r\n // let unique_resourceTypeList = []; \r\n let duration = 0;\r\n for (let i = 0; i < userMetadataList.length; i++) {\r\n resourcelist = [];\r\n resourceTypeList = [];\r\n classRooms = []; \r\n datesAccess = [];\r\n grades = [];\r\n subjectTought = [];\r\n \r\n duration = 0;\r\n // console.log(\"userMetadataList[i]\",userMetadataList);\r\n // console.log(\"resourceMatrixForExcel[i]\",[...new Set(resourceMatrixForExcel)]);\r\n for (let j = 0; j < resourceMatrixForExcel.length; j++){\r\n \r\n if(userMetadataList[i].userId === resourceMatrixForExcel[j][14]){\r\n if(resourceMatrixForExcel[j][12] != ''){\r\n resourcelist.push(resourceMatrixForExcel[j][12]);\r\n }\r\n \r\n if(resourceMatrixForExcel[j][13] != ''){\r\n resourceTypeList.push(resourceMatrixForExcel[j][13]);\r\n }\r\n if(resourceMatrixForExcel[j][5] != ''){\r\n duration = duration + resourceMatrixForExcel[j][5];\r\n }\r\n \r\n \r\n classRooms.push(resourceMatrixForExcel[j][6]);\r\n datesAccess.push(resourceMatrixForExcel[j][2]);\r\n grades.push(resourceMatrixForExcel[j][9]);\r\n subjectTought.push(resourceMatrixForExcel[j][8]);\r\n \r\n \r\n }\r\n }\r\n \r\n let ClassRooms:any; \r\n let DatesAccess:any; \r\n let Grades:any; \r\n let SubjectTought:any; \r\n let dayAccess:any; \r\n \r\n if(classRooms.length>0){\r\n ClassRooms = [...new Set(classRooms)][0];\r\n }else{\r\n ClassRooms = '';\r\n }\r\n if(datesAccess.length>0){\r\n dayAccess = [...new Set(datesAccess)].length;\r\n }else{\r\n dayAccess = '';\r\n }\r\n if(datesAccess.length>0){\r\n DatesAccess = [...new Set(datesAccess)][0];\r\n }else{\r\n DatesAccess = '';\r\n }\r\n if(grades.length>0){\r\n Grades = [...new Set(grades)][0];\r\n }else{\r\n Grades = ''\r\n }\r\n \r\n if(subjectTought.length>0){\r\n SubjectTought = [...new Set(subjectTought)][0];\r\n }else{\r\n SubjectTought = '';\r\n }\r\n // if(resourceTypeList.length>0){\r\n // unique_resourceTypeList = [...new Set(resourceTypeList)];\r\n \r\n // }\r\n // console.log(\"this.resourceTypes\",this.resourceTypes)\r\n let user = {\r\n Name:userMetadataList[i].fullName,\r\n Subjects:userMetadataList[i].userSubjects,\r\n duration:duration,\r\n ClassRooms:ClassRooms,\r\n DatesAccess:DatesAccess,\r\n DayAccess:dayAccess,\r\n Grades:Grades,\r\n SubjectTought:SubjectTought,\r\n AseestUsed:resourcelist,\r\n AssetType:resourceTypeList\r\n }\r\n userObjectList.push(user);\r\n \r\n }\r\n // console.log(\"userObjectList\",userObjectList)\r\n let userSummaryList = new Array();\r\n for(let i = 0; i < userObjectList.length; i++){\r\n const Assetcounts = [];\r\n //find count of present asset type\r\n let presentAsset =userObjectList[i].AssetType;\r\n presentAsset = [...new Set(presentAsset)];\r\n // console.log(\"presentAsset\",presentAsset)\r\n //find count of present asset count\r\n const sampleArray =userObjectList[i].AssetType;\r\n sampleArray.forEach(function (x) { Assetcounts[x] = (Assetcounts[x] || 0) + 1; });\r\n // find missing assets\r\n let missingAssets = this.resourceTypes.filter(n => !presentAsset.includes(n));\r\n // adding missing asset with count 0 in list\r\n missingAssets.forEach((element) => {\r\n Assetcounts[element] = 0;\r\n });\r\n // console.log(Assetcounts);\r\n let asset_media = {\r\n // Sr_No: i+1,\r\n Name:userObjectList[i].Name,\r\n Subjects_taught:userObjectList[i].Subjects,\r\n \" Duration(mins)\":userObjectList[i].duration,\r\n ClassRooms:userObjectList[i].ClassRooms,\r\n DaysAccsessed:userObjectList[i].DayAccess,\r\n DatesAccess:userObjectList[i].DatesAccess,\r\n Grades:userObjectList[i].Grades,\r\n Subjects:userObjectList[i].SubjectTought\r\n }\r\n const returnedTarget = Object.assign(asset_media, Assetcounts);\r\n userSummaryList.push(returnedTarget);\r\n\r\n }\r\n \r\n // console.log(\"userSummaryList\",userSummaryList);\r\n \r\n return userSummaryList;\r\n }\r\n\r\n // To GET DISPLAY TYPE\r\n getDisplaytypeValue(key: any) {\r\n let assetTypeConfig = [\r\n {\r\n type: \"asset_media\",\r\n display: \"Media\"\r\n },\r\n {\r\n type: \"asset_print\",\r\n display: \"Print\"\r\n },\r\n {\r\n type: \"quiz\",\r\n display: \"Quiz\"\r\n },\r\n {\r\n type: \"question\",\r\n display: \"Question\"\r\n },\r\n {\r\n type: \"chapter\",\r\n display: \"Chapter\"\r\n },\r\n {\r\n type: \"tp\",\r\n display: \"Topic\"\r\n },\r\n {\r\n type: \"whiteboard\",\r\n display: \"Whiteboard\"\r\n },\r\n {\r\n type: \"widget\",\r\n display: \"Widget\"\r\n },\r\n {\r\n type: \"casset_media\",\r\n display: \"cMedia\"\r\n },\r\n {\r\n type: \"casset_print\",\r\n display: \"cPrint\"\r\n },\r\n {\r\n type: \"cquiz\",\r\n display: \"cQuiz\"\r\n },\r\n {\r\n type: \"cquestion\",\r\n display: \"cQuestion\"\r\n },\r\n {\r\n type: \"image\",\r\n display: \"Image\"\r\n },\r\n {\r\n type: \"video\",\r\n display: \"Video\"\r\n },\r\n \r\n ];\r\n let displayValue = key;\r\n assetTypeConfig.forEach((value) => {\r\n if (value.type === key) {\r\n displayValue = value.display;\r\n }\r\n });\r\n return displayValue;\r\n \r\n }\r\n}\r\n","import { Component, OnInit, Output, ViewChild, Input, EventEmitter } from '@angular/core';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\nimport { ExceldataService } from '../exceldata.service';\r\nimport { DatepickerOptions } from 'ng2-datepicker';\r\n@Component({\r\n selector: 'lib-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Input() set data(res: any) {\r\n if(res!== null){\r\n this.loadData(res);\r\n } \r\n }\r\n @Output() userSelectedDate = new EventEmitter();\r\n\r\n myCalendar: any;\r\n calenderDate: any;\r\n currentDate: any;\r\n calenderCurrentDate: any;\r\n todayDate: any;\r\n refreshTimer = 0;\r\n refreshInterval: any;\r\n calenderEvent: any;\r\n message: any;\r\n intervalId: any;\r\n mydata :any;\r\n dataList: any;\r\n //for datepicker\r\n title = 'datepicker';\r\n date: Date = new Date();\r\n options: DatepickerOptions = {\r\n inputClass: 'input',\r\n calendarClass: 'datepicker-default',\r\n scrollBarColor: '#010001',\r\n format: 'dd/LL/yyyy',\r\n maxDate: new Date()\r\n };\r\n \r\n constructor(\r\n private excelService: ExceldataService,\r\n private pdService:PrincipalDashboardLibV2Service\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getDefaultDate();\r\n this.startTimer();\r\n }\r\n getDefaultDate() {\r\n let date = new Date();\r\n this.getDateFormat(date);\r\n this.todayDate = this.calenderCurrentDate;\r\n }\r\n dateSelected(e: any){\r\n this.getDateFormat(e);\r\n this.mydata = null;\r\n this.refreshChart();\r\n }\r\n getDateFormat(date:any){\r\n let day = date.getDate();\r\n let month = date.getMonth() + 1;\r\n let year = date.getFullYear();\r\n let m;\r\n let d;\r\n if (month < 10) {\r\n m = \"0\" + month;\r\n } else {\r\n m = month;\r\n }\r\n if (day < 10) {\r\n d = \"0\" + day;\r\n } else {\r\n d = day;\r\n }\r\n let today = year + \"-\" + m + \"-\" + d;\r\n this.currentDate = today;\r\n this.calenderCurrentDate = today.split(\"-\").reverse().join(\"-\");\r\n }\r\n // selectDate(e: any) {\r\n // this.calenderEvent = e;\r\n // let today = e.target.value;\r\n // // console.log(\"e.target.value\", e.target.value);\r\n // today = today.split(\"-\").reverse().join(\"-\");\r\n // this.calenderCurrentDate = today;\r\n // this.mydata = null;\r\n // this.refreshChart();\r\n // // this.userSelectedDate.emit(this.calenderCurrentDate);\r\n // ;\r\n // console.log(\" IN --> 5\");\r\n // }\r\n refreshChart() {\r\n this.stopTimer();\r\n this.refreshTimer = 0;\r\n if(this.calenderCurrentDate === this.todayDate){\r\n this.countDown();\r\n }\r\n this.userSelectedDate.emit(this.calenderCurrentDate);\r\n }\r\n\r\n startTimer() {\r\n this.countDown();\r\n }\r\n stopTimer() {\r\n this.clearTimer();\r\n this.message = ``;\r\n }\r\n clearTimer() {\r\n this.refreshTimer = 0;\r\n window.clearInterval(this.intervalId);\r\n }\r\n countDown() {\r\n console.log(\"countDown\")\r\n this.clearTimer();\r\n this.intervalId = window.setInterval(() => {\r\n this.refreshTimer -= 1;\r\n if (this.refreshTimer === 0) {\r\n this.refreshChart();\r\n this.message = '';\r\n } else {\r\n if (this.refreshTimer < 0) {\r\n this.refreshTimer = 300;\r\n } // reset\r\n this.message = `${this.refreshTimer}`;\r\n }\r\n }, 1000);\r\n }\r\n timeConvert(n: any) {\r\n var num = n;\r\n var hours = num / 60;\r\n var rhours = Math.floor(hours);\r\n var minutes = (hours - rhours) * 60;\r\n var rminutes = Math.round(minutes);\r\n return rhours + ':' + rminutes;\r\n }\r\n // currentdataList: any;\r\n // currentResoursedataList:any;\r\n loadData(response: any){\r\n if(response){\r\n this.mydata = JSON.parse(response);\r\n if (this.mydata) {\r\n //get current data list\r\n let genarateUserReqiuredData = this.excelService.genarateUserReqiuredData_Excel(this.mydata);\r\n let currentdataList =genarateUserReqiuredData.userConsoleData;\r\n // resoureMetadata list\r\n let currentResoursedataList = this.excelService.genarateResourseReqiuredData_Excel(this.mydata);\r\n \r\n let deatilData = this.excelService.deatilData_Excel(currentdataList,currentResoursedataList);\r\n let userDetails_data = this.excelService.deatilUsage_Excel(deatilData);\r\n let UserSummary = this.excelService.userSummary_Excel(this.mydata,deatilData);\r\n \r\n let schoolDetails = this.mydata.schoolMetadata.school;\r\n let userDetails = userDetails_data;\r\n let terminalDetails = this.mydata.schoolTerminals.schoolTerminal;\r\n // console.log(\"schoolDetails\",schoolDetails);\r\n // console.log(\"UserSummary\",UserSummary);\r\n // console.log(\"terminalDetails\",terminalDetails);\r\n // console.log(\"userDetails\",userDetails);\r\n \r\n this.dataList = [\r\n [schoolDetails],\r\n UserSummary,\r\n terminalDetails,\r\n userDetails\r\n ]\r\n }\r\n }\r\n \r\n }\r\n exportReport(){\r\n if(this.mydata){\r\n this.excelService.exportAsExcelFile(this.dataList, 'UsageReport-'+ this.calenderCurrentDate);\r\n }\r\n \r\n }\r\n ngOnDestroy() {\r\n this.clearTimer();\r\n }\r\n \r\n}\r\n","import { Component, OnInit ,Input} from '@angular/core';\r\nimport { PrincipalDashboardLibV2Service } from '../principal-dashboard-lib-v2.service';\r\nimport { ChartType } from 'angular-google-charts';\r\n\r\n@Component({\r\n selector: 'lib-tableview',\r\n templateUrl: './tableview.component.html',\r\n styleUrls: ['./tableview.component.scss'],\r\n})\r\n\r\nexport class TableviewComponent implements OnInit {\r\n @Input() set data(res: any) {\r\n if(res!== null){\r\n this.loadTable(res);\r\n }\r\n }\r\n constructor(\r\n private pdService: PrincipalDashboardLibV2Service\r\n ) {}\r\n resourseMetadata: any;\r\n tableRow: any;\r\n userMetadata: any;\r\n tableViewDiv: any;\r\n tblBody: any;\r\n myXmlData: any;\r\n myChartType = ChartType.Table;\r\n currentdataList:any;\r\n currentResoursedataList:any;\r\n tableViewData:any;\r\n alluserList:any;\r\n isUserWise = true;\r\n \r\n ngOnInit(): void {\r\n \r\n }\r\n loadTable(response: any){\r\n // let parse = new DOMParser();\r\n // this.myXmlData = parse.parseFromString(response, 'application/xml');\r\n if(response){\r\n this.myXmlData = JSON.parse(response);\r\n if(this.myXmlData){\r\n // get current data list\r\n let genarateUserReqiuredData = this.pdService.genarateUserReqiuredData(this.myXmlData);\r\n this.currentdataList =genarateUserReqiuredData.userConsoleData;\r\n // get all user list \r\n let fetchAlluserList = this.pdService.allUserChartData()\r\n this.alluserList = fetchAlluserList.fordurationTable;\r\n // resoureMetadata list\r\n this.currentResoursedataList = this.pdService.genarateResourseReqiuredData(this.myXmlData);\r\n \r\n }\r\n }\r\n \r\n \r\n this.tableViewDiv = document.getElementById('tableViewDiv');\r\n this.tableRow = document.getElementById('tableRow');\r\n this.tblBody = document.getElementById('tblBody');\r\n this.tableViewDiv.style.display = 'none';\r\n \r\n this.pdService.chartType.subscribe((data) => {\r\n if (data) {\r\n this.updateChartType(data);\r\n }\r\n });\r\n this.pdService.isUserWise_data.subscribe((data) => {\r\n this.updateDataType(data);\r\n });\r\n this.pdService.isAllUsers.subscribe((data) => {\r\n if(data){\r\n this.showAllUser();\r\n }else{\r\n this.showCurrentDataUser();\r\n }\r\n \r\n });\r\n }\r\n showCurrentDataUser() {\r\n this.tableViewData = this.pdService.dataForTableView(this.currentdataList,this.currentResoursedataList);\r\n if(this.tableViewData){\r\n this.ueserWiseTableView(this.tableViewData);\r\n }\r\n }\r\n showAllUser() {\r\n this.tableViewData = this.pdService.dataForTableView(this.alluserList ,this.currentResoursedataList);\r\n if(this.tableViewData){\r\n this.ueserWiseTableView(this.tableViewData);\r\n }\r\n }\r\n updateDataType(dataType: any) {\r\n this.isUserWise = dataType;\r\n }\r\n updateChartType(dataType: any) {\r\n this.myChartType = dataType;\r\n if (this.myChartType == ChartType.Timeline) {\r\n this.tableViewDiv.style.display = 'none';\r\n } else {\r\n this.tableViewDiv.style.display = 'block';\r\n }\r\n }\r\n \r\n ueserWiseTableView(resoureMetadata: any) {\r\n // this.deleterow(\"tableRow\");\r\n document.getElementById(\"tblBody\").innerHTML = \"\";\r\n let labelArray = new Array();\r\n let cnt = 0;\r\n for (let i = 0; i < resoureMetadata.length; i++) {\r\n for (let j = 0; j < 12; j++) {\r\n let label = document.createElement('label');\r\n label.appendChild(document.createTextNode(resoureMetadata[i][j]));\r\n if (label.textContent === 'undefined' || label.textContent===undefined) {\r\n label.textContent = '';\r\n }\r\n labelArray.push(label);\r\n // console.log(\"label\",label);\r\n }\r\n }\r\n for (let j = 0; j <= resoureMetadata.length; j++) {\r\n let row = document.createElement('tr');\r\n \r\n let cell: any;\r\n for (let i = 0; i < 12; i++) {\r\n cell = document.createElement('td');\r\n \r\n if (cnt < labelArray.length) {\r\n cell.appendChild(labelArray[cnt]);\r\n row.appendChild(cell);\r\n }\r\n cnt++;\r\n }\r\n this.tblBody.appendChild(row);\r\n // this.tableRow.appendChild(this.tblBody);\r\n }\r\n \r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PrincipalDashboardLibV2Component } from './principal-dashboard-lib-v2.component';\r\n\r\nimport { ChartheaderComponent } from './chartheader/chartheader.component';\r\nimport { ChartviewComponent } from './chartview/chartview.component';\r\nimport { DetailedviewComponent } from './detailedview/detailedview.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { TableviewComponent } from './tableview/tableview.component';\r\nimport { GoogleChartsModule } from 'angular-google-charts';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DatepickerModule } from 'ng2-datepicker';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ChartheaderComponent,\r\n ChartviewComponent,\r\n DetailedviewComponent,\r\n HeaderComponent,\r\n TableviewComponent,\r\n PrincipalDashboardLibV2Component\r\n ],\r\n imports: [\r\n CommonModule,\r\n GoogleChartsModule,\r\n DatepickerModule\r\n ],\r\n exports: [\r\n PrincipalDashboardLibV2Component\r\n ]\r\n})\r\nexport class PrincipalDashboardLibV2Module { }\r\n","/*\r\n * Public API Surface of principal-dashboard-lib-v2\r\n */\r\n\r\nexport * from './lib/principal-dashboard-lib-v2.service';\r\nexport * from './lib/principal-dashboard-lib-v2.component';\r\nexport * from './lib/principal-dashboard-lib-v2.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ChartheaderComponent as ɵa} from './lib/chartheader/chartheader.component';\nexport {ChartviewComponent as ɵb} from './lib/chartview/chartview.component';\nexport {DetailedviewComponent as ɵc} from './lib/detailedview/detailedview.component';\nexport {ExceldataService as ɵe} from './lib/exceldata.service';\nexport {HeaderComponent as ɵd} from './lib/header/header.component';\nexport {TableviewComponent as ɵf} from './lib/tableview/tableview.component';"],"names":["XLSX.utils","XLSX.write","FileSaver.saveAs"],"mappings":"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"}
|