Commit 99e8a16e71b7aef83552170eecf62cc72a3e501e

Authored by Birendra
2 parents c36d7e0f 1244cf12

Merge branch 'AOD_Change' into AIA_Develop

Showing 46 changed files with 953 additions and 420 deletions
400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/UserController.cs
... ... @@ -120,9 +120,10 @@ namespace AIAHTML5.ADMIN.API.Controllers
120 120 int userId = jsonData["userId"].Value<Int32>();
121 121 string tagName = jsonData["tagName"].Value<string>();
122 122 long SessionId = jsonData["SessionId"].Value<long>();
  123 + bool isSiteUser = jsonData["isSiteUser"].Value<bool>();
123 124 try
124 125 {
125   - Status = UserModel.ManageUserLoginStatus(dbContext, userId, tagName, SessionId);
  126 + Status = UserModel.ManageUserLoginStatus(dbContext, userId, tagName, SessionId, isSiteUser);
126 127  
127 128 return Request.CreateResponse(HttpStatusCode.OK, Status.ToString());
128 129 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.Context.cs
... ... @@ -1262,13 +1262,17 @@ namespace AIAHTML5.ADMIN.API.Entity
1262 1262 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<GetLicenseByIPAndAccount_Result>("GetLicenseByIPAndAccount", sSiteIPParameter, sAccountNumberParameter, iEditionIdParameter);
1263 1263 }
1264 1264  
1265   - public virtual ObjectResult<GetLicenseBySiteId_Result> GetLicenseBySiteId(Nullable<int> sSiteId)
  1265 + public virtual ObjectResult<GetLicenseBySiteId_Result> GetLicenseBySiteId(Nullable<int> sSiteId, Nullable<int> sEditionId)
1266 1266 {
1267 1267 var sSiteIdParameter = sSiteId.HasValue ?
1268 1268 new ObjectParameter("sSiteId", sSiteId) :
1269 1269 new ObjectParameter("sSiteId", typeof(int));
1270 1270  
1271   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<GetLicenseBySiteId_Result>("GetLicenseBySiteId", sSiteIdParameter);
  1271 + var sEditionIdParameter = sEditionId.HasValue ?
  1272 + new ObjectParameter("sEditionId", sEditionId) :
  1273 + new ObjectParameter("sEditionId", typeof(int));
  1274 +
  1275 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<GetLicenseBySiteId_Result>("GetLicenseBySiteId", sSiteIdParameter, sEditionIdParameter);
1272 1276 }
1273 1277  
1274 1278 public virtual ObjectResult<GetLicenseDetailByUserId_Result> GetLicenseDetailByUserId(Nullable<int> iUserId)
... ... @@ -4999,7 +5003,7 @@ namespace AIAHTML5.ADMIN.API.Entity
4999 5003 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("usp_InsertAIAUser", sLoginIdParameter, sPasswordParameter, sFirstnameParameter, sLastnameParameter, iUserTypeIdParameter, sEmailIdParameter, iSecurityQuesIdParameter, sSecurityAnswerParameter, iCreatorIdParameter, iLicenseIdParameter, iEditionIdParameter, status);
5000 5004 }
5001 5005  
5002   - public virtual ObjectResult<Nullable<bool>> usp_ManageUserLoginStatus(Nullable<int> userId, string tag, Nullable<long> sessionId)
  5006 + public virtual ObjectResult<Nullable<bool>> usp_ManageUserLoginStatus(Nullable<int> userId, string tag, Nullable<long> sessionId, Nullable<bool> isSiteUser)
5003 5007 {
5004 5008 var userIdParameter = userId.HasValue ?
5005 5009 new ObjectParameter("userId", userId) :
... ... @@ -5013,7 +5017,11 @@ namespace AIAHTML5.ADMIN.API.Entity
5013 5017 new ObjectParameter("sessionId", sessionId) :
5014 5018 new ObjectParameter("sessionId", typeof(long));
5015 5019  
5016   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<bool>>("usp_ManageUserLoginStatus", userIdParameter, tagParameter, sessionIdParameter);
  5020 + var isSiteUserParameter = isSiteUser.HasValue ?
  5021 + new ObjectParameter("isSiteUser", isSiteUser) :
  5022 + new ObjectParameter("isSiteUser", typeof(bool));
  5023 +
  5024 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<bool>>("usp_ManageUserLoginStatus", userIdParameter, tagParameter, sessionIdParameter, isSiteUserParameter);
5017 5025 }
5018 5026 }
5019 5027 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.edmx
... ... @@ -430,6 +430,7 @@
430 430 </Function>
431 431 <Function Name="GetLicenseBySiteId" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
432 432 <Parameter Name="sSiteId" Type="int" Mode="In" />
  433 + <Parameter Name="sEditionId" Type="int" Mode="In" />
433 434 </Function>
434 435 <Function Name="GetLicenseDetailByUserId" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
435 436 <Parameter Name="iUserId" Type="int" Mode="In" />
... ... @@ -1411,6 +1412,7 @@
1411 1412 <Parameter Name="userId" Type="int" Mode="In" />
1412 1413 <Parameter Name="tag" Type="varchar" Mode="In" />
1413 1414 <Parameter Name="sessionId" Type="bigint" Mode="In" />
  1415 + <Parameter Name="isSiteUser" Type="bit" Mode="In" />
1414 1416 </Function>
1415 1417 <Function Name="usp_SaveLabExerciseAttempts" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
1416 1418 <Parameter Name="UserId" Type="int" Mode="In" />
... ... @@ -1911,6 +1913,7 @@
1911 1913 </FunctionImport>
1912 1914 <FunctionImport Name="GetLicenseBySiteId" ReturnType="Collection(AIADatabaseV5Model.GetLicenseBySiteId_Result)">
1913 1915 <Parameter Name="sSiteId" Mode="In" Type="Int32" />
  1916 + <Parameter Name="sEditionId" Mode="In" Type="Int32" />
1914 1917 </FunctionImport>
1915 1918 <FunctionImport Name="GetLicenseDetailByUserId" ReturnType="Collection(AIADatabaseV5Model.GetLicenseDetailByUserId_Result)">
1916 1919 <Parameter Name="iUserId" Mode="In" Type="Int32" />
... ... @@ -3009,6 +3012,7 @@
3009 3012 <Parameter Name="userId" Mode="In" Type="Int32" />
3010 3013 <Parameter Name="tag" Mode="In" Type="String" />
3011 3014 <Parameter Name="sessionId" Mode="In" Type="Int64" />
  3015 + <Parameter Name="isSiteUser" Mode="In" Type="Boolean" />
3012 3016 </FunctionImport>
3013 3017 </EntityContainer>
3014 3018 <ComplexType Name="DA_GetBaseLayer_Result">
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Models/UserModel.cs
... ... @@ -65,12 +65,12 @@ namespace AIAHTML5.ADMIN.API.Models
65 65 return false;
66 66 }
67 67 }
68   - public static bool ManageUserLoginStatus(AIADatabaseV5Entities dbContext, int userId, string tagName, long SessionId)
  68 + public static bool ManageUserLoginStatus(AIADatabaseV5Entities dbContext, int userId, string tagName, long SessionId, bool isSiteUser)
69 69 {
70 70 bool loginStatus = false;
71 71 try
72 72 {
73   - loginStatus = Convert.ToBoolean(dbContext.usp_ManageUserLoginStatus(userId, tagName, SessionId).FirstOrDefault());
  73 + loginStatus = Convert.ToBoolean(dbContext.usp_ManageUserLoginStatus(userId, tagName, SessionId, isSiteUser).FirstOrDefault());
74 74  
75 75 return loginStatus;
76 76 }
... ...
400-SOURCECODE/AIAHTML5.API/AIAHTML5.API.csproj.user
... ... @@ -8,6 +8,7 @@
8 8 <WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
9 9 <ProjectView>ProjectFiles</ProjectView>
10 10 <NameOfLastUsedPublishProfile>API_Profile</NameOfLastUsedPublishProfile>
  11 + <UseIISExpress>false</UseIISExpress>
11 12 </PropertyGroup>
12 13 <ProjectExtensions>
13 14 <VisualStudio>
... ...
400-SOURCECODE/AIAHTML5.API/Constants/DBConstants.cs
... ... @@ -42,6 +42,7 @@ namespace AIAHTML5.API.Constants
42 42 public const string INSERT_EXPORTED_IMAGE = "usp_InsertExportedImage";
43 43 public const string GET_USER_DETAIL_BYLOGIN_AND_ACCOUNT = "usp_GetUserDetailsByLoginIdandAccount";
44 44 public const string GET_USER_LOGIN_STATUS = "usp_ManageUserLoginStatus";
  45 + public const string GET_AOD_AUTHENTICATION_STATUS = "usp_AodAuthenticationStatus";
45 46 public const string INSERT_SITE_LOGIN_LOG = "usp_InsertSiteLoginLog";
46 47 }
47 48 }
48 49 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Controllers/AuthenticateController.cs
... ... @@ -534,8 +534,9 @@ namespace AIAHTML5.API.Controllers
534 534 int userId = jsonData["userId"].Value<int>();
535 535 string tagName = jsonData["tagName"].Value<string>();
536 536 long SessionId = jsonData["SessionId"].Value<long>();
  537 + bool isSiteUser = jsonData["isSiteUser"].Value<bool>();
537 538  
538   - loginStatus = AIAHTML5.API.Models.Users.GetUserLoginStatus(userId, tagName, SessionId);
  539 + loginStatus = AIAHTML5.API.Models.Users.GetUserLoginStatus(userId, tagName, SessionId, isSiteUser);
539 540  
540 541 return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(loginStatus) };
541 542 }
... ... @@ -545,6 +546,51 @@ namespace AIAHTML5.API.Controllers
545 546 }
546 547 }
547 548  
  549 + [HttpPost]
  550 + [Route("api/AodAuthentication")]
  551 + public HttpResponseMessage AodAuthentication([FromBody]JObject jsonData)
  552 + {
  553 + ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
  554 + int requestStatus = 0;
  555 + try
  556 + {
  557 + string aodpasskey = jsonData["aiapasskey"].Value<string>();
  558 + long SessionId = jsonData["SessionId"].Value<long>();
  559 + string CourseId = jsonData["CourseId"].Value<string>();
  560 +
  561 + logger.Debug("AOD request parameter: Session =" + SessionId +", aodkeypass="+ aodpasskey + ", CourseId=" + CourseId);
  562 +
  563 + string aiaConfigKey= ConfigurationManager.AppSettings["aiapasskey"];
  564 +
  565 + requestStatus = AIAHTML5.API.Models.Users.ValidateAodAthenticationStatus(SessionId, aiaConfigKey, aodpasskey, CourseId);
  566 +
  567 + switch(requestStatus)
  568 + {
  569 + case 200:
  570 + {
  571 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent("authentication successful") };
  572 + }
  573 + case 401:
  574 + {
  575 + return new HttpResponseMessage { StatusCode = HttpStatusCode.Unauthorized, Content = new StringContent("passing key to api is not valid") };
  576 + }
  577 + case 404:
  578 + {
  579 + return new HttpResponseMessage { StatusCode = HttpStatusCode.NotFound, Content = new StringContent("session has expired or does not exist") };
  580 + }
  581 + default:
  582 + {
  583 + return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent("server encountered an unexpected error.") };
  584 + }
  585 + }
  586 +
  587 + }
  588 + catch (Exception ex)
  589 + {
  590 + return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
  591 + }
  592 + }
  593 +
548 594 // PUT api/authenticate/5
549 595 public void Put(int id, [FromBody]string value)
550 596 {
... ... @@ -556,5 +602,4 @@ namespace AIAHTML5.API.Controllers
556 602 }
557 603 }
558 604  
559   -
560 605 }
561 606 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Controllers/ConfigurationController.cs
... ... @@ -6,6 +6,9 @@ using System.Net.Http;
6 6 using System.Web.Http;
7 7 using System.Configuration;
8 8 using Newtonsoft.Json;
  9 +using System.Text;
  10 +using System.Security.Cryptography;
  11 +using System.IO;
9 12  
10 13 namespace AIAHTML5.API.Controllers
11 14 {
... ... @@ -24,6 +27,9 @@ namespace AIAHTML5.API.Controllers
24 27 mconfig.serverPath = ConfigurationManager.AppSettings["ANIMATION_HOSTING_SERVER"];
25 28 mconfig.fileSize = Int32.Parse(ConfigurationManager.AppSettings["UploadMaxFileSize"]);
26 29  
  30 + mconfig.aodSiteUrl = ConfigurationManager.AppSettings["Aod_site_Url"];
  31 + mconfig.aodkeypass = ConfigurationManager.AppSettings["aiapasskey"];
  32 +
27 33 responseData = JsonConvert.SerializeObject(mconfig);
28 34  
29 35 return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(responseData) };
... ... @@ -38,4 +44,7 @@ public class MyConfig
38 44 public int pingInterval { get; set; }
39 45 public string serverPath { get; set; }
40 46 public int fileSize { get; set; }
41   -}
42 47 \ No newline at end of file
  48 +
  49 + public string aodSiteUrl { get; set; }
  50 + public string aodkeypass { get; set; }
  51 +}
... ...
400-SOURCECODE/AIAHTML5.API/Models/DBModel.cs
... ... @@ -350,7 +350,7 @@ namespace AIAHTML5.API.Models
350 350 return objUser;
351 351 }
352 352  
353   - internal static string GetUserLoginStatus(int userId,string tagName, long SessionId)
  353 + internal static string GetUserLoginStatus(int userId,string tagName, long SessionId, bool isSiteUser)
354 354 {
355 355 string status=string.Empty;
356 356 DBModel objModel = new DBModel();
... ... @@ -366,6 +366,7 @@ namespace AIAHTML5.API.Models
366 366 cmd.Parameters.AddWithValue("@userId", userId);
367 367 cmd.Parameters.AddWithValue("@tag", tagName);
368 368 cmd.Parameters.AddWithValue("@sessionId", SessionId);
  369 + cmd.Parameters.AddWithValue("@isSiteUser", isSiteUser);
369 370 adapter = new SqlDataAdapter(cmd);
370 371 adapter.Fill(ds);
371 372  
... ... @@ -386,6 +387,44 @@ namespace AIAHTML5.API.Models
386 387 return status;
387 388 }
388 389  
  390 + internal static int ValidateAodAthenticationStatus(long SessionId, string aiaConfigKey, string aodpasskey, string CourseId)
  391 + {
  392 + int status = 0;
  393 + DBModel objModel = new DBModel();
  394 +
  395 + SqlConnection conn = new SqlConnection(dbConnectionString);
  396 + SqlCommand cmd = new SqlCommand();
  397 + SqlDataAdapter adapter;
  398 + DataSet ds = new DataSet();
  399 +
  400 + cmd.Connection = conn;
  401 + cmd.CommandText = DBConstants.GET_AOD_AUTHENTICATION_STATUS;
  402 + cmd.CommandType = CommandType.StoredProcedure;
  403 + cmd.Parameters.AddWithValue("@sessionId", SessionId);
  404 + cmd.Parameters.AddWithValue("@aiaConfigKey", aiaConfigKey);
  405 + cmd.Parameters.AddWithValue("@aodpasskey", aodpasskey);
  406 + cmd.Parameters.AddWithValue("@CourseId", CourseId);
  407 +
  408 + adapter = new SqlDataAdapter(cmd);
  409 + adapter.Fill(ds);
  410 +
  411 + if (ds != null && ds.Tables.Count > 0)
  412 + {
  413 + DataTable dt = ds.Tables[0];
  414 +
  415 + if (dt.Rows.Count > 0)
  416 + {
  417 + foreach (DataRow dr in dt.Rows)
  418 + {
  419 + status =Convert.ToInt32( dr["requestStatus"]);
  420 +
  421 + }
  422 + }
  423 + }
  424 +
  425 + return status;
  426 + }
  427 +
389 428 internal User GetSelectedSettings(int userId,bool isSiteUser)
390 429 {
391 430 logger.Debug(" Inside GetSelectedSettings for userId = " + userId);
... ...
400-SOURCECODE/AIAHTML5.API/Models/Users.cs
... ... @@ -340,10 +340,17 @@ namespace AIAHTML5.API.Models
340 340 return objUser;
341 341 }
342 342  
343   - internal static string GetUserLoginStatus(int userId, string tagName, long SessionId)
  343 + internal static string GetUserLoginStatus(int userId, string tagName, long SessionId, bool isSiteUser)
344 344 {
345 345 string status = null;
346   - status = DBModel.GetUserLoginStatus(userId, tagName, SessionId);
  346 + status = DBModel.GetUserLoginStatus(userId, tagName, SessionId, isSiteUser);
  347 +
  348 + return status;
  349 + }
  350 + internal static int ValidateAodAthenticationStatus(long SessionId, string aiaConfigKey, string aodpasskey, string CourseId)
  351 + {
  352 + int status = 0;
  353 + status = DBModel.ValidateAodAthenticationStatus(SessionId, aiaConfigKey, aodpasskey, CourseId);
347 354  
348 355 return status;
349 356 }
... ...
400-SOURCECODE/AIAHTML5.API/Web.config
... ... @@ -58,7 +58,10 @@
58 58 <add key ="UnblockUserEmailTemplate" value="~/Templates/unblock-User.html"/>
59 59 <add key ="ForgotPasswordEmailTemplate" value="~/Templates/forgot-Password.html"/>
60 60 <add key ="ForgotUserIdEmailTemplate" value="~/Templates/forgot-UserId.html"/>
61   -
  61 +
  62 + <!-- Aod used: Added by Birendra-->
  63 + <add key="Aod_site_Url" value="https://uat.adamondemand.com/"/>
  64 + <add key="aiapasskey" value="as@2$eDu8Jk"/>
62 65  
63 66 <!--<add key ="AIADatabaseV5Context" value="Data Source=192.168.90.53;Initial Catalog=AIADatabaseV5;User ID=AIA_Dev;Password=india123;"/>-->
64 67 <add key ="AIADatabaseV5Context" value="Data Source=LAPTOP-BIRU-PC\SQLEXPRESS;Initial Catalog=AIADatabaseV5;User ID=AIA_Dev;Password=india123;"/>
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/AODController.js
1   -๏ปฟAIA.controller("AODController", ["$scope", "$rootScope", "pages", "$log","$location",
2   -function ($scope, $rootScope, pages, log, $location) {
3   - //$scope.showTabButton = true;
4   - //$scope.IsVisible = function () {
5   - // $scope.scroll();
  1 +๏ปฟ'use strict';
6 2  
7   - //}
  3 +AIA.controller("AODController", ["$scope", "$window", "$rootScope", "$compile", "$http", "$log", "$location", "$timeout","DataService", "ModuleService", "$interval", "AIAConstants",
  4 +function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout,DataService, ModuleService, $interval, AIAConstants) {
  5 + $scope.ObjectAttribute=function(windowviewid)
  6 + {
  7 + var windata={
  8 + 'multiwinid': windowviewid,
  9 + 'AODAnimationData': [],
  10 + 'moduleName': '',
  11 + 'aodUrl':'',
  12 + 'courseId':'',
  13 + 'uid':'2',//categoty id. courseid cheched in category id
  14 + 'requestType':'SCORMPackage',
  15 + 'currentViewTitle': '',
  16 + 'parentSlugName': '',
  17 + 'currentSlug': '',
  18 + 'imageId': ''
  19 + };
  20 + return windata;
  21 + }
8 22  
9   - $scope.setActiveTab = function (tabToSet) {
10   - $scope.activeTab = tabToSet;
11   - localStorage.setItem("currentAODTabView", $scope.activeTab);
12   - };
  23 + $scope.initializeAODWindowData = function (windowviewid, isOpenWithExistsModule, openPanelNo) {
  24 + if (isOpenWithExistsModule || openPanelNo == 0) {
  25 + if ($rootScope.AODWindowData != undefined) {
  26 + $rootScope.AODWindowData.length = 0;
  27 + }
  28 + else {
  29 + $rootScope.AODWindowData = [];
  30 + }
  31 +
  32 + $rootScope.AODWindowData.push($scope.ObjectAttribute(windowviewid));
  33 +
  34 + }
  35 + else {
  36 + var isNewWindow = true;
  37 + for (var k = 0; k < $rootScope.AODWindowData.length; k++) {
  38 + if ($rootScope.AODWindowData[k].multiwinid == windowviewid) {
  39 + isNewWindow = false;
  40 + break;
  41 + }
  42 + }
  43 +
  44 + if (isNewWindow) {
  45 + $rootScope.AODWindowData.push($scope.ObjectAttribute(windowviewid));
  46 + }
  47 + }
  48 + }
  49 +
  50 + $scope.GetAODwindowStoreData = function (windowviewid, keyname) {
  51 + for (var x = 0 ; x < $rootScope.AODWindowData.length; x++) {
  52 +
  53 + if ($rootScope.AODWindowData[x].multiwinid == windowviewid) {
  54 + return $rootScope.AODWindowData[x][keyname];
  55 + }
  56 + }
  57 + }
  58 +
  59 + $scope.SetAODwindowStoreData = function (windowviewid, keyname, value) {
  60 + for (var x = 0 ; x < $rootScope.AODWindowData.length; x++) {
  61 +
  62 + if ($rootScope.AODWindowData[x].multiwinid == windowviewid) {
  63 + $rootScope.AODWindowData[x][keyname] = value;
  64 + }
  65 + }
  66 + }
  67 +
  68 + $scope.DisableUI = function () {
  69 +
  70 + var aniImagePanelConetent = document.getElementsByClassName("jsPanel-content");
  71 + for (var i = 0; i < aniImagePanelConetent.length; i++) {
  72 + aniImagePanelConetent[i].style.pointerEvents = "none";
  73 + aniImagePanelConetent[i].style.opacity = "0.7";
  74 +
  75 + }
  76 + $rootScope.isLoading = true;
  77 + $('#spinner').css('visibility', 'visible');
  78 +
  79 + // CB module disable all
  80 + $('#HomeContainerDiv').css('pointer-events', 'none');
  81 + $('#HomeContainerDiv').css('opacity', '0.7');
  82 + }
13 83  
14   - $scope.scroll = function () {
15   - // $window.scrollTo(0, 0);
16   - $("html,body").scrollTop(0);
17   - //alert("scroll");
  84 + $scope.EnableUI = function () {
  85 +
  86 + var aniImagePanelConetent = document.getElementsByClassName("jsPanel-content");
  87 + for (var i = 0; i < aniImagePanelConetent.length; i++) {
  88 + aniImagePanelConetent[i].style.pointerEvents = "auto";
  89 + aniImagePanelConetent[i].style.opacity = "1";
  90 + }
  91 +
  92 + $rootScope.isLoading = false;
  93 + $('#spinner').css('visibility', 'hidden');
  94 + // CB module enable all
  95 + $('#HomeContainerDiv').css('pointer-events', 'auto');
  96 + $('#HomeContainerDiv').css('opacity', '1');
  97 +
  98 + }
  99 +
  100 + $scope.RemoveJSPanel = function (panelid) {
  101 +
  102 + var len = (panelid).split("_").length;
  103 + var windowviewid = (panelid).split("_")[len - 1];
  104 +
  105 + // remove old stored data after close panel
  106 + for (var index = 0 ; index < $rootScope.AODWindowData.length; index++) {
  107 +
  108 + if ($rootScope.AODWindowData[index].multiwinid == windowviewid) {
  109 +
  110 + if (index != -1) {
  111 + // remove module which one is loaded
  112 + var reffid=$rootScope.AODWindowData[index].imageId;
  113 + $rootScope.AODWindowData.splice(index, 1);
  114 + //remove also stream/source video from close panel from cb
  115 + if($rootScope.collectAnimationSource !=undefined)
  116 + {
  117 + for (var vdx = 0 ; vdx < $rootScope.collectAnimationSource.length; vdx++) {
  118 + if(reffid==$rootScope.collectAnimationSource[vdx].imageId)
  119 + $rootScope.collectAnimationSource.splice(vdx, 1);
  120 + }
  121 + }
  122 + if ($('#' + panelid).html() != undefined) {
  123 +
  124 + $('#' + panelid).remove();
  125 +
  126 + }
  127 + // $rootScope.resetjsPanelTop(panelid);
  128 + }
  129 + }
  130 + }
18 131 }
19   - //$rootScope.currentActiveModuleTitle = pages[10].name;
  132 + $scope.PanelActivity = function () {
  133 + // close panel
  134 + $(document).on("click", "#" + $scope.jsPanelID + " .jsPanel-hdr .jsPanel-hdr-r .jsPanel-btn-close .jsglyph-remove", function (event) {
20 135  
21   - $scope.$on('$viewContentLoaded', function (event) {
  136 + var panelid = $(event.target).parent().parent().parent().parent().attr('id');
  137 +
  138 + $scope.RemoveJSPanel(panelid);
  139 +
  140 + });
  141 + }
  142 +
  143 +
  144 + $scope.loadAIModuleById = function (moduleId) {
  145 +
  146 + $rootScope.MULTI_VIEW_ID += 1
  147 +
  148 + if($rootScope.AODWindowData!=undefined)
  149 + {
  150 + if($rootScope.AODWindowData.length>0)
  151 + {
  152 + for(var x=0 ;x < $rootScope.AODWindowData.length;x++){
  153 + var winid=$rootScope.AODWindowData[x].multiwinid;
  154 + if ($('#aodImagePanel_' + winid).html() != undefined) {
  155 + $('#aodImagePanel_' + winid).remove();
  156 + }
  157 + }
  158 + $rootScope.AODWindowData=[];
  159 + }
  160 + }
  161 +
  162 + $scope.initializeAODWindowData($rootScope.MULTI_VIEW_ID, true, undefined);
  163 +
  164 + $scope.DisableUI();
22 165  
23 166 if ($rootScope.refreshcheck == null) {
24 167 $location.path('/');
25 168 }
26   -
27   - // code that will be executed ...
  169 + // code that will be executed ...
28 170 // every time this view is loaded
29 171  
30   - //get current path
31   - var currentURL = $location.path();
32   - var selectedModuleName = '';
33   - //set module title
34   - angular.forEach($rootScope.userModules, function (value, key) {
35   - if (value.slug === currentURL.replace('/', '')) {
36   - selectedModuleName = value.name;
  172 +
  173 + $rootScope.currentActiveModuleTitle = "ADAM ON DEMAND";
  174 +
  175 + $scope.SetAODwindowStoreData($rootScope.MULTI_VIEW_ID, 'moduleName', "ADAM ON DEMAND");
  176 +
  177 + $scope.LoadAODJsonData($rootScope.MULTI_VIEW_ID);
  178 +
  179 + setTimeout(function () {
  180 +
  181 + //call time interval function until load Illustration data
  182 + var timeintval = null;
  183 + timeintval = $interval(function () {
  184 + var AODAnimationData = $scope.GetAODwindowStoreData($rootScope.MULTI_VIEW_ID, 'AODAnimationData');
  185 + if (AODAnimationData.length>0) {
  186 + $scope.stopIntervalAOD();
  187 + $scope.loadAODList($rootScope.MULTI_VIEW_ID);
  188 + }
  189 + else
  190 + {
  191 + console.log("waiting for aod Data");
  192 + }
  193 + }, 100);
  194 +
  195 + $scope.stopIntervalAOD = function () {
  196 + if (angular.isDefined(timeintval)) {
  197 + $interval.cancel(timeintval);
  198 + timeintval = undefined;
  199 + }
  200 + };
  201 +
  202 + }, 200);
  203 + };
  204 +
  205 + $scope.LoadAODJsonData = function (windowviewid) {
  206 +
  207 + var promise = DataService.getJson('~/../content/data/json/aod/aod_courselist.json')
  208 + promise.then(
  209 + function (result) {
  210 +
  211 + var AODAnimationData = new jinqJs()
  212 + .from(result.root.AODData)
  213 + .orderBy([{ field: '_BodySystem', sort: 'asc' }])
  214 + .select();
  215 +
  216 + $scope.SetAODwindowStoreData(windowviewid, 'AODAnimationData', AODAnimationData);
  217 +
  218 + },
  219 + function (error) {
  220 + $scope.EnableUI();
  221 +
  222 + }
  223 + );
  224 +
  225 +
  226 + };
  227 +
  228 + $scope.loadAODList = function (windowviewid) {
  229 +
  230 + var selectedAODListViewData = $scope.GetAODwindowStoreData(windowviewid, 'AODAnimationData');
  231 +
  232 + $('#grid-view').empty();
  233 +
  234 + angular.forEach(selectedAODListViewData, function (value, key) {
  235 + var imagePath = "~/../content/images/aod/thumbnails/" + value._ThumbnailImage;
  236 +
  237 +
  238 + var $el = $('<div id="' + value._ImageId + '" class="col-sm-3 col-lg-2" title = "'+ value._Title + '" data-ng-click="openView($event)">'
  239 + + '<div class="thumbnail" ><a href="#">'
  240 + + '<img id="' + value._Title + '" class="img-responsive" style="width:100%;height:100%;" ng-src="' + imagePath + '" alt="" title="" >'
  241 + + '<div class="caption" style="padding:0px;height:80px"><p style="height:15px"><em>'+'ID: '+ value._ImageId + '</em></p><p style="font-weight:bold;white-space:pre-wrap">' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
  242 +
  243 + $compile($el)($scope);
  244 +
  245 + $(".sidebar").mCustomScrollbar({
  246 + autoHideScrollbar: true,
  247 + //theme:"rounded"
  248 + });
  249 +
  250 + });
  251 +
  252 + $('#' + $rootScope.getLocalStorageValue("currentBodyViewId")).find('.thumbnail').addClass('HightLightThumbnail');
  253 + $timeout(function () {
  254 + if ($rootScope.getLocalStorageValue('AODGridViewScroll') !== null && $location.url() == "/ADAM-on-demand") {
  255 +
  256 + $('html, body').animate({ scrollTop: $rootScope.getLocalStorageValue('AODGridViewScroll') }, 'slow');
37 257 }
38   - $rootScope.currentActiveModuleTitle = selectedModuleName;
39   - })
  258 + },
  259 + 200);
  260 +
  261 +
  262 + $timeout(function () {
  263 + $scope.EnableUI();
  264 + $scope.ResetGridListLength();
  265 + }, 400);
40 266  
41   - $scope.showTabButton = true;
42   - $scope.IsVisible = function () {
43   - $scope.scroll();
  267 + }
  268 + $scope.ResetGridListLength=function()
  269 + {
  270 + var $ua = navigator.userAgent;
  271 +
  272 + if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
44 273  
  274 + if(screen.height<=768)
  275 + {
  276 + $('#grid-view').css({"height":"660","overflow":"scroll"});
  277 + }
  278 + else if(screen.height<=1024)
  279 + {
  280 + $('#grid-view').css({"height":"910","overflow":"scroll"});
  281 + }
  282 + else
  283 + {
  284 + $('#grid-view').css({"height":"1250","overflow":"scroll"});
  285 + }
45 286 }
  287 + else
  288 + {
  289 + $('#grid-view').css({"height":"830","overflow":"scroll"});
  290 + }
  291 + }
46 292  
47   - // $rootScope.currentActiveModuleTitle = pages[10].name;
  293 + $scope.openView = function ($event) {
  294 + var windowviewid = $rootScope.MULTI_VIEW_ID;
48 295  
49   - //set the local storage
  296 + $rootScope.MenuModuleName = "AOD";
  297 + $rootScope.currentBodyViewId = $event.currentTarget.id;
  298 + if ($event.currentTarget.textContent !== null && typeof ($event.currentTarget.textContent) !== "undefined") {
  299 + var selectedAODListViewData = $scope.GetAODwindowStoreData(windowviewid, 'AODAnimationData');
  300 + var selectedTileData = [];
  301 + selectedTileData = new jinqJs()
  302 + .from(selectedAODListViewData)
  303 + .where('_ImageId = ' + $event.currentTarget.id)
  304 + .select();
50 305  
51   - var curtab = $rootScope.getLocalStorageValue("currentAODTabView");
52   - if (curtab == 2) {
53   - $scope.setActiveTab(2);
  306 + $rootScope.ViewTitle = selectedTileData[0]._Title;
54 307 }
55 308 else {
56   - $scope.setActiveTab(1);
  309 + $rootScope.ViewTitle = $event.currentTarget.textContent;
57 310 }
58 311  
59   - });
  312 + localStorage.setItem("currentViewTitle", $rootScope.ViewTitle);
  313 + localStorage.setItem("currentBodyViewId", $event.currentTarget.id);
  314 +
  315 + $scope.SetAODwindowStoreData(windowviewid, 'currentViewTitle', $rootScope.ViewTitle);
  316 + $scope.SetAODwindowStoreData(windowviewid, 'imageId', $event.currentTarget.id);
60 317  
61   -}]
  318 + var promise = DataService.getJson('~/../content/data/json/aod/aod_courselist_video.json')
  319 + promise.then(
  320 + function (result) {
  321 + // $scope.AnimationData = result;
  322 + $scope.AODlistViewData = result.root.AODData;
  323 + var id = $scope.GetAODwindowStoreData(windowviewid, 'imageId');
  324 + var clickedAODVideoData = [];
  325 + clickedAODVideoData = new jinqJs()
  326 + .from($scope.AODlistViewData)
  327 + .where('_CourseId == ' + id)
  328 + .select();
  329 +
  330 + $scope.SetAODwindowStoreData(windowviewid, 'aodUrl', clickedAODVideoData[0]._VideoUrl);
  331 + $scope.SetAODwindowStoreData(windowviewid, 'courseId', clickedAODVideoData[0]._CourseId);
  332 +
  333 + var AODGridViewScrollPosition = $($window).scrollTop();
  334 + localStorage.setItem('AODGridViewScroll', AODGridViewScrollPosition);
  335 + $location.url('/AOD-view-detail');
  336 +
  337 + },
  338 + function (error) {
  339 +
  340 + }
  341 +
  342 + );
  343 +
  344 +
  345 + }
  346 +
  347 +
  348 + $scope.openAODBodyViewMain = function () {
  349 + $scope.SetAODwindowStoreData($rootScope.MULTI_VIEW_ID, 'parentSlugName', 'ADAM-on-demand');
  350 + $scope.loadAdamVideo($rootScope.MULTI_VIEW_ID);
  351 +
  352 + }
  353 +
  354 + $scope.loadAdamVideo = function (windowviewid) {
  355 + $scope.DisableUI();
  356 + $scope.jsPanelID = 'aodImagePanel' + '_' + windowviewid;
  357 + var tittle = $scope.GetAODwindowStoreData(windowviewid, 'currentViewTitle');
  358 +
  359 + var aodlink = $rootScope.aodDomainName+ $scope.GetAODwindowStoreData(windowviewid, 'aodUrl');
  360 + var courseid = $scope.GetAODwindowStoreData(windowviewid, 'courseId');
  361 + var uid = $scope.GetAODwindowStoreData(windowviewid, 'uid');
  362 + var requestType = $scope.GetAODwindowStoreData(windowviewid, 'requestType');
  363 + var aodSiteUrl = aodlink+"?SessionId=" + $rootScope.userData.SessionId + "&Courseid=" + courseid + "&type="+requestType +"&uID=" + uid+ ",_self";
  364 +
  365 + $scope.jsPanelWidth = $(window).outerWidth() - 20;
  366 + $scope.jsPanelHeight = $(window).outerHeight() - 140;
  367 + $scope.jsPanelLeft = 1;
  368 + $scope.jsPanelTop = 70;
  369 +
  370 + if (aodlink.length > 0 ) {
  371 + $scope.jsPanelVideo = $.jsPanel({
  372 + id: $scope.jsPanelID,
  373 + selector: '.aodView',
  374 + theme: 'success',
  375 + currentController: 'AODController',
  376 + parentSlug: $scope.GetAODwindowStoreData(windowviewid, 'parentSlugName'),
  377 + content: '<div style="height: 100%;overflow: scroll;" >' +
  378 + '<iframe name="aodFrame" src="" style="width: 100%;height:100%" id="aodvideo_' + windowviewid + '" onload="MyAODvideoOnLoad(event)"></iframe>'+
  379 + '</div><script>$(document).ready(function(){var $ua = navigator.userAgent; if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {var threeDivWidth = $("#AODView").css("width");$("#AODView").css({"left":"0px","width":"100%","min-idth": threeDivWidth}); var jspanelContainerWidth = $(".jsPanel-content").css("width"); $(".jsPanel-content").css({ "width": "100%", "min-width": jspanelContainerWidth}); $("#aodImagePanel_' + windowviewid + '").css("width", "100%"); }});</script>',
  380 + title: tittle,
  381 + position: {
  382 + top: $scope.jsPanelTop,
  383 + left: $scope.jsPanelLeft
  384 + },
  385 +
  386 + size: {
  387 + width: $scope.jsPanelWidth,
  388 + height: $scope.jsPanelHeight
  389 + },
  390 + controls: { buttons: 'closeonly' },
  391 + resizable: {
  392 + start:function(event, ui)
  393 + {
  394 + var len = (event.currentTarget.id).split("_").length;
  395 + var windowviewid = (event.currentTarget.id).split("_")[len - 1];
  396 + $('#aodvideo_'+windowviewid).css("display",'block');
  397 +
  398 + }
  399 + },
  400 +
  401 + });
  402 +
  403 +
  404 + $scope.jsPanelVideo.maximize();
  405 + $scope.SetAODwindowStoreData(windowviewid, 'currentSlug', 'AOD-view-detail');
  406 + $('html, body').animate({ scrollTop: 0 });
  407 +
  408 + $('#aodvideo_' + windowviewid).attr('src', aodSiteUrl);
  409 + }
  410 + $('#AODView').css("height", $(window).outerHeight() - 20);
  411 +
  412 + $('#AODView').css("width", $(window).outerWidth() - 30);
  413 +
  414 + //Calling methode for save Js Panel Activity for SaveCB
  415 + $scope.PanelActivity();
  416 +
  417 + }
  418 +
  419 + $scope.MyAODvideoOnLoad = function (windowviewid)
  420 + {
  421 + $scope.EnableUI();
  422 + $scope.JsPanelMouseEnter(windowviewid);
  423 + }
  424 +
  425 + $scope.JsPanelMouseEnter = function (windowviewid) {
  426 + $rootScope.resetMenuOption();
  427 +
  428 + var timeintval = null;
  429 + timeintval = $interval(PointerEventEnableDisable, 5000);
  430 +
  431 + function PointerEventEnableDisable() {
  432 + var pointevents = $("#aodvideo_" + windowviewid).css('pointer-events');
  433 + if (pointevents=='auto') {
  434 + $scope.stop3drefresh(timeintval);
  435 + timeintval = $interval(PointerEventEnableDisable, 500);
  436 + $("#aodvideo_" + windowviewid).css('pointer-events', 'none');
  437 + }
  438 + else if(pointevents=='none')
  439 + {
  440 + $("#aodvideo_" + windowviewid).css('pointer-events', 'auto');
  441 + $scope.stop3drefresh(timeintval);
  442 + timeintval = $interval(PointerEventEnableDisable, 10000);
  443 + }
  444 + else
  445 + {
  446 + //auto clode interval when panel close
  447 + $scope.stop3drefresh(timeintval);
  448 + }
  449 + }
  450 +
  451 + $scope.stop3drefresh = function (timeintval) {
  452 + if (angular.isDefined(timeintval)) {
  453 + $interval.cancel(timeintval);
  454 + timeintval = undefined;
  455 + }
  456 + };
  457 + }
62 458  
  459 + }]);
63 460  
  461 + function MyAODvideoOnLoad(event) {
64 462  
65   -);
66 463 \ No newline at end of file
  464 + console.log('video loaded')
  465 + var scope = angular.element(document.getElementById("AODView")).scope();
  466 + var windowviewid = (event.target.id).split("_")[1];
  467 +
  468 + setTimeout(function()
  469 + {
  470 + scope.$apply(function () {
  471 + scope.MyAODvideoOnLoad(windowviewid);
  472 + });
  473 + }, 500);
  474 +
  475 + }
67 476 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
... ... @@ -367,7 +367,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
367 367 '#Link\\/symptom-navigator{pointer-events: none; opacity: .3} ' +
368 368 '#Link\\/health-navigator{pointer-events: none; opacity: .3} ' +
369 369 '#Link\\/wellness-tools{pointer-events: none; opacity: .3} ' +
370   - '#Link\\/aod{pointer-events: none; opacity: .3} ' +
  370 + '#ADAM-on-demand{pointer-events: none; opacity: .3} ' +
371 371  
372 372  
373 373 '</style>';
... ... @@ -714,6 +714,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
714 714 $rootScope.aiaPingInterval = configresult.pingInterval;
715 715 $rootScope.aiaAnimationPath = configresult.serverPath;
716 716 $rootScope.MaxOneFileSize = configresult.fileSize;
  717 + $rootScope.aodDomainName = configresult.aodSiteUrl;
  718 +
717 719 var loggedInUser = JSON.parse($scope.currentUserDetails);
718 720 //incase site user login userid is 0 so then using license id
719 721 //logout site user while reload url without parameter
... ... @@ -721,7 +723,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
721 723 $scope.checkuserstatus = {
722 724 userId: userId,
723 725 tagName: loggedInUser.Id==0?'logout':'update',
724   - SessionId:loggedInUser.SessionId
  726 + SessionId:loggedInUser.SessionId,
  727 + isSiteUser:loggedInUser.isSiteUser
725 728 }
726 729  
727 730 // this case found when browser closed by user after login. after long time (after 20 min) open site again
... ... @@ -945,6 +948,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
945 948 $rootScope.aiaPingInterval = configresult.pingInterval;
946 949 $rootScope.aiaAnimationPath = configresult.serverPath;
947 950 $rootScope.MaxOneFileSize = configresult.fileSize;
  951 + $rootScope.aodDomainName = configresult.aodSiteUrl;
948 952  
949 953 });
950 954 }
... ... @@ -1469,6 +1473,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1469 1473 $rootScope.aiaPingInterval = configresult.pingInterval;
1470 1474 $rootScope.aiaAnimationPath = configresult.serverPath;
1471 1475 $rootScope.MaxOneFileSize = configresult.fileSize;
  1476 + $rootScope.aodDomainName = configresult.aodSiteUrl;
1472 1477  
1473 1478 userInfo.username = result.LoginId;
1474 1479 userInfo.password = result.Password;
... ... @@ -1523,6 +1528,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1523 1528 $rootScope.aiaPingInterval = configresult.pingInterval;
1524 1529 $rootScope.aiaAnimationPath = configresult.serverPath;
1525 1530 $rootScope.MaxOneFileSize = configresult.fileSize;
  1531 + $rootScope.aodDomainName = configresult.aodSiteUrl;
1526 1532  
1527 1533 var loggedInUser = JSON.parse($scope.currentUserDetails);
1528 1534 //check already login by account number bcz no login id for site login
... ... @@ -1715,7 +1721,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1715 1721  
1716 1722 $rootScope.userData = result;
1717 1723 $rootScope.userModules = result.Modules;
1718   -
  1724 +
1719 1725 localStorage.setItem('loggedInUserDetails', JSON.stringify(result));
1720 1726  
1721 1727 if (isCommingSoonModel == true) {
... ... @@ -1764,9 +1770,9 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1764 1770 }
1765 1771  
1766 1772  
1767   - $rootScope.userData = result;
1768   - $rootScope.userModules = result.Modules;
1769   -
  1773 + $rootScope.userData = result;
  1774 + $rootScope.userModules = result.Modules;
  1775 +
1770 1776 //1. set haveRoleAdmin = false because LicenseInfo is not null
1771 1777 $rootScope.haveRoleAdmin = false;
1772 1778  
... ... @@ -1887,6 +1893,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1887 1893 $rootScope.isVisibleLogin = false;
1888 1894 $rootScope.userData = userInfo;
1889 1895 $rootScope.userModules = userInfo.Modules;
  1896 +
1890 1897 // ShowAssignedModulesPopup(userInfo.Modules);;
1891 1898 // for reseller type user first need to update profile
1892 1899 if (userInfo.UserTypeId == 7 && (userInfo.FirstName == "" || userInfo.EmailId == "" || userInfo.LastName == "")) {
... ... @@ -1948,7 +1955,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1948 1955 $rootScope.userStatus = {
1949 1956 userId: null,
1950 1957 tagName: null,
1951   - SessionId:null
  1958 + SessionId:null,
  1959 + isSiteUser:false
1952 1960 }
1953 1961 console.log('user session start');
1954 1962 $rootScope.CheckUserSession('insert');
... ... @@ -2024,6 +2032,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2024 2032 $rootScope.userStatus.userId=$rootScope.userData.Id==0?$rootScope.userData.LicenseId:$rootScope.userData.Id;
2025 2033 $rootScope.userStatus.tagName=tagName;
2026 2034 $rootScope.userStatus.SessionId=$rootScope.userData.SessionId;
  2035 + $rootScope.userStatus.isSiteUser=$rootScope.userData.isSiteUser;
2027 2036  
2028 2037 AuthenticationService.ManageUserLoginStatus($rootScope.userStatus)
2029 2038 .then(
... ... @@ -9090,7 +9099,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
9090 9099 $("#profileUpdateModal").modal('hide');
9091 9100 $timeout(function () {
9092 9101 $rootScope.isRedirectToAdmin=true;
9093   - window.location.href = "Admin";
  9102 + window.location.href = "/Admin";
9094 9103 }, 300)
9095 9104  
9096 9105 };
... ...
400-SOURCECODE/AIAHTML5.Web/app/main/AIA.js
... ... @@ -146,11 +146,11 @@ AIA.constant(&#39;pages&#39;, [
146 146 pageController: 'LinkController'
147 147  
148 148 },
149   - {
150   - name: 'A.D.A.M OnDemand',
151   - pageSlug: 'Link/aod',
152   - pageUrl: 'app/views/Link/Link-view.html',
153   - pageController: 'LinkController'
  149 + {
  150 + name: 'A.D.A.M OnDemand',
  151 + pageSlug: 'AOD-view-detail',
  152 + pageUrl: 'app/views/AOD/AOD-view-detail.html',
  153 + pageController: 'AODController'
154 154  
155 155 },
156 156 { //id:18,
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/AOD/AOD-view-detail.html 0 โ†’ 100644
  1 +๏ปฟ<div>
  2 + <div ng-include="aap/widget/MainMenu.html"></div>
  3 + <div ng-init="openAODBodyViewMain()" id="AODView" class="aodView" ng-controller="AODController"></div>
  4 +</div>
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/AOD/AOD-view.html
1 1 ๏ปฟ<div class="bodyWrap row ">
2 2 <div ng-include="'app/widget/MainMenu.html'" />
3   - <div class="main">
4   -
5   -
6   - <div class="row tab-content" style="padding-left:25px; width:99%">
7   - <div role="tabpanel" ng-class="{'tab-pane active' : activeTab === 1,'tab-pane' : activeTab !==1 }" id="grid-view">
8   - <div class="col-sm-3 col-lg-2">
9   - <div class="thumbnail">
10   - <a href="clinical-animations-details.html">
11   - <img src="~/../content/images/aod-1.jpg" alt="" title="">
12   - <div class="caption">
13   - <p>Cardiovascular System - Anatomy</p>
14   - </div>
15   - </a>
16   - </div>
17   - </div>
18   - <div class="col-sm-3 col-lg-2">
19   - <div class="thumbnail">
20   - <a href="clinical-animations-details.html">
21   - <img src="~/../content/images/aod-2.jpg" alt="" title="">
22   - <div class="caption">
23   - <p>Cardiovascular System - Physiology</p>
24   - </div>
25   - </a>
26   - </div>
27   - </div>
28   - <div class="col-sm-3 col-lg-2">
29   - <div class="thumbnail">
30   - <a href="clinical-animations-details.html">
31   - <img src="~/../content/images/aod-3.jpg" alt="" title="">
32   - <div class="caption">
33   - <p>Digestive System - Anatomy</p>
34   - </div>
35   - </a>
36   - </div>
37   - </div>
38   - <div class="col-sm-3 col-lg-2">
39   - <div class="thumbnail">
40   - <a href="clinical-animations-details.html">
41   - <img src="~/../content/images/aod-4.jpg" alt="" title="">
42   - <div class="caption">
43   - <p>Digestive System - Physiology</p>
44   - </div>
45   - </a>
46   - </div>
47   - </div>
48   - <div class="col-sm-3 col-lg-2">
49   - <div class="thumbnail">
50   - <a href="clinical-animations-details.html">
51   - <img src="~/../content/images/aod-5.jpg" alt="" title="">
52   - <div class="caption">
53   - <p>Endocrine System - Anatomy</p>
54   - </div>
55   - </a>
56   - </div>
57   - </div>
58   - <div class="col-sm-3 col-lg-2">
59   - <div class="thumbnail">
60   - <a href="clinical-animations-details.html">
61   - <img src="~/../content/images/aod-6.jpg" alt="" title="">
62   - <div class="caption">
63   - <p>Endocrine System - Physiology</p>
64   - </div>
65   - </a>
66   - </div>
67   - </div>
68   - <div class="col-sm-3 col-lg-2">
69   - <div class="thumbnail">
70   - <a href="clinical-animations-details.html">
71   - <img src="~/../content/images/aod-7.jpg" alt="" title="">
72   - <div class="caption">
73   - <p>Immune System - Anatomy</p>
74   - </div>
75   - </a>
76   - </div>
77   - </div>
78   - <div class="col-sm-3 col-lg-2">
79   - <div class="thumbnail">
80   - <a href="clinical-animations-details.html">
81   - <img src="~/../content/images/aod-8.jpg" alt="" title="">
82   - <div class="caption">
83   - <p>Immune System - Physiology</p>
84   - </div>
85   - </a>
86   - </div>
87   - </div>
88   - <div class="col-sm-3 col-lg-2">
89   - <div class="thumbnail">
90   - <a href="clinical-animations-details.html">
91   - <img src="~/../content/images/aod-9.jpg" alt="" title="">
92   - <div class="caption">
93   - <p>Musculoskeletal System - Anatomy</p>
94   - </div>
95   - </a>
96   - </div>
97   - </div>
98   - <div class="col-sm-3 col-lg-2">
99   - <div class="thumbnail">
100   - <a href="clinical-animations-details.html">
101   - <img src="~/../content/images/aod-10.jpg" alt="" title="">
102   - <div class="caption">
103   - <p>Musculoskeletal System - Physiology</p>
104   - </div>
105   - </a>
106   - </div>
107   - </div>
108   - <div class="col-sm-3 col-lg-2">
109   - <div class="thumbnail">
110   - <a href="clinical-animations-details.html">
111   - <img src="~/../content/images/aod-11.jpg" alt="" title="">
112   - <div class="caption">
113   - <p>Nervous System - Anatomy</p>
114   - </div>
115   - </a>
116   - </div>
117   - </div>
118   - <div class="col-sm-3 col-lg-2">
119   - <div class="thumbnail">
120   - <a href="clinical-animations-details.html">
121   - <img src="~/../content/images/aod-12.jpg" alt="" title="">
122   - <div class="caption">
123   - <p>Nervous System - Physiology</p>
124   - </div>
125   - </a>
126   - </div>
127   - </div>
128   -
129   - <div class="col-sm-3 col-lg-2">
130   - <div class="thumbnail">
131   - <a href="clinical-animations-details.html">
132   - <img src="~/../content/images/aod-13.jpg" alt="" title="">
133   - <div class="caption">
134   - <p>Respiratory System - Anatomy</p>
135   - </div>
136   - </a>
137   - </div>
138   - </div>
139   - <div class="col-sm-3 col-lg-2">
140   - <div class="thumbnail">
141   - <a href="clinical-animations-details.html">
142   - <img src="~/../content/images/aod-14.jpg" alt="" title="">
143   - <div class="caption">
144   - <p>Respiratory System - Physiology</p>
145   - </div>
146   - </a>
147   - </div>
148   - </div>
149   - <div class="col-sm-3 col-lg-2">
150   - <div class="thumbnail">
151   - <a href="clinical-animations-details.html">
152   - <img src="~/../content/images/aod-15.jpg" alt="" title="">
153   - <div class="caption">
154   - <p>Skin - Anatomy</p>
155   - </div>
156   - </a>
157   - </div>
158   - </div>
159   - <div class="col-sm-3 col-lg-2">
160   - <div class="thumbnail">
161   - <a href="clinical-animations-details.html">
162   - <img src="~/../content/images/aod-16.jpg" alt="" title="">
163   - <div class="caption">
164   - <p>Skin - Physiology</p>
165   - </div>
166   - </a>
167   - </div>
168   - </div>
169   - <div class="col-sm-3 col-lg-2">
170   - <div class="thumbnail">
171   - <a href="clinical-animations-details.html">
172   - <img src="~/../content/images/aod-17.jpg" alt="" title="">
173   - <div class="caption">
174   - <p>The Blood Anatomy and Physiology</p>
175   - </div>
176   - </a>
177   - </div>
178   - </div>
179   - <div class="col-sm-3 col-lg-2">
180   - <div class="thumbnail">
181   - <a href="clinical-animations-details.html">
182   - <img src="~/../content/images/aod-18.jpg" alt="" title="">
183   - <div class="caption">
184   - <p>Understanding Cell Biology</p>
185   - </div>
186   - </a>
187   - </div>
188   - </div>
189   - <div class="col-sm-3 col-lg-2">
190   - <div class="thumbnail">
191   - <a href="clinical-animations-details.html">
192   - <img src="~/../content/images/aod-19.jpg" alt="" title="">
193   - <div class="caption">
194   - <p>Urinary System - Physiology</p>
195   - </div>
196   - </a>
197   - </div>
198   - </div>
199   - <div class="col-sm-3 col-lg-2">
200   - <div class="thumbnail">
201   - <a href="clinical-animations-details.html">
202   - <img src="~/../content/images/aod-20.jpg" alt="" title="">
203   - <div class="caption">
204   - <p>Visual System - Anatomy</p>
205   - </div>
206   - </a>
207   - </div>
208   - </div>
209   - <div class="col-sm-3 col-lg-2">
210   - <div class="thumbnail">
211   - <a href="clinical-animations-details.html">
212   - <img src="~/../content/images/aod-21.jpg" alt="" title="">
213   - <div class="caption">
214   - <p>Visual System - Physiology</p>
215   - </div>
216   - </a>
217   - </div>
218   - </div>
219   -
220   -
221   -
222   - </div>
223   - <div role="tabpanel" ng-class="{'tab-pane active' : activeTab === 2,'tab-pane' : activeTab !==2 }" id="list-view">
224   - <div class="col-sm-12 table-responsive ">
225   - <table class="table table-hover table-condensed bg-white">
226   - <thead>
227   - <tr class="active">
228   - <th>Title</th>
229   - <th>System</th>
230   -
231   - </tr>
232   - </thead>
233   - <tbody>
234   - <tr>
235   - <td>1st &amp; 2nd Intercostal Spaces</td>
236   - <td>Thorax</td>
237   -
238   - </tr>
239   - <tr>
240   - <td>1st, 3rd, &amp;8th Ribs</td>
241   - <td>Body Wall and Back</td>
242   -
243   - </tr>
244   - <tr>
245   - <td>Abdomen at L5 Vertebra (Inf)</td>
246   - <td>Abdomen</td>
247   -
248   - </tr>
249   - <tr>
250   - <td>1st &amp; 2nd Intercostal Spaces</td>
251   - <td>Thorax</td>
252   -
253   - </tr>
254   - <tr>
255   - <td>1st, 3rd, &amp;8th Ribs</td>
256   - <td>Body Wall and Back</td>
257   -
258   - </tr>
259   - <tr>
260   - <td>Abdomen at L5 Vertebra (Inf)</td>
261   - <td>Abdomen</td>
262   -
263   - </tr>
264   - <tr>
265   - <td>1st &amp; 2nd Intercostal Spaces</td>
266   - <td>Thorax</td>
267   -
268   - </tr>
269   - <tr>
270   - <td>1st, 3rd, &amp;8th Ribs</td>
271   - <td>Body Wall and Back</td>
272   -
273   - </tr>
274   - <tr>
275   - <td>Abdomen at L5 Vertebra (Inf)</td>
276   - <td>Abdomen</td>
277   -
278   - </tr>
279   - <tr>
280   - <td>1st &amp; 2nd Intercostal Spaces</td>
281   - <td>Thorax</td>
282   -
283   - </tr>
284   - <tr>
285   - <td>1st, 3rd, &amp;8th Ribs</td>
286   - <td>Body Wall and Back</td>
287   -
288   - </tr>
289   - <tr>
290   - <td>Abdomen at L5 Vertebra (Inf)</td>
291   - <td>Abdomen</td>
292   -
293   - </tr>
294   - <tr>
295   - <td>1st &amp; 2nd Intercostal Spaces</td>
296   - <td>Thorax</td>
297   -
298   - </tr>
299   - <tr>
300   - <td>1st, 3rd, &amp;8th Ribs</td>
301   - <td>Body Wall and Back</td>
302   -
303   - </tr>
304   - <tr>
305   - <td>Abdomen at L5 Vertebra (Inf)</td>
306   - <td>Abdomen</td>
307   -
308   - </tr>
309   - <tr class="active">
310   - <td colspan="6">
311   -
312   - <div class="col-sm-3 col-lg-2 no-padding">
313   - <div class="thumbnail no-margin">
314   - <a href="atlas-anatomy-detail.html">
315   - <img src="~/../content/images/aod-12.jpg" alt="" title="">
316   -
317   - </a>
318   - </div>
319   - </div>
320   - </td>
321   - </tr>
322   - </tbody>
323   - </table>
324   -
325   - </div>
326   - </div>
  3 + <div class="main" ng-init="loadAIModuleById(13)">
  4 + <div id="grid-view" class="col-sm-12" style="padding-left:25px; width:99%">
327 5 </div>
328 6 </div>
329 7 </div>
... ...
400-SOURCECODE/AIAHTML5.Web/content/data/json/aod/aod_courselist.json 0 โ†’ 100644
  1 +{
  2 + "root":{
  3 + "AODData":[
  4 + {
  5 + "_ImageId":"11014009",
  6 + "_Title":"Anatomy and Physiology of the Breast",
  7 + "_BodySystem":"Breast",
  8 + "_ThumbnailImage":"11014009.jpg"
  9 + },
  10 + {
  11 + "_ImageId":"02011209",
  12 + "_Title":"Understanding the Physiology of the Skin",
  13 + "_BodySystem":"Skin",
  14 + "_ThumbnailImage":"02011209.jpg"
  15 + },
  16 + {
  17 + "_ImageId":"14011109",
  18 + "_Title":"Understanding the Anatomy of the Urinary System",
  19 + "_BodySystem":"Urinary System",
  20 + "_ThumbnailImage":"14011109.jpg"
  21 + },
  22 + {
  23 + "_ImageId":"06011109",
  24 + "_Title":"Understanding the Anatomy of the Immune System",
  25 + "_BodySystem":"Immune System",
  26 + "_ThumbnailImage":"06011109.jpg"
  27 + },
  28 + {
  29 + "_ImageId":"09011209",
  30 + "_Title":"Understanding the Physiology of the Visual System",
  31 + "_BodySystem":"Visual System",
  32 + "_ThumbnailImage":"09011209.jpg"
  33 + },
  34 + {
  35 + "_ImageId":"02011109",
  36 + "_Title":"Understanding the Anatomy of the Skin",
  37 + "_BodySystem":"Skin",
  38 + "_ThumbnailImage":"02011109.jpg"
  39 + },
  40 + {
  41 + "_ImageId":"09011109",
  42 + "_Title":"Understanding the Anatomy of the Visual System",
  43 + "_BodySystem":"Visual System",
  44 + "_ThumbnailImage":"09011109.jpg"
  45 + },
  46 + {
  47 + "_ImageId":"01011209",
  48 + "_Title":"Understanding the Physiology of the Cardiovascular System",
  49 + "_BodySystem":"Cardiovascular System",
  50 + "_ThumbnailImage":"01011209.jpg"
  51 + },
  52 + {
  53 + "_ImageId":"13011209",
  54 + "_Title":"Understanding the Physiology of the Musculoskeletal System",
  55 + "_BodySystem":"Musculoskeletal System",
  56 + "_ThumbnailImage":"13011209.jpg"
  57 + },
  58 + {
  59 + "_ImageId":"04011209",
  60 + "_Title":"Understanding the Physiology of the Digestive System",
  61 + "_BodySystem":"Digestive System",
  62 + "_ThumbnailImage":"04011209.jpg"
  63 + },
  64 + {
  65 + "_ImageId":"01011109",
  66 + "_Title":"Understanding the Anatomy of the Cardiovascular System",
  67 + "_BodySystem":"Cardiovascular System",
  68 + "_ThumbnailImage":"01011109.jpg"
  69 + },
  70 + {
  71 + "_ImageId":"13011109",
  72 + "_Title":"Understanding the Anatomy of the Musculoskeletal System",
  73 + "_BodySystem":"Musculoskeletal System",
  74 + "_ThumbnailImage":"13011109.jpg"
  75 + },
  76 + {
  77 + "_ImageId":"04011109",
  78 + "_Title":"Understanding the Anatomy of the Digestive System",
  79 + "_BodySystem":"Digestive System",
  80 + "_ThumbnailImage":"04011109.jpg"
  81 + },
  82 + {
  83 + "_ImageId":"07011209",
  84 + "_Title":"Understanding the Physiology of the Nervous System",
  85 + "_BodySystem":"Nervous System",
  86 + "_ThumbnailImage":"07011209.jpg"
  87 + },
  88 + {
  89 + "_ImageId":"01011009",
  90 + "_Title":"Introduction to the Cardiovascular System",
  91 + "_BodySystem":"Cardiovascular System",
  92 + "_ThumbnailImage":"01011009.jpg"
  93 + },
  94 + {
  95 + "_ImageId":"12011209",
  96 + "_Title":"Understanding the Physiology of the Respiratory System",
  97 + "_BodySystem":"Respiratory System",
  98 + "_ThumbnailImage":"12011209.jpg"
  99 + },
  100 + {
  101 + "_ImageId":"03011209",
  102 + "_Title":"Understanding the Physiology of the Endocrine System",
  103 + "_BodySystem":"Endocrine System",
  104 + "_ThumbnailImage":"03011209.jpg"
  105 + },
  106 + {
  107 + "_ImageId":"07011109",
  108 + "_Title":"Understanding the Anatomy of the Nervous System",
  109 + "_BodySystem":"Nervous System",
  110 + "_ThumbnailImage":"07011109.jpg"
  111 + },
  112 + {
  113 + "_ImageId":"12011109",
  114 + "_Title":"Understanding the Anatomy of the Respiratory System",
  115 + "_BodySystem":"Respiratory System",
  116 + "_ThumbnailImage":"12011109.jpg"
  117 + },
  118 + {
  119 + "_ImageId":"03011109",
  120 + "_Title":"Understanding the Anatomy of the Endocrine System",
  121 + "_BodySystem":"Endocrine System",
  122 + "_ThumbnailImage":"03011109.jpg"
  123 + },
  124 + {
  125 + "_ImageId":"14011209",
  126 + "_Title":"Understanding the Physiology of the Urinary System",
  127 + "_BodySystem":"Urinary System",
  128 + "_ThumbnailImage":"14011209.jpg"
  129 + },
  130 + {
  131 + "_ImageId":"06011209",
  132 + "_Title":"Understanding the Physiology of the Immune System",
  133 + "_BodySystem":"Immune System",
  134 + "_ThumbnailImage":"06011209.jpg"
  135 + },
  136 + {
  137 + "_ImageId":"00016009",
  138 + "_Title":"Understanding Cell Biology",
  139 + "_BodySystem":"1",
  140 + "_ThumbnailImage":"00016009.jpg"
  141 + },
  142 + {
  143 + "_ImageId":"05011009",
  144 + "_Title":"Blood Anatomy and Physiology",
  145 + "_BodySystem":"2",
  146 + "_ThumbnailImage":"05011009.jpg"
  147 + },
  148 + {
  149 + "_ImageId":"07029109",
  150 + "_Title":"Understanding the Physiology of Pain",
  151 + "_BodySystem":"3",
  152 + "_ThumbnailImage":"07029109.jpg"
  153 + }
  154 + ]
  155 + }
  156 +}
0 157 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/content/data/json/aod/aod_courselist_video.json 0 โ†’ 100644
  1 +{
  2 + "root":{
  3 + "AODData":[
  4 + {
  5 + "_id":"1",
  6 + "_CourseId":"11014009",
  7 + "_Title":"Anatomy and Physiology of the Breast",
  8 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  9 + },
  10 + {
  11 + "_id":"2",
  12 + "_CourseId":"02011209",
  13 + "_Title":"Understanding the Physiology of the Skin",
  14 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  15 + },
  16 + {
  17 + "_id":"3",
  18 + "_CourseId":"14011109",
  19 + "_Title":"Understanding the Anatomy of the Urinary System",
  20 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  21 + },
  22 + {
  23 + "_id":"4",
  24 + "_CourseId":"06011109",
  25 + "_Title":"Understanding the Anatomy of the Immune System",
  26 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  27 + },
  28 + {
  29 + "_id":"5",
  30 + "_CourseId":"09011209",
  31 + "_Title":"Understanding the Physiology of the Visual System",
  32 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  33 + },
  34 + {
  35 + "_id":"6",
  36 + "_CourseId":"02011109",
  37 + "_Title":"Understanding the Anatomy of the Skin",
  38 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  39 + },
  40 + {
  41 + "_id":"7",
  42 + "_CourseId":"00016009",
  43 + "_Title":"Understanding Cell Biology",
  44 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  45 + },
  46 + {
  47 + "_id":"8",
  48 + "_CourseId":"05011009",
  49 + "_Title":"Blood Anatomy and Physiology",
  50 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  51 + },
  52 + {
  53 + "_id":"9",
  54 + "_CourseId":"09011109",
  55 + "_Title":"Understanding the Anatomy of the Visual System",
  56 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  57 + },
  58 + {
  59 + "_id":"10",
  60 + "_CourseId":"01011209",
  61 + "_Title":"Understanding the Physiology of the Cardiovascular System",
  62 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  63 + },
  64 + {
  65 + "_id":"11",
  66 + "_CourseId":"13011209",
  67 + "_Title":"Understanding the Physiology of the Musculoskeletal System",
  68 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  69 + },
  70 + {
  71 + "_id":"12",
  72 + "_CourseId":"04011209",
  73 + "_Title":"Understanding the Physiology of the Digestive System",
  74 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  75 + },
  76 + {
  77 + "_id":"13",
  78 + "_CourseId":"07029109",
  79 + "_Title":"Understanding the Physiology of Pain",
  80 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  81 + },
  82 + {
  83 + "_id":"14",
  84 + "_CourseId":"01011109",
  85 + "_Title":"Understanding the Anatomy of the Cardiovascular System",
  86 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  87 + },
  88 + {
  89 + "_id":"15",
  90 + "_CourseId":"13011109",
  91 + "_Title":"Understanding the Anatomy of the Musculoskeletal System",
  92 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  93 + },
  94 + {
  95 + "_id":"16",
  96 + "_CourseId":"04011109",
  97 + "_Title":"Understanding the Anatomy of the Digestive System",
  98 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  99 + },
  100 + {
  101 + "_id":"17",
  102 + "_CourseId":"07011209",
  103 + "_Title":"Understanding the Physiology of the Nervous System",
  104 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  105 + },
  106 + {
  107 + "_id":"18",
  108 + "_CourseId":"01011009",
  109 + "_Title":"Introduction to the Cardiovascular System",
  110 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  111 + },
  112 + {
  113 + "_id":"19",
  114 + "_CourseId":"12011209",
  115 + "_Title":"Understanding the Physiology of the Respiratory System",
  116 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  117 + },
  118 + {
  119 + "_id":"20",
  120 + "_CourseId":"03011209",
  121 + "_Title":"Understanding the Physiology of the Endocrine System",
  122 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  123 + },
  124 + {
  125 + "_id":"21",
  126 + "_CourseId":"07011109",
  127 + "_Title":"Understanding the Anatomy of the Nervous System",
  128 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  129 + },
  130 + {
  131 + "_id":"22",
  132 + "_CourseId":"12011109",
  133 + "_Title":"Understanding the Anatomy of the Respiratory System",
  134 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  135 + },
  136 + {
  137 + "_id":"23",
  138 + "_CourseId":"03011109",
  139 + "_Title":"Understanding the Anatomy of the Endocrine System",
  140 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  141 + },
  142 + {
  143 + "_id":"24",
  144 + "_CourseId":"14011209",
  145 + "_Title":"Understanding the Physiology of the Urinary System",
  146 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  147 + },
  148 + {
  149 + "_id":"25",
  150 + "_CourseId":"06011209",
  151 + "_Title":"Understanding the Physiology of the Immune System",
  152 + "_VideoUrl":"AodHome/CoursePlayerAIA"
  153 + }
  154 + ]
  155 + }
  156 +}
0 157 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/00016009.jpg 0 โ†’ 100644

16.7 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/01011009.jpg 0 โ†’ 100644

36.5 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/01011109.jpg 0 โ†’ 100644

42.5 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/01011209.jpg 0 โ†’ 100644

45 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/02011109.jpg 0 โ†’ 100644

38.9 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/02011209.jpg 0 โ†’ 100644

45.4 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/03011109.jpg 0 โ†’ 100644

31.5 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/03011209.jpg 0 โ†’ 100644

35.5 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/04011109.jpg 0 โ†’ 100644

37.8 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/04011209.jpg 0 โ†’ 100644

34.5 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/05011009.jpg 0 โ†’ 100644

29.2 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/06011109.jpg 0 โ†’ 100644

40.1 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/06011209.jpg 0 โ†’ 100644

19 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/07011109.jpg 0 โ†’ 100644

34.3 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/07011209.jpg 0 โ†’ 100644

39.8 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/07029109.jpg 0 โ†’ 100644

30.2 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/09011109.jpg 0 โ†’ 100644

30.3 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/09011209.jpg 0 โ†’ 100644

38.7 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/11014009.jpg 0 โ†’ 100644

34.6 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/12011109.jpg 0 โ†’ 100644

37.3 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/12011209.jpg 0 โ†’ 100644

17.3 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/13011109.jpg 0 โ†’ 100644

16.2 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/13011209.jpg 0 โ†’ 100644

16.1 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/14011109.jpg 0 โ†’ 100644

33.7 KB

400-SOURCECODE/AIAHTML5.Web/content/images/aod/thumbnails/14011209.jpg 0 โ†’ 100644

19.4 KB

400-SOURCECODE/Admin/src/app/app.component.ts
... ... @@ -37,7 +37,7 @@ export class AppComponent implements OnInit {
37 37 constructor(private idle: Idle, private keepalive: Keepalive,private titleService: Title,private _confirmService: ConfirmService,private userservice: UserService,private _loadingService: LoadingService, public global: GlobalService, private router: Router,) {
38 38 const projectTitle= this.titleService.getTitle();
39 39  
40   - console.log("idleTime: "+this.global.aiaIdleTime+" aiaIdleTimeOut: "+this.global.aiaIdleTimeOut+" Interval: "+this.global.aiaPingInterval);
  40 + //console.log("idleTime: "+this.global.aiaIdleTime+" aiaIdleTimeOut: "+this.global.aiaIdleTimeOut+" Interval: "+this.global.aiaPingInterval);
41 41 // sets an idle timeout of 20 minutes.
42 42 this.idle.setIdle(this.global.aiaIdleTime);
43 43  
... ... @@ -141,9 +141,10 @@ export class AppComponent implements OnInit {
141 141 this.userservice.ManageUserLoginStatus({
142 142 userId: this.global.UserId,
143 143 tagName: tagname,
144   - SessionId:this.global.SessionId
  144 + SessionId:this.global.SessionId,
  145 + isSiteUser:this.global.isSiteUser
145 146 }).subscribe(status => {
146   - console.log(status);
  147 + //console.log(status);
147 148 if(status=='False')
148 149 {
149 150 if(tagname=='logout')
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/user.service.ts
... ... @@ -56,7 +56,7 @@ export class UserService {
56 56  
57 57 //////////Manage UserLogin Status///////////
58 58 ManageUserLoginStatus(obj: any) {
59   - var jsonData = { 'userId': obj.userId, 'tagName': obj.tagName,'SessionId': obj.SessionId };
  59 + var jsonData = { 'userId': obj.userId, 'tagName': obj.tagName,'SessionId': obj.SessionId,'isSiteUser': obj.isSiteUser };
60 60 console.log(obj);
61 61 var headers = new Headers({
62 62 'Content-Type': 'application/json'
... ...
400-SOURCECODE/Admin/src/app/shared/global.ts
... ... @@ -28,23 +28,37 @@ export class GlobalService {
28 28 aiaIdleTimeOut:number=0;
29 29 aiaPingInterval:number=0;
30 30 SessionId:number=0;
  31 + isSiteUser:boolean=false;
31 32 RemoveColumns: Array<string> = ["Serial_No", "LicenseId","RowNum"]
32 33 error;
33 34 public href: string = "";
34 35 constructor(private csvService: CsvService, private http: Http) {
35   - this.loggedInUser = JSON.parse(localStorage.getItem("loggedInUserDetails"));
36   - if (this.loggedInUser != null) {
37   - this.UserId = this.loggedInUser.Id;
38   - this.UserType = this.loggedInUser.UserTypeId;
39   - this.UserTypeName = this.loggedInUser.UserType;
40   - this.DisplayName = this.loggedInUser.FirstName + " " + this.loggedInUser.LastName;
41   - this.LoginId=this.loggedInUser.LoginId;
42   - this.aiaIdleTime=this.loggedInUser.aiaIdleTime;
43   - this.aiaIdleTimeOut=this.loggedInUser.aiaIdleTimeOut;
44   - this.aiaPingInterval=this.loggedInUser.aiaPingInterval;
45   - this.SessionId=this.loggedInUser.SessionId;
  36 + if(window.location.host=="localhost:4200")
  37 + {
  38 + // for 'ng serve --open' command
  39 + //**** for localhost:4200 *****//
  40 + var date = new Date();
  41 + var newsessionid = date.getTime();//timestamp is the number of milliseconds that have passed since January 1, 1970
  42 + localStorage.setItem('loggedInUserDetails', JSON.stringify(
  43 + {
  44 + "Id": 1, "FirstName": "Maribel", "LastName": "sfsfsfsfsfsfs", "EmailId": "ravi.vishwakarma@ebix.com", "LoginId": "superadmin", "Password": "ebix@2016","aiaIdleTime": 300,"aiaIdleTimeOut": 30,"aiaPingInterval": 10,"SessionId":newsessionid,"isSiteUser":false, "SecurityQuestionId": 1, "SecurityAnswer": "boxer", "CreatorId": 1, "CreationDate": "2009-03-02T00:00:00", "DeactivationDate": null, "ModifierId": 1, "ModifiedDate": "2017-01-24T02:03:19", "UserType": "Super Admin", "UserTypeId": 1, "IsActive": true, "IsCorrectPassword": false, "IncorrectLoginAttemptCount": 0, "IsBlocked": false, "LicenseId": 0, "EditionId": 0, "LoginFailureCauseId": 0, "Modules": [{ "slug": "da-view-list", "name": "Dissectible Anatomy", "id": 1 }, { "slug": "tile-view-list", "name": "Atlas Anatomy", "id": 2 }, { "slug": "3d-anatomy-list", "name": "3D Anatomy", "id": 3 }, { "slug": "clinical-illustrations", "name": "Clinical Illustrations", "id": 4 }, { "slug": "clinical-animations", "name": "Clinical Animations", "id": 5 }, { "slug": "Link/encyclopedia", "name": "Encyclopedia", "id": 6 }, { "slug": "curriculum-builder", "name": "Curriculum Builder", "id": 7 }, { "slug": "anatomy-test", "name": "Anatomy Test", "id": 8 }, { "slug": "Link/IP-10", "name": "IP 10", "id": 9 }, { "slug": "lab-exercises", "name": "Lab Exercises", "id": 10 }, { "slug": "Link/indepth-reports", "name": "In-Depth Reports", "id": 11 }, { "slug": "Link/complementary-and-alternate-medicine", "name": "CAM", "id": 12 }, { "slug": "ADAM-images", "name": "A.D.A.M. Images", "id": 13 }, { "slug": "Link/bodyguide", "name": "Body Guide", "id": 14 }, { "slug": "Link/health-navigator", "name": "Symptom Navigator", "id": 15 }, { "slug": "Link/wellness-tools", "name": "The Wellness Tools", "id": 16 }, { "slug": "Link/aod", "name": "A.D.A.M. OnDemand", "id": 1017 }], "LicenseInfo": { "Id": 0, "AccountNumber": "AIAS000319" }, "LicenseSubscriptions": null, "IsSubscriptionExpired": false, "SubscriptionExpirationDate": null, "TermsAndConditionsTitle": null, "TermsAndConditionsText": null
  45 + }));
  46 + }
  47 +
  48 + this.loggedInUser = JSON.parse(localStorage.getItem("loggedInUserDetails"));
  49 + if (this.loggedInUser != null) {
  50 + this.UserId = this.loggedInUser.Id;
  51 + this.UserType = this.loggedInUser.UserTypeId;
  52 + this.UserTypeName = this.loggedInUser.UserType;
  53 + this.DisplayName = this.loggedInUser.FirstName + " " + this.loggedInUser.LastName;
  54 + this.LoginId=this.loggedInUser.LoginId;
  55 + this.aiaIdleTime=this.loggedInUser.aiaIdleTime;
  56 + this.aiaIdleTimeOut=this.loggedInUser.aiaIdleTimeOut;
  57 + this.aiaPingInterval=this.loggedInUser.aiaPingInterval;
  58 + this.SessionId=this.loggedInUser.SessionId;
  59 + this.isSiteUser=this.loggedInUser.isSiteUser;
46 60  
47   - }
  61 + }
48 62  
49 63 this.NoRecords = 'No Record Found.';
50 64  
... ... @@ -69,20 +83,8 @@ export class GlobalService {
69 83  
70 84 }
71 85  
72   - if (this.resourceBaseUrl == this.ProtocolType+"localhost/API/Adminapi/") {
73   - if(window.location.host=="localhost:4200")
74   - {
75   - // for 'ng serve --open' command
76   - //**** for localhost:4200 *****//
77   - var date = new Date();
78   - var newsessionid = date.getTime();//timestamp is the number of milliseconds that have passed since January 1, 1970
79   - localStorage.setItem('loggedInUserDetails', JSON.stringify(
80   - {
81   - "Id": 1, "FirstName": "Maribel", "LastName": "sfsfsfsfsfsfs", "EmailId": "ravi.vishwakarma@ebix.com", "LoginId": "superadmin", "Password": "ebix@2016","aiaIdleTime": 300,"aiaIdleTimeOut": 30,"aiaPingInterval": 10,"SessionId":newsessionid, "SecurityQuestionId": 1, "SecurityAnswer": "boxer", "CreatorId": 1, "CreationDate": "2009-03-02T00:00:00", "DeactivationDate": null, "ModifierId": 1, "ModifiedDate": "2017-01-24T02:03:19", "UserType": "Super Admin", "UserTypeId": 1, "IsActive": true, "IsCorrectPassword": false, "IncorrectLoginAttemptCount": 0, "IsBlocked": false, "LicenseId": 0, "EditionId": 0, "LoginFailureCauseId": 0, "Modules": [{ "slug": "da-view-list", "name": "Dissectible Anatomy", "id": 1 }, { "slug": "tile-view-list", "name": "Atlas Anatomy", "id": 2 }, { "slug": "3d-anatomy-list", "name": "3D Anatomy", "id": 3 }, { "slug": "clinical-illustrations", "name": "Clinical Illustrations", "id": 4 }, { "slug": "clinical-animations", "name": "Clinical Animations", "id": 5 }, { "slug": "Link/encyclopedia", "name": "Encyclopedia", "id": 6 }, { "slug": "curriculum-builder", "name": "Curriculum Builder", "id": 7 }, { "slug": "anatomy-test", "name": "Anatomy Test", "id": 8 }, { "slug": "Link/IP-10", "name": "IP 10", "id": 9 }, { "slug": "lab-exercises", "name": "Lab Exercises", "id": 10 }, { "slug": "Link/indepth-reports", "name": "In-Depth Reports", "id": 11 }, { "slug": "Link/complementary-and-alternate-medicine", "name": "CAM", "id": 12 }, { "slug": "ADAM-images", "name": "A.D.A.M. Images", "id": 13 }, { "slug": "Link/bodyguide", "name": "Body Guide", "id": 14 }, { "slug": "Link/health-navigator", "name": "Symptom Navigator", "id": 15 }, { "slug": "Link/wellness-tools", "name": "The Wellness Tools", "id": 16 }, { "slug": "Link/aod", "name": "A.D.A.M. OnDemand", "id": 1017 }], "LicenseInfo": { "Id": 0, "AccountNumber": "AIAS000319" }, "LicenseSubscriptions": null, "IsSubscriptionExpired": false, "SubscriptionExpirationDate": null, "TermsAndConditionsTitle": null, "TermsAndConditionsText": null
82   - }));
83   - }
84   -
85   - this.loggedInUser = JSON.parse(localStorage.getItem("loggedInUserDetails"));
  86 + if (this.resourceBaseUrl == this.ProtocolType+"localhost/API/Adminapi/") {
  87 +
86 88 if (this.UserTypeName == "Client Admin" || this.UserTypeName == "District Admin") {
87 89 this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber
88 90 }
... ...