Commit c6b048ab24f1ba11a52f757c9fe4a59befa126c9

Authored by Birendra
2 parents a673f04f 73c49a1e

Merge branch 'AIABugFixes' into AIA_Develop

Showing 115 changed files with 7668 additions and 3977 deletions

Too many changes.

To preserve performance only 100 of 115 files are displayed.

400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/CommonController.cs
... ... @@ -90,12 +90,12 @@ namespace AIAHTML5.ADMIN.API.Controllers
90 90 public IHttpActionResult GetDiscountCode()
91 91 {
92 92 dbContext.Configuration.ProxyCreationEnabled = false;
93   - List<DiscountCodeModel> lstDiscountCode1 = new List<DiscountCodeModel>();
  93 + List<usp_GetDiscountCodes_Result> lstDiscountCode1 = new List<usp_GetDiscountCodes_Result>();
94 94 string sStartDate = DateTime.MinValue.ToShortDateString();
95 95 string sEndDate = DateTime.MaxValue.ToShortDateString();
96 96 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
97   - var lstDiscountCode = dbContext.usp_GetDiscountCodes("", "", "", 1, 1, spRecordCount).ToList();
98   - lstDiscountCode1 = lstDiscountCode.Select(l => new DiscountCodeModel { Id = l.Id, DiscountCode = l.DiscountCode }).ToList();
  97 + var lstDiscountCode = dbContext.usp_GetDiscountCodes("", "", "","Id","asc", 1, 1, spRecordCount).ToList();
  98 + lstDiscountCode1 = lstDiscountCode.Select(l => new usp_GetDiscountCodes_Result { Id = l.Id, DiscountCode = l.DiscountCode }).ToList();
99 99 return Ok(lstDiscountCode1);
100 100 }
101 101  
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/DiscountCodeController.cs
... ... @@ -25,13 +25,13 @@ namespace AIAHTML5.ADMIN.API.Controllers
25 25  
26 26 [Route("GetDiscountCodes")]
27 27 [HttpGet]
28   - public HttpResponseMessage GetDiscountCodes(string discountCode, DateTime startDate, DateTime endDate, int pageNo, int pageLength)
  28 + public HttpResponseMessage GetDiscountCodes(string discountCode, DateTime startDate, DateTime endDate, string sortColumn, string sortOrder, int pageNo, int pageLength)
29 29 {
30   - List<DiscountCodeModel> DiscountCodeList = new List<DiscountCodeModel>();
  30 + List<usp_GetDiscountCodes_Result> DiscountCodeList;
31 31 int recordCount = 0;
32 32 try
33 33 {
34   - DiscountCodeList = DiscountCodeModel.GetDiscountCodes(dbContext, discountCode, startDate, endDate, pageNo, pageLength, out recordCount);
  34 + DiscountCodeList = DiscountCodeModel.GetDiscountCodes(dbContext, discountCode, startDate, endDate, sortColumn, sortOrder, pageNo, pageLength, out recordCount);
35 35 return Request.CreateResponse(HttpStatusCode.OK, new { DiscountCodeList = DiscountCodeList, RecordCount = recordCount });
36 36 }
37 37 catch (Exception ex)
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/LicenseController.cs
... ... @@ -43,14 +43,14 @@ namespace AIAHTML5.ADMIN.API.Controllers
43 43 [HttpGet]
44 44 public HttpResponseMessage GetLicenses(string accountNumber, string licenseeFirstName, string licenseeLastName, byte licenseTypeId,
45 45 string institutionName, int stateId, int countryId, string emailId, DateTime subscriptionStartDate, DateTime subscriptionEndDate,
46   - bool isActive, int pageNo, int pageLength)
  46 + bool isActive, string sortColumn, string sortOrder, int pageNo, int pageLength)
47 47 {
48   - List<LicenseModel> LicenseList = new List<LicenseModel>();
  48 + List<usp_GetlicensesList_Result> LicenseList;
49 49 int recordCount = 0;
50 50 try
51 51 {
52 52 LicenseList = LicenseModel.GetLicenses(dbContext, accountNumber, licenseeFirstName, licenseeLastName, licenseTypeId, institutionName,
53   - stateId, countryId, emailId, subscriptionStartDate, subscriptionEndDate, isActive, pageNo, pageLength, out recordCount);
  53 + stateId, countryId, emailId, subscriptionStartDate, subscriptionEndDate, isActive, sortColumn, sortOrder, pageNo, pageLength, out recordCount);
54 54 return Request.CreateResponse(HttpStatusCode.OK, new { LicenseList = LicenseList, RecordCount = recordCount });
55 55 }
56 56 catch (Exception ex)
... ... @@ -236,13 +236,13 @@ namespace AIAHTML5.ADMIN.API.Controllers
236 236  
237 237 [Route("LicenseSites")]
238 238 [HttpGet]
239   - public HttpResponseMessage GetLicenseSites(string AccountNo, int pageNo, int pageLength)
  239 + public HttpResponseMessage GetLicenseSites(string AccountNo, string sortColumn, string sortOrder, int pageNo, int pageLength)
240 240 {
241   - List<SiteModel> LicenseSiteList = new List<SiteModel>();
  241 + List<usp_GetSiteAccountSites_Result> LicenseSiteList;
242 242 int recordCount = 0;
243 243 try
244 244 {
245   - LicenseSiteList = LicenseModel.GetLicenseSites(dbContext, AccountNo, pageNo, pageLength, out recordCount);
  245 + LicenseSiteList = LicenseModel.GetLicenseSites(dbContext, AccountNo, sortColumn, sortOrder, pageNo, pageLength, out recordCount);
246 246 return Request.CreateResponse(HttpStatusCode.OK, new { LicenseSiteList = LicenseSiteList, RecordCount = recordCount });
247 247 }
248 248 catch (Exception ex)
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/ReportController.cs
... ... @@ -22,21 +22,21 @@ namespace AIAHTML5.ADMIN.API.Controllers
22 22 AIADatabaseV5Entities dbContext = new AIADatabaseV5Entities();
23 23 [Route("GetUsageReport")]
24 24 [HttpGet]
25   - public IHttpActionResult GetUsageReport(string sFromDate, string sToDate, string sAccoutNumber, string sZip, int iState, int iCountry, int pageNo, int pageLength)
  25 + public IHttpActionResult GetUsageReport(string sFromDate, string sToDate, string sAccoutNumber, string sZip, int iState, int iCountry, string sortColumn, string sortOrder, int pageNo, int pageLength)
26 26 {
27 27  
28 28 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
29   - var lstUsageReport = dbContext.usp_GetUsageReport(sFromDate, sToDate, sAccoutNumber, sZip, iState, iCountry, pageNo, pageLength, spRecordCount).ToList();
  29 + var lstUsageReport = dbContext.usp_GetUsageReport(sFromDate, sToDate, sAccoutNumber, sZip, iState, iCountry, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
30 30 return Ok(new { UserUsage = lstUsageReport, RecordCount = spRecordCount.Value });
31 31 //return Ok(lstUsageReport);
32 32 }
33 33  
34 34 [Route("GetCustomerSummeryReport")]
35 35 [HttpGet]
36   - public IHttpActionResult GetCustomerSummeryReport(string sAccoutNumber, string sLicenseeFullName, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, int iLicenseType, int iAccountType, string sZip, int iState, int iCountry, int pageNo, int pageLength)
  36 + public IHttpActionResult GetCustomerSummeryReport(string sAccoutNumber, string sLicenseeFullName, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, int iLicenseType, int iAccountType, string sZip, int iState, int iCountry, string sortColumn, string sortOrder, int pageNo, int pageLength)
37 37 {
38 38 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
39   - var lstCustomerSummeryReport = dbContext.usp_GetCustomerSummary(sAccoutNumber, sLicenseeFullName, iStartPrice, iEndPrice, (byte)iLicenseType, (byte)iAccountType, sZip, iState, iCountry, pageNo, pageLength, spRecordCount).ToList();
  39 + var lstCustomerSummeryReport = dbContext.usp_GetCustomerSummary(sAccoutNumber, sLicenseeFullName, iStartPrice, iEndPrice, (byte)iLicenseType, (byte)iAccountType, sZip, iState, iCountry, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
40 40 return Ok(new { CustomerSummery = lstCustomerSummeryReport, RecordCount = spRecordCount.Value });
41 41 //return Ok(lstCustomerSummeryReport);
42 42 }
... ... @@ -44,39 +44,39 @@ namespace AIAHTML5.ADMIN.API.Controllers
44 44  
45 45 [Route("GetExpiringSubscriptionReport")]
46 46 [HttpGet]
47   - public IHttpActionResult GetExpiringSubscriptionReport(string sFromDate, string sToDate, decimal iStartPrice, decimal iEndPrice, int iLicenseTypeId, int iAccountTypeId, string sZip, int iStateId, int iCountryId, int pageNo, int pageLength)
  47 + public IHttpActionResult GetExpiringSubscriptionReport(string sFromDate, string sToDate, decimal iStartPrice, decimal iEndPrice, int iLicenseTypeId, int iAccountTypeId, string sZip, int iStateId, int iCountryId, string sortColumn, string sortOrder, int pageNo, int pageLength)
48 48 {
49 49 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
50   - var lstExpiringSubscriptionReport = dbContext.usp_GetExpiringLicenses(sFromDate, sToDate, iStartPrice, iEndPrice, (byte)iLicenseTypeId, (byte)iAccountTypeId, sZip, iStateId, iCountryId, pageNo, pageLength, spRecordCount).ToList();
  50 + var lstExpiringSubscriptionReport = dbContext.usp_GetExpiringLicenses(sFromDate, sToDate, iStartPrice, iEndPrice, (byte)iLicenseTypeId, (byte)iAccountTypeId, sZip, iStateId, iCountryId, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
51 51 return Ok(new { ExpiringSubscription = lstExpiringSubscriptionReport, RecordCount = spRecordCount.Value });
52 52  
53 53 }
54 54  
55 55 [Route("GetSubscriptionReport")]
56 56 [HttpGet]
57   - public IHttpActionResult GetSubscriptionReport(string sFromDate, string sToDate, decimal icStartPrice, decimal icEndPrice, int iLicenseTypeId, int iAccountTypeId, string sZip, int iStateId, int iCountryId, int pageNo, int pageLength)
  57 + public IHttpActionResult GetSubscriptionReport(string sFromDate, string sToDate, decimal icStartPrice, decimal icEndPrice, int iLicenseTypeId, int iAccountTypeId, string sZip, int iStateId, int iCountryId, string sortColumn, string sortOrder, int pageNo, int pageLength)
58 58 {
59 59 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
60   - var lstExpiringSubscriptionReport = dbContext.usp_GetSubscribedLicenses(sFromDate, sToDate, icStartPrice, icEndPrice, (byte)iLicenseTypeId, (byte)iAccountTypeId, sZip, iStateId, iCountryId, pageNo, pageLength, spRecordCount).ToList();
  60 + var lstExpiringSubscriptionReport = dbContext.usp_GetSubscribedLicenses(sFromDate, sToDate, icStartPrice, icEndPrice, (byte)iLicenseTypeId, (byte)iAccountTypeId, sZip, iStateId, iCountryId, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
61 61 return Ok(new { Subscription = lstExpiringSubscriptionReport, RecordCount = spRecordCount.Value });
62 62 }
63 63 [Route("GetSubscriptionCancellationReport")]
64 64 [HttpGet]
65   - public IHttpActionResult GetSubscriptionCancellationReport(string sFromDate, string sToDate, decimal icStartPrice, decimal icEndPrice, int iLicenseTypeId, int iAccountTypeId, string sZip, int iStateId, int iCountryId, int pageNo, int pageLength)
  65 + public IHttpActionResult GetSubscriptionCancellationReport(string sFromDate, string sToDate, decimal icStartPrice, decimal icEndPrice, int iLicenseTypeId, int iAccountTypeId, string sZip, int iStateId, int iCountryId, string sortColumn, string sortOrder, int pageNo, int pageLength)
66 66 {
67 67 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
68   - var lstExpiringSubscriptionReport = dbContext.usp_GetCancelledLicenses(sFromDate, sToDate, icStartPrice, icEndPrice, (byte)iLicenseTypeId, (byte)iAccountTypeId, sZip, iStateId, iCountryId, pageNo, pageLength, spRecordCount).ToList();
  68 + var lstExpiringSubscriptionReport = dbContext.usp_GetCancelledLicenses(sFromDate, sToDate, icStartPrice, icEndPrice, (byte)iLicenseTypeId, (byte)iAccountTypeId, sZip, iStateId, iCountryId, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
69 69 return Ok(new { SubscriptionCancel = lstExpiringSubscriptionReport, RecordCount = spRecordCount.Value });
70 70 }
71 71  
72 72 [Route("GetNetAdSummaryReport")]
73 73 [HttpGet]
74   - public IHttpActionResult GetNetAdSummaryReport(string sFromDate, string sToDate, decimal iStartPrice, decimal iEndPrice, int iLicenseTypeId, int pageNo, int pageLength)
  74 + public IHttpActionResult GetNetAdSummaryReport(string sFromDate, string sToDate, decimal iStartPrice, decimal iEndPrice, int iLicenseTypeId,string sortColumn, string sortOrder, int pageNo, int pageLength)
75 75 {
76 76 try
77 77 {
78 78 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
79   - var lstNetAdSummaryReport = dbContext.usp_GetNetAdSummaryReport(sFromDate, sToDate, iStartPrice, iEndPrice, (byte)iLicenseTypeId, pageNo, pageLength, spRecordCount).ToList();
  79 + var lstNetAdSummaryReport = dbContext.usp_GetNetAdSummaryReport(sFromDate, sToDate, iStartPrice, iEndPrice, (byte)iLicenseTypeId, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
80 80 return Ok(new { NetAdSubscriptionList = lstNetAdSummaryReport, RecordCount = spRecordCount.Value });
81 81 }
82 82 catch (Exception ex)
... ... @@ -88,12 +88,12 @@ namespace AIAHTML5.ADMIN.API.Controllers
88 88  
89 89 [Route("GetSiteLicenseUsageReport")]
90 90 [HttpGet]
91   - public IHttpActionResult GetSiteLicenseUsageReport(string sFromDate, string sToDate, string sAccountNumber, int iEdition, int pageNo, int pageLength)
  91 + public IHttpActionResult GetSiteLicenseUsageReport(string sFromDate, string sToDate, string sAccountNumber, int iEdition, int iloginTypeId, string sortColumn, string sortOrder, int pageNo, int pageLength)
92 92 {
93 93 try
94 94 {
95 95 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
96   - var lstSiteLicenseUsageReport = dbContext.usp_GetSiteLicenseUsageReports(sFromDate, sToDate, sAccountNumber, (byte)iEdition, pageNo, pageLength, spRecordCount).ToList();
  96 + var lstSiteLicenseUsageReport = dbContext.usp_GetSiteLicenseUsageReports(sFromDate, sToDate, sAccountNumber, (byte)iEdition, (byte)iloginTypeId, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
97 97 return Ok(new { SiteLicenseUsageList = lstSiteLicenseUsageReport, RecordCount = spRecordCount.Value });
98 98 }
99 99 catch (Exception ex)
... ... @@ -104,12 +104,12 @@ namespace AIAHTML5.ADMIN.API.Controllers
104 104  
105 105 [Route("GetDiscountReport")]
106 106 [HttpGet]
107   - public IHttpActionResult GetDiscountReport(string sFromDate, string sToDate, int iDiscountCode, string sAccountNumber, int pageNo, int pageLength)
  107 + public IHttpActionResult GetDiscountReport(string sFromDate, string sToDate, int iDiscountCode, string sAccountNumber, string sortColumn, string sortOrder, int pageNo, int pageLength)
108 108 {
109 109 try
110 110 {
111 111 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
112   - var lstDiscountReport = dbContext.usp_GetDiscountReport(sFromDate, sToDate, iDiscountCode, sAccountNumber, pageNo, pageLength, spRecordCount).ToList();
  112 + var lstDiscountReport = dbContext.usp_GetDiscountReport(sFromDate, sToDate, iDiscountCode, sAccountNumber, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
113 113 return Ok(new { DiscountReportList = lstDiscountReport, RecordCount = spRecordCount.Value });
114 114 }
115 115 catch (Exception ex)
... ... @@ -121,13 +121,13 @@ namespace AIAHTML5.ADMIN.API.Controllers
121 121  
122 122 [Route("GetImageExportReport")]
123 123 [HttpGet]
124   - public IHttpActionResult GetImageExportReport(string sFromDate, string sToDate, string sAccountNumber, int pageNo, int pageLength)
  124 + public IHttpActionResult GetImageExportReport(string sFromDate, string sToDate, string sAccountNumber, string sortColumn, string sortOrder, int pageNo, int pageLength)
125 125 {
126 126 try
127 127 {
128 128 if (sAccountNumber == null) sAccountNumber = string.Empty;
129 129 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
130   - var lstImageExportReport = dbContext.usp_GetExportedImageDetails(sFromDate, sToDate, sAccountNumber, pageNo, pageLength, spRecordCount).ToList();
  130 + var lstImageExportReport = dbContext.usp_GetExportedImageDetails(sFromDate, sToDate, sAccountNumber, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
131 131 return Ok(new { ImageExportList = lstImageExportReport, RecordCount = spRecordCount.Value });
132 132 }
133 133 catch (Exception ex)
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/SubscriptionPriceController.cs
... ... @@ -25,13 +25,13 @@ namespace AIAHTML5.ADMIN.API.Controllers
25 25  
26 26 [Route("GetSubscriptionPrices")]
27 27 [HttpGet]
28   - public HttpResponseMessage GetSubscriptionPrices(int editionId, int pageNo, int pageLength)
  28 + public HttpResponseMessage GetSubscriptionPrices(int editionId, string sortColumn, string sortOrder, int pageNo, int pageLength)
29 29 {
30   - List<SubscriptionPriceModel> SubscriptionPriceList = new List<SubscriptionPriceModel>();
  30 + List<usp_GetSubscriptionPlans_Result> SubscriptionPriceList;
31 31 int recordCount = 0;
32 32 try
33 33 {
34   - SubscriptionPriceList = SubscriptionPriceModel.GetSubscriptionPrices(dbContext, editionId, pageNo, pageLength, out recordCount);
  34 + SubscriptionPriceList = SubscriptionPriceModel.GetSubscriptionPrices(dbContext, editionId, sortColumn, sortOrder, pageNo, pageLength, out recordCount);
35 35 return Request.CreateResponse(HttpStatusCode.OK, new { SubscriptionPriceList = SubscriptionPriceList, RecordCount = recordCount });
36 36 }
37 37 catch (Exception ex)
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/UserController.cs
... ... @@ -186,7 +186,7 @@ namespace AIAHTML5.ADMIN.API.Controllers
186 186  
187 187 [Route("Users")]
188 188 [HttpGet]
189   - public IHttpActionResult UserList(string firstname, string lastname, string emailid, string accountnumber, string usertypeid, string accounttypeid, string userLoginStatus,
  189 + public IHttpActionResult UserList(string firstname, string lastname, string emailid, string accountnumber, string usertypeid, string accounttypeid, string userLoginStatus, string sortColumn, string sortOrder,
190 190 int pageNo, int pageLength, int iLoginUserType,string loggedIn="")
191 191 {
192 192 try
... ... @@ -198,16 +198,16 @@ namespace AIAHTML5.ADMIN.API.Controllers
198 198 dbContext.Configuration.ProxyCreationEnabled = false;
199 199 //var spStatus = new System.Data.Objects.ObjectParameter("Status", 0);
200 200 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
201   - //recordCount = (int)spRecordCount.Value;
202   - List<usp_GetUsersList_Result> Users = dbContext.usp_GetUsersList(firstname, lastname, emailid, accountnumber, UserTypeId, AccountTypeId, iLoginUserType, loginStatus, pageNo, pageLength, spRecordCount).ToList();
  201 + recordCount = (int)spRecordCount.Value;
  202 + List<usp_GetUsersList_Result> Users = dbContext.usp_GetUsersList(firstname, lastname, emailid, accountnumber, UserTypeId, AccountTypeId, iLoginUserType, loginStatus, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
203 203 if (!string.IsNullOrEmpty(loggedIn))
204   - {
  204 + {
205 205 if (Users.Where(s => s.LoginId == loggedIn).Count() > 0)
206   - {
  206 + {
207 207 Users = Users.Where(s => s.LoginId != loggedIn).ToList();
208 208 spRecordCount.Value = (int)spRecordCount.Value - 1;
209 209 }
210   -
  210 +
211 211 }
212 212 return Ok(new { UserList = Users, RecordCount = spRecordCount.Value });
213 213 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/UserGroupController.cs
... ... @@ -24,13 +24,13 @@ namespace AIAHTML5.ADMIN.API.Controllers
24 24  
25 25 [Route("LicenseUserGroups")]
26 26 [HttpGet]
27   - public HttpResponseMessage GetLicenseUserGroups(int? LicenseId, int pageNo, int pageLength)
  27 + public HttpResponseMessage GetLicenseUserGroups(int? LicenseId, string sortColumn, string sortOrder, int pageNo, int pageLength)
28 28 {
29   - List<UserGroupModel> UserGroupList = new List<UserGroupModel>();
  29 + List<usp_GetLicenseUserGroups_Result> UserGroupList;
30 30 int recordCount = 0;
31 31 try
32 32 {
33   - UserGroupList = UserGroupModel.GetLicenseUserGroups(dbContext, LicenseId, pageNo, pageLength, out recordCount);
  33 + UserGroupList = UserGroupModel.GetLicenseUserGroups(dbContext, LicenseId, sortColumn, sortOrder,pageNo, pageLength, out recordCount);
34 34 return Request.CreateResponse(HttpStatusCode.OK, new { UserGroupList = UserGroupList, RecordCount = recordCount });
35 35 }
36 36 catch (Exception ex)
... ... @@ -42,13 +42,13 @@ namespace AIAHTML5.ADMIN.API.Controllers
42 42  
43 43 [Route("LicenseUserGroupUsers")]
44 44 [HttpGet]
45   - public HttpResponseMessage GetLicenseUserGroupUsers(int? LicenseId, int UserGroupId, bool AllUsers, int pageNo, int pageLength)
  45 + public HttpResponseMessage GetLicenseUserGroupUsers(int? LicenseId, int UserGroupId, bool AllUsers, string sortColumn, string sortOrder, int pageNo, int pageLength)
46 46 {
47   - List<UserModel> UserList = new List<UserModel>();
  47 + List<usp_GetLicenseUserGroupUsers_Result> UserList ;
48 48 int recordCount = 0;
49 49 try
50 50 {
51   - UserList = UserGroupModel.GetLicenseUserGroupUsers(dbContext, LicenseId, UserGroupId, AllUsers, pageNo, pageLength, out recordCount);
  51 + UserList = UserGroupModel.GetLicenseUserGroupUsers(dbContext, LicenseId, UserGroupId, AllUsers, sortColumn, sortOrder, pageNo, pageLength, out recordCount);
52 52 return Request.CreateResponse(HttpStatusCode.OK, new { UserList = UserList, RecordCount = recordCount });
53 53 }
54 54 catch (Exception ex)
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.Context.cs
... ... @@ -3095,7 +3095,7 @@ namespace AIAHTML5.ADMIN.API.Entity
3095 3095 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetLicenses_Result>("usp_GetLicenses", sStartDateParameter, sEndDateParameter, sAccoutNumberParameter, sLicenseeFirstNameParameter, sLicenseeLastNameParameter, iLicenseTypeIdParameter, sInstituteNameParameter, sEmailParameter, iStateIdParameter, iCountryIdParameter, bisActiveParameter, pageNoParameter, pageLengthParameter, recordCount);
3096 3096 }
3097 3097  
3098   - public virtual ObjectResult<usp_GetlicensesList_Result> usp_GetlicensesList(string sStartDate, string sEndDate, string sAccoutNumber, string sLicenseeFirstName, string sLicenseeLastName, Nullable<byte> iLicenseTypeId, string sInstituteName, string sEmail, Nullable<int> iStateId, Nullable<int> iCountryId, Nullable<bool> bisActive, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  3098 + public virtual ObjectResult<usp_GetlicensesList_Result> usp_GetlicensesList(string sStartDate, string sEndDate, string sAccoutNumber, string sLicenseeFirstName, string sLicenseeLastName, Nullable<byte> iLicenseTypeId, string sInstituteName, string sEmail, Nullable<int> iStateId, Nullable<int> iCountryId, Nullable<bool> bisActive, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3099 3099 {
3100 3100 var sStartDateParameter = sStartDate != null ?
3101 3101 new ObjectParameter("sStartDate", sStartDate) :
... ... @@ -3141,6 +3141,14 @@ namespace AIAHTML5.ADMIN.API.Entity
3141 3141 new ObjectParameter("bisActive", bisActive) :
3142 3142 new ObjectParameter("bisActive", typeof(bool));
3143 3143  
  3144 + var sortColumnParameter = sortColumn != null ?
  3145 + new ObjectParameter("sortColumn", sortColumn) :
  3146 + new ObjectParameter("sortColumn", typeof(string));
  3147 +
  3148 + var sortOrderParameter = sortOrder != null ?
  3149 + new ObjectParameter("sortOrder", sortOrder) :
  3150 + new ObjectParameter("sortOrder", typeof(string));
  3151 +
3144 3152 var pageNoParameter = pageNo.HasValue ?
3145 3153 new ObjectParameter("pageNo", pageNo) :
3146 3154 new ObjectParameter("pageNo", typeof(int));
... ... @@ -3149,7 +3157,7 @@ namespace AIAHTML5.ADMIN.API.Entity
3149 3157 new ObjectParameter("pageLength", pageLength) :
3150 3158 new ObjectParameter("pageLength", typeof(int));
3151 3159  
3152   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetlicensesList_Result>("usp_GetlicensesList", sStartDateParameter, sEndDateParameter, sAccoutNumberParameter, sLicenseeFirstNameParameter, sLicenseeLastNameParameter, iLicenseTypeIdParameter, sInstituteNameParameter, sEmailParameter, iStateIdParameter, iCountryIdParameter, bisActiveParameter, pageNoParameter, pageLengthParameter, recordCount);
  3160 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetlicensesList_Result>("usp_GetlicensesList", sStartDateParameter, sEndDateParameter, sAccoutNumberParameter, sLicenseeFirstNameParameter, sLicenseeLastNameParameter, iLicenseTypeIdParameter, sInstituteNameParameter, sEmailParameter, iStateIdParameter, iCountryIdParameter, bisActiveParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
3153 3161 }
3154 3162  
3155 3163 public virtual ObjectResult<usp_GetLicenseTypes_Result> usp_GetLicenseTypes()
... ... @@ -3157,12 +3165,20 @@ namespace AIAHTML5.ADMIN.API.Entity
3157 3165 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetLicenseTypes_Result>("usp_GetLicenseTypes");
3158 3166 }
3159 3167  
3160   - public virtual ObjectResult<usp_GetLicenseUserGroups_Result> usp_GetLicenseUserGroups(Nullable<int> licenseId, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  3168 + public virtual ObjectResult<usp_GetLicenseUserGroups_Result> usp_GetLicenseUserGroups(Nullable<int> licenseId, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3161 3169 {
3162 3170 var licenseIdParameter = licenseId.HasValue ?
3163 3171 new ObjectParameter("LicenseId", licenseId) :
3164 3172 new ObjectParameter("LicenseId", typeof(int));
3165 3173  
  3174 + var sortColumnParameter = sortColumn != null ?
  3175 + new ObjectParameter("sortColumn", sortColumn) :
  3176 + new ObjectParameter("sortColumn", typeof(string));
  3177 +
  3178 + var sortOrderParameter = sortOrder != null ?
  3179 + new ObjectParameter("sortOrder", sortOrder) :
  3180 + new ObjectParameter("sortOrder", typeof(string));
  3181 +
3166 3182 var pageNoParameter = pageNo.HasValue ?
3167 3183 new ObjectParameter("pageNo", pageNo) :
3168 3184 new ObjectParameter("pageNo", typeof(int));
... ... @@ -3171,7 +3187,7 @@ namespace AIAHTML5.ADMIN.API.Entity
3171 3187 new ObjectParameter("pageLength", pageLength) :
3172 3188 new ObjectParameter("pageLength", typeof(int));
3173 3189  
3174   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetLicenseUserGroups_Result>("usp_GetLicenseUserGroups", licenseIdParameter, pageNoParameter, pageLengthParameter, recordCount);
  3190 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetLicenseUserGroups_Result>("usp_GetLicenseUserGroups", licenseIdParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
3175 3191 }
3176 3192  
3177 3193 public virtual ObjectResult<usp_GetManageRights_Result> usp_GetManageRights(Nullable<int> userId, string roleName)
... ... @@ -3218,12 +3234,20 @@ namespace AIAHTML5.ADMIN.API.Entity
3218 3234 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSiteById_Result>("usp_GetSiteById", siteIdParameter);
3219 3235 }
3220 3236  
3221   - public virtual ObjectResult<usp_GetSubscriptionPlans_Result> usp_GetSubscriptionPlans(Nullable<byte> iEditionId, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  3237 + public virtual ObjectResult<usp_GetSubscriptionPlans_Result> usp_GetSubscriptionPlans(Nullable<byte> iEditionId, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3222 3238 {
3223 3239 var iEditionIdParameter = iEditionId.HasValue ?
3224 3240 new ObjectParameter("iEditionId", iEditionId) :
3225 3241 new ObjectParameter("iEditionId", typeof(byte));
3226 3242  
  3243 + var sortColumnParameter = sortColumn != null ?
  3244 + new ObjectParameter("sortColumn", sortColumn) :
  3245 + new ObjectParameter("sortColumn", typeof(string));
  3246 +
  3247 + var sortOrderParameter = sortOrder != null ?
  3248 + new ObjectParameter("sortOrder", sortOrder) :
  3249 + new ObjectParameter("sortOrder", typeof(string));
  3250 +
3227 3251 var pageNoParameter = pageNo.HasValue ?
3228 3252 new ObjectParameter("pageNo", pageNo) :
3229 3253 new ObjectParameter("pageNo", typeof(int));
... ... @@ -3232,7 +3256,7 @@ namespace AIAHTML5.ADMIN.API.Entity
3232 3256 new ObjectParameter("pageLength", pageLength) :
3233 3257 new ObjectParameter("pageLength", typeof(int));
3234 3258  
3235   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSubscriptionPlans_Result>("usp_GetSubscriptionPlans", iEditionIdParameter, pageNoParameter, pageLengthParameter, recordCount);
  3259 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSubscriptionPlans_Result>("usp_GetSubscriptionPlans", iEditionIdParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
3236 3260 }
3237 3261  
3238 3262 public virtual ObjectResult<usp_GetUserType_Result> usp_GetUserType(Nullable<int> id)
... ... @@ -3638,7 +3662,7 @@ namespace AIAHTML5.ADMIN.API.Entity
3638 3662 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("uspInsertBulkRow");
3639 3663 }
3640 3664  
3641   - public virtual ObjectResult<usp_GetLicenseUserGroupUsers_Result> usp_GetLicenseUserGroupUsers(Nullable<int> licenseId, Nullable<int> groupId, Nullable<bool> allUsers, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  3665 + public virtual ObjectResult<usp_GetLicenseUserGroupUsers_Result> usp_GetLicenseUserGroupUsers(Nullable<int> licenseId, Nullable<int> groupId, Nullable<bool> allUsers, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3642 3666 {
3643 3667 var licenseIdParameter = licenseId.HasValue ?
3644 3668 new ObjectParameter("licenseId", licenseId) :
... ... @@ -3652,6 +3676,14 @@ namespace AIAHTML5.ADMIN.API.Entity
3652 3676 new ObjectParameter("allUsers", allUsers) :
3653 3677 new ObjectParameter("allUsers", typeof(bool));
3654 3678  
  3679 + var sortColumnParameter = sortColumn != null ?
  3680 + new ObjectParameter("sortColumn", sortColumn) :
  3681 + new ObjectParameter("sortColumn", typeof(string));
  3682 +
  3683 + var sortOrderParameter = sortOrder != null ?
  3684 + new ObjectParameter("sortOrder", sortOrder) :
  3685 + new ObjectParameter("sortOrder", typeof(string));
  3686 +
3655 3687 var pageNoParameter = pageNo.HasValue ?
3656 3688 new ObjectParameter("pageNo", pageNo) :
3657 3689 new ObjectParameter("pageNo", typeof(int));
... ... @@ -3660,7 +3692,7 @@ namespace AIAHTML5.ADMIN.API.Entity
3660 3692 new ObjectParameter("pageLength", pageLength) :
3661 3693 new ObjectParameter("pageLength", typeof(int));
3662 3694  
3663   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetLicenseUserGroupUsers_Result>("usp_GetLicenseUserGroupUsers", licenseIdParameter, groupIdParameter, allUsersParameter, pageNoParameter, pageLengthParameter, recordCount);
  3695 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetLicenseUserGroupUsers_Result>("usp_GetLicenseUserGroupUsers", licenseIdParameter, groupIdParameter, allUsersParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
3664 3696 }
3665 3697  
3666 3698 public virtual ObjectResult<usp_InsertResellerLicenseAccount_Result> usp_InsertResellerLicenseAccount(string sLicenseeFname, string sLicenseeLname, Nullable<byte> iLicenseTypeId, Nullable<byte> iAccountTypeId, string sInstitutionName, string sAddress1, string sAddress2, string sCity, string sZip, Nullable<int> iStateId, Nullable<int> iCountryId, string sPhone, string sEmailId, Nullable<int> iTotalLogins, string sStartDate, string sEndDate, string sEditionList, Nullable<decimal> iTotalPrice, Nullable<int> iCreatorId, string sProductKey, Nullable<int> iNoofImages)
... ... @@ -3783,12 +3815,20 @@ namespace AIAHTML5.ADMIN.API.Entity
3783 3815 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSiteAccountAdmin_Result>("usp_GetSiteAccountAdmin", accountNumberParameter);
3784 3816 }
3785 3817  
3786   - public virtual ObjectResult<usp_GetSiteAccountSites_Result> usp_GetSiteAccountSites(string strAccountNumber, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  3818 + public virtual ObjectResult<usp_GetSiteAccountSites_Result> usp_GetSiteAccountSites(string strAccountNumber, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3787 3819 {
3788 3820 var strAccountNumberParameter = strAccountNumber != null ?
3789 3821 new ObjectParameter("strAccountNumber", strAccountNumber) :
3790 3822 new ObjectParameter("strAccountNumber", typeof(string));
3791 3823  
  3824 + var sortColumnParameter = sortColumn != null ?
  3825 + new ObjectParameter("sortColumn", sortColumn) :
  3826 + new ObjectParameter("sortColumn", typeof(string));
  3827 +
  3828 + var sortOrderParameter = sortOrder != null ?
  3829 + new ObjectParameter("sortOrder", sortOrder) :
  3830 + new ObjectParameter("sortOrder", typeof(string));
  3831 +
3792 3832 var pageNoParameter = pageNo.HasValue ?
3793 3833 new ObjectParameter("pageNo", pageNo) :
3794 3834 new ObjectParameter("pageNo", typeof(int));
... ... @@ -3797,7 +3837,7 @@ namespace AIAHTML5.ADMIN.API.Entity
3797 3837 new ObjectParameter("pageLength", pageLength) :
3798 3838 new ObjectParameter("pageLength", typeof(int));
3799 3839  
3800   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSiteAccountSites_Result>("usp_GetSiteAccountSites", strAccountNumberParameter, pageNoParameter, pageLengthParameter, recordCount);
  3840 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSiteAccountSites_Result>("usp_GetSiteAccountSites", strAccountNumberParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
3801 3841 }
3802 3842  
3803 3843 public virtual ObjectResult<string> usp_DeleteLicense(Nullable<int> iLicenseId)
... ... @@ -3851,7 +3891,7 @@ namespace AIAHTML5.ADMIN.API.Entity
3851 3891 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetBlockedUserByAccNoAndType_Result>("usp_GetBlockedUserByAccNoAndType", iUserTypeIdParameter, iLicenseIdParameter);
3852 3892 }
3853 3893  
3854   - public virtual ObjectResult<usp_GetCancelledLicenses_Result> usp_GetCancelledLicenses(string sFromDate, string sToDate, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<byte> iLicenseTypeId, Nullable<byte> iAccountTypeId, string sZip, Nullable<int> iStateId, Nullable<int> iCountryId, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  3894 + public virtual ObjectResult<usp_GetCancelledLicenses_Result> usp_GetCancelledLicenses(string sFromDate, string sToDate, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<byte> iLicenseTypeId, Nullable<byte> iAccountTypeId, string sZip, Nullable<int> iStateId, Nullable<int> iCountryId, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3855 3895 {
3856 3896 var sFromDateParameter = sFromDate != null ?
3857 3897 new ObjectParameter("sFromDate", sFromDate) :
... ... @@ -3889,6 +3929,14 @@ namespace AIAHTML5.ADMIN.API.Entity
3889 3929 new ObjectParameter("iCountryId", iCountryId) :
3890 3930 new ObjectParameter("iCountryId", typeof(int));
3891 3931  
  3932 + var sortColumnParameter = sortColumn != null ?
  3933 + new ObjectParameter("sortColumn", sortColumn) :
  3934 + new ObjectParameter("sortColumn", typeof(string));
  3935 +
  3936 + var sortOrderParameter = sortOrder != null ?
  3937 + new ObjectParameter("sortOrder", sortOrder) :
  3938 + new ObjectParameter("sortOrder", typeof(string));
  3939 +
3892 3940 var pageNoParameter = pageNo.HasValue ?
3893 3941 new ObjectParameter("pageNo", pageNo) :
3894 3942 new ObjectParameter("pageNo", typeof(int));
... ... @@ -3897,10 +3945,10 @@ namespace AIAHTML5.ADMIN.API.Entity
3897 3945 new ObjectParameter("pageLength", pageLength) :
3898 3946 new ObjectParameter("pageLength", typeof(int));
3899 3947  
3900   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetCancelledLicenses_Result>("usp_GetCancelledLicenses", sFromDateParameter, sToDateParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeIdParameter, iAccountTypeIdParameter, sZipParameter, iStateIdParameter, iCountryIdParameter, pageNoParameter, pageLengthParameter, recordCount);
  3948 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetCancelledLicenses_Result>("usp_GetCancelledLicenses", sFromDateParameter, sToDateParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeIdParameter, iAccountTypeIdParameter, sZipParameter, iStateIdParameter, iCountryIdParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
3901 3949 }
3902 3950  
3903   - public virtual ObjectResult<usp_GetCustomerSummary_Result> usp_GetCustomerSummary(string sAccoutNumber, string sLicenseeFullName, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<byte> iLicenseType, Nullable<byte> iAccountType, string sZip, Nullable<int> iState, Nullable<int> iCountry, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  3951 + public virtual ObjectResult<usp_GetCustomerSummary_Result> usp_GetCustomerSummary(string sAccoutNumber, string sLicenseeFullName, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<byte> iLicenseType, Nullable<byte> iAccountType, string sZip, Nullable<int> iState, Nullable<int> iCountry, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3904 3952 {
3905 3953 var sAccoutNumberParameter = sAccoutNumber != null ?
3906 3954 new ObjectParameter("sAccoutNumber", sAccoutNumber) :
... ... @@ -3938,6 +3986,14 @@ namespace AIAHTML5.ADMIN.API.Entity
3938 3986 new ObjectParameter("iCountry", iCountry) :
3939 3987 new ObjectParameter("iCountry", typeof(int));
3940 3988  
  3989 + var sortColumnParameter = sortColumn != null ?
  3990 + new ObjectParameter("sortColumn", sortColumn) :
  3991 + new ObjectParameter("sortColumn", typeof(string));
  3992 +
  3993 + var sortOrderParameter = sortOrder != null ?
  3994 + new ObjectParameter("sortOrder", sortOrder) :
  3995 + new ObjectParameter("sortOrder", typeof(string));
  3996 +
3941 3997 var pageNoParameter = pageNo.HasValue ?
3942 3998 new ObjectParameter("pageNo", pageNo) :
3943 3999 new ObjectParameter("pageNo", typeof(int));
... ... @@ -3946,10 +4002,10 @@ namespace AIAHTML5.ADMIN.API.Entity
3946 4002 new ObjectParameter("pageLength", pageLength) :
3947 4003 new ObjectParameter("pageLength", typeof(int));
3948 4004  
3949   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetCustomerSummary_Result>("usp_GetCustomerSummary", sAccoutNumberParameter, sLicenseeFullNameParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeParameter, iAccountTypeParameter, sZipParameter, iStateParameter, iCountryParameter, pageNoParameter, pageLengthParameter, recordCount);
  4005 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetCustomerSummary_Result>("usp_GetCustomerSummary", sAccoutNumberParameter, sLicenseeFullNameParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeParameter, iAccountTypeParameter, sZipParameter, iStateParameter, iCountryParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
3950 4006 }
3951 4007  
3952   - public virtual ObjectResult<usp_GetDiscountCodes_Result> usp_GetDiscountCodes(string sDiscountCode, string sStartDate, string sEndDate, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4008 + public virtual ObjectResult<usp_GetDiscountCodes_Result> usp_GetDiscountCodes(string sDiscountCode, string sStartDate, string sEndDate, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3953 4009 {
3954 4010 var sDiscountCodeParameter = sDiscountCode != null ?
3955 4011 new ObjectParameter("sDiscountCode", sDiscountCode) :
... ... @@ -3963,6 +4019,14 @@ namespace AIAHTML5.ADMIN.API.Entity
3963 4019 new ObjectParameter("sEndDate", sEndDate) :
3964 4020 new ObjectParameter("sEndDate", typeof(string));
3965 4021  
  4022 + var sortColumnParameter = sortColumn != null ?
  4023 + new ObjectParameter("sortColumn", sortColumn) :
  4024 + new ObjectParameter("sortColumn", typeof(string));
  4025 +
  4026 + var sortOrderParameter = sortOrder != null ?
  4027 + new ObjectParameter("sortOrder", sortOrder) :
  4028 + new ObjectParameter("sortOrder", typeof(string));
  4029 +
3966 4030 var pageNoParameter = pageNo.HasValue ?
3967 4031 new ObjectParameter("pageNo", pageNo) :
3968 4032 new ObjectParameter("pageNo", typeof(int));
... ... @@ -3971,10 +4035,10 @@ namespace AIAHTML5.ADMIN.API.Entity
3971 4035 new ObjectParameter("pageLength", pageLength) :
3972 4036 new ObjectParameter("pageLength", typeof(int));
3973 4037  
3974   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetDiscountCodes_Result>("usp_GetDiscountCodes", sDiscountCodeParameter, sStartDateParameter, sEndDateParameter, pageNoParameter, pageLengthParameter, recordCount);
  4038 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetDiscountCodes_Result>("usp_GetDiscountCodes", sDiscountCodeParameter, sStartDateParameter, sEndDateParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
3975 4039 }
3976 4040  
3977   - public virtual ObjectResult<usp_GetDiscountReport_Result> usp_GetDiscountReport(string sStartDate, string sEndDate, Nullable<int> intDiscountID, string sAccoutNumber, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4041 + public virtual ObjectResult<usp_GetDiscountReport_Result> usp_GetDiscountReport(string sStartDate, string sEndDate, Nullable<int> intDiscountID, string sAccoutNumber, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
3978 4042 {
3979 4043 var sStartDateParameter = sStartDate != null ?
3980 4044 new ObjectParameter("sStartDate", sStartDate) :
... ... @@ -3992,6 +4056,14 @@ namespace AIAHTML5.ADMIN.API.Entity
3992 4056 new ObjectParameter("sAccoutNumber", sAccoutNumber) :
3993 4057 new ObjectParameter("sAccoutNumber", typeof(string));
3994 4058  
  4059 + var sortColumnParameter = sortColumn != null ?
  4060 + new ObjectParameter("sortColumn", sortColumn) :
  4061 + new ObjectParameter("sortColumn", typeof(string));
  4062 +
  4063 + var sortOrderParameter = sortOrder != null ?
  4064 + new ObjectParameter("sortOrder", sortOrder) :
  4065 + new ObjectParameter("sortOrder", typeof(string));
  4066 +
3995 4067 var pageNoParameter = pageNo.HasValue ?
3996 4068 new ObjectParameter("pageNo", pageNo) :
3997 4069 new ObjectParameter("pageNo", typeof(int));
... ... @@ -4000,10 +4072,10 @@ namespace AIAHTML5.ADMIN.API.Entity
4000 4072 new ObjectParameter("pageLength", pageLength) :
4001 4073 new ObjectParameter("pageLength", typeof(int));
4002 4074  
4003   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetDiscountReport_Result>("usp_GetDiscountReport", sStartDateParameter, sEndDateParameter, intDiscountIDParameter, sAccoutNumberParameter, pageNoParameter, pageLengthParameter, recordCount);
  4075 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetDiscountReport_Result>("usp_GetDiscountReport", sStartDateParameter, sEndDateParameter, intDiscountIDParameter, sAccoutNumberParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
4004 4076 }
4005 4077  
4006   - public virtual ObjectResult<usp_GetExpiringLicenses_Result> usp_GetExpiringLicenses(string sFromDate, string sToDate, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<int> iLicenseTypeId, Nullable<int> iAccountTypeId, string sZip, Nullable<int> iStateId, Nullable<int> iCountryId, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4078 + public virtual ObjectResult<usp_GetExpiringLicenses_Result> usp_GetExpiringLicenses(string sFromDate, string sToDate, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<int> iLicenseTypeId, Nullable<int> iAccountTypeId, string sZip, Nullable<int> iStateId, Nullable<int> iCountryId, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
4007 4079 {
4008 4080 var sFromDateParameter = sFromDate != null ?
4009 4081 new ObjectParameter("sFromDate", sFromDate) :
... ... @@ -4041,6 +4113,14 @@ namespace AIAHTML5.ADMIN.API.Entity
4041 4113 new ObjectParameter("iCountryId", iCountryId) :
4042 4114 new ObjectParameter("iCountryId", typeof(int));
4043 4115  
  4116 + var sortColumnParameter = sortColumn != null ?
  4117 + new ObjectParameter("sortColumn", sortColumn) :
  4118 + new ObjectParameter("sortColumn", typeof(string));
  4119 +
  4120 + var sortOrderParameter = sortOrder != null ?
  4121 + new ObjectParameter("sortOrder", sortOrder) :
  4122 + new ObjectParameter("sortOrder", typeof(string));
  4123 +
4044 4124 var pageNoParameter = pageNo.HasValue ?
4045 4125 new ObjectParameter("pageNo", pageNo) :
4046 4126 new ObjectParameter("pageNo", typeof(int));
... ... @@ -4049,10 +4129,10 @@ namespace AIAHTML5.ADMIN.API.Entity
4049 4129 new ObjectParameter("pageLength", pageLength) :
4050 4130 new ObjectParameter("pageLength", typeof(int));
4051 4131  
4052   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetExpiringLicenses_Result>("usp_GetExpiringLicenses", sFromDateParameter, sToDateParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeIdParameter, iAccountTypeIdParameter, sZipParameter, iStateIdParameter, iCountryIdParameter, pageNoParameter, pageLengthParameter, recordCount);
  4132 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetExpiringLicenses_Result>("usp_GetExpiringLicenses", sFromDateParameter, sToDateParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeIdParameter, iAccountTypeIdParameter, sZipParameter, iStateIdParameter, iCountryIdParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
4053 4133 }
4054 4134  
4055   - public virtual ObjectResult<usp_GetExportedImageDetails_Result> usp_GetExportedImageDetails(string sStartDate, string sEndDate, string sAccoutNumber, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4135 + public virtual ObjectResult<usp_GetExportedImageDetails_Result> usp_GetExportedImageDetails(string sStartDate, string sEndDate, string sAccoutNumber, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
4056 4136 {
4057 4137 var sStartDateParameter = sStartDate != null ?
4058 4138 new ObjectParameter("sStartDate", sStartDate) :
... ... @@ -4066,6 +4146,14 @@ namespace AIAHTML5.ADMIN.API.Entity
4066 4146 new ObjectParameter("sAccoutNumber", sAccoutNumber) :
4067 4147 new ObjectParameter("sAccoutNumber", typeof(string));
4068 4148  
  4149 + var sortColumnParameter = sortColumn != null ?
  4150 + new ObjectParameter("sortColumn", sortColumn) :
  4151 + new ObjectParameter("sortColumn", typeof(string));
  4152 +
  4153 + var sortOrderParameter = sortOrder != null ?
  4154 + new ObjectParameter("sortOrder", sortOrder) :
  4155 + new ObjectParameter("sortOrder", typeof(string));
  4156 +
4069 4157 var pageNoParameter = pageNo.HasValue ?
4070 4158 new ObjectParameter("pageNo", pageNo) :
4071 4159 new ObjectParameter("pageNo", typeof(int));
... ... @@ -4074,7 +4162,7 @@ namespace AIAHTML5.ADMIN.API.Entity
4074 4162 new ObjectParameter("pageLength", pageLength) :
4075 4163 new ObjectParameter("pageLength", typeof(int));
4076 4164  
4077   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetExportedImageDetails_Result>("usp_GetExportedImageDetails", sStartDateParameter, sEndDateParameter, sAccoutNumberParameter, pageNoParameter, pageLengthParameter, recordCount);
  4165 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetExportedImageDetails_Result>("usp_GetExportedImageDetails", sStartDateParameter, sEndDateParameter, sAccoutNumberParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
4078 4166 }
4079 4167  
4080 4168 public virtual ObjectResult<Nullable<short>> usp_GetIncorrectLoginAttempt(Nullable<int> iUserId)
... ... @@ -4126,7 +4214,7 @@ namespace AIAHTML5.ADMIN.API.Entity
4126 4214 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetModuleStatusByLicenseId_Result>("usp_GetModuleStatusByLicenseId", iLicenseIdParameter);
4127 4215 }
4128 4216  
4129   - public virtual ObjectResult<usp_GetNetAdSummaryReport_Result> usp_GetNetAdSummaryReport(string sFromDate, string sToDate, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<byte> iLicenseTypeId, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4217 + public virtual ObjectResult<usp_GetNetAdSummaryReport_Result> usp_GetNetAdSummaryReport(string sFromDate, string sToDate, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<byte> iLicenseTypeId, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
4130 4218 {
4131 4219 var sFromDateParameter = sFromDate != null ?
4132 4220 new ObjectParameter("sFromDate", sFromDate) :
... ... @@ -4148,6 +4236,14 @@ namespace AIAHTML5.ADMIN.API.Entity
4148 4236 new ObjectParameter("iLicenseTypeId", iLicenseTypeId) :
4149 4237 new ObjectParameter("iLicenseTypeId", typeof(byte));
4150 4238  
  4239 + var sortColumnParameter = sortColumn != null ?
  4240 + new ObjectParameter("sortColumn", sortColumn) :
  4241 + new ObjectParameter("sortColumn", typeof(string));
  4242 +
  4243 + var sortOrderParameter = sortOrder != null ?
  4244 + new ObjectParameter("sortOrder", sortOrder) :
  4245 + new ObjectParameter("sortOrder", typeof(string));
  4246 +
4151 4247 var pageNoParameter = pageNo.HasValue ?
4152 4248 new ObjectParameter("pageNo", pageNo) :
4153 4249 new ObjectParameter("pageNo", typeof(int));
... ... @@ -4156,7 +4252,7 @@ namespace AIAHTML5.ADMIN.API.Entity
4156 4252 new ObjectParameter("pageLength", pageLength) :
4157 4253 new ObjectParameter("pageLength", typeof(int));
4158 4254  
4159   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetNetAdSummaryReport_Result>("usp_GetNetAdSummaryReport", sFromDateParameter, sToDateParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeIdParameter, pageNoParameter, pageLengthParameter, recordCount);
  4255 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetNetAdSummaryReport_Result>("usp_GetNetAdSummaryReport", sFromDateParameter, sToDateParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeIdParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
4160 4256 }
4161 4257  
4162 4258 public virtual ObjectResult<string> usp_GetSearchUser(string sFirstName, string sLastName, string sEmailId, string sAccoutNumber, Nullable<int> iUserTypeId, Nullable<int> iAccountTypeId, Nullable<int> iLoginUserType, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
... ... @@ -4259,7 +4355,7 @@ namespace AIAHTML5.ADMIN.API.Entity
4259 4355 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSiteLicenseUsageReport_Result>("usp_GetSiteLicenseUsageReport", sFromDateParameter, sToDateParameter, sAccoutNumberParameter, iEditionIdParameter, pageNoParameter, pageLengthParameter, recordCount);
4260 4356 }
4261 4357  
4262   - public virtual ObjectResult<usp_GetSiteLicenseUsageReports_Result> usp_GetSiteLicenseUsageReports(string sFromDate, string sToDate, string sAccoutNumber, Nullable<byte> iEditionId, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4358 + public virtual ObjectResult<usp_GetSiteLicenseUsageReports_Result> usp_GetSiteLicenseUsageReports(string sFromDate, string sToDate, string sAccoutNumber, Nullable<byte> iEditionId, Nullable<byte> iloginTypeId, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
4263 4359 {
4264 4360 var sFromDateParameter = sFromDate != null ?
4265 4361 new ObjectParameter("sFromDate", sFromDate) :
... ... @@ -4277,6 +4373,18 @@ namespace AIAHTML5.ADMIN.API.Entity
4277 4373 new ObjectParameter("iEditionId", iEditionId) :
4278 4374 new ObjectParameter("iEditionId", typeof(byte));
4279 4375  
  4376 + var iloginTypeIdParameter = iloginTypeId.HasValue ?
  4377 + new ObjectParameter("iloginTypeId", iloginTypeId) :
  4378 + new ObjectParameter("iloginTypeId", typeof(byte));
  4379 +
  4380 + var sortColumnParameter = sortColumn != null ?
  4381 + new ObjectParameter("sortColumn", sortColumn) :
  4382 + new ObjectParameter("sortColumn", typeof(string));
  4383 +
  4384 + var sortOrderParameter = sortOrder != null ?
  4385 + new ObjectParameter("sortOrder", sortOrder) :
  4386 + new ObjectParameter("sortOrder", typeof(string));
  4387 +
4280 4388 var pageNoParameter = pageNo.HasValue ?
4281 4389 new ObjectParameter("pageNo", pageNo) :
4282 4390 new ObjectParameter("pageNo", typeof(int));
... ... @@ -4285,10 +4393,10 @@ namespace AIAHTML5.ADMIN.API.Entity
4285 4393 new ObjectParameter("pageLength", pageLength) :
4286 4394 new ObjectParameter("pageLength", typeof(int));
4287 4395  
4288   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSiteLicenseUsageReports_Result>("usp_GetSiteLicenseUsageReports", sFromDateParameter, sToDateParameter, sAccoutNumberParameter, iEditionIdParameter, pageNoParameter, pageLengthParameter, recordCount);
  4396 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSiteLicenseUsageReports_Result>("usp_GetSiteLicenseUsageReports", sFromDateParameter, sToDateParameter, sAccoutNumberParameter, iEditionIdParameter, iloginTypeIdParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
4289 4397 }
4290 4398  
4291   - public virtual ObjectResult<usp_GetSubscribedLicenses_Result> usp_GetSubscribedLicenses(string sFromDate, string sToDate, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<byte> iLicenseTypeId, Nullable<byte> iAccountTypeId, string sZip, Nullable<int> iStateId, Nullable<int> iCountryId, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4399 + public virtual ObjectResult<usp_GetSubscribedLicenses_Result> usp_GetSubscribedLicenses(string sFromDate, string sToDate, Nullable<decimal> iStartPrice, Nullable<decimal> iEndPrice, Nullable<byte> iLicenseTypeId, Nullable<byte> iAccountTypeId, string sZip, Nullable<int> iStateId, Nullable<int> iCountryId, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
4292 4400 {
4293 4401 var sFromDateParameter = sFromDate != null ?
4294 4402 new ObjectParameter("sFromDate", sFromDate) :
... ... @@ -4326,6 +4434,14 @@ namespace AIAHTML5.ADMIN.API.Entity
4326 4434 new ObjectParameter("iCountryId", iCountryId) :
4327 4435 new ObjectParameter("iCountryId", typeof(int));
4328 4436  
  4437 + var sortColumnParameter = sortColumn != null ?
  4438 + new ObjectParameter("sortColumn", sortColumn) :
  4439 + new ObjectParameter("sortColumn", typeof(string));
  4440 +
  4441 + var sortOrderParameter = sortOrder != null ?
  4442 + new ObjectParameter("sortOrder", sortOrder) :
  4443 + new ObjectParameter("sortOrder", typeof(string));
  4444 +
4329 4445 var pageNoParameter = pageNo.HasValue ?
4330 4446 new ObjectParameter("pageNo", pageNo) :
4331 4447 new ObjectParameter("pageNo", typeof(int));
... ... @@ -4334,10 +4450,10 @@ namespace AIAHTML5.ADMIN.API.Entity
4334 4450 new ObjectParameter("pageLength", pageLength) :
4335 4451 new ObjectParameter("pageLength", typeof(int));
4336 4452  
4337   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSubscribedLicenses_Result>("usp_GetSubscribedLicenses", sFromDateParameter, sToDateParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeIdParameter, iAccountTypeIdParameter, sZipParameter, iStateIdParameter, iCountryIdParameter, pageNoParameter, pageLengthParameter, recordCount);
  4453 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetSubscribedLicenses_Result>("usp_GetSubscribedLicenses", sFromDateParameter, sToDateParameter, iStartPriceParameter, iEndPriceParameter, iLicenseTypeIdParameter, iAccountTypeIdParameter, sZipParameter, iStateIdParameter, iCountryIdParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
4338 4454 }
4339 4455  
4340   - public virtual ObjectResult<usp_GetUsageReport_Result> usp_GetUsageReport(string sFromDate, string sToDate, string sAccoutNumber, string sZip, Nullable<int> iState, Nullable<int> iCountry, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4456 + public virtual ObjectResult<usp_GetUsageReport_Result> usp_GetUsageReport(string sFromDate, string sToDate, string sAccoutNumber, string sZip, Nullable<int> iState, Nullable<int> iCountry, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
4341 4457 {
4342 4458 var sFromDateParameter = sFromDate != null ?
4343 4459 new ObjectParameter("sFromDate", sFromDate) :
... ... @@ -4363,6 +4479,14 @@ namespace AIAHTML5.ADMIN.API.Entity
4363 4479 new ObjectParameter("iCountry", iCountry) :
4364 4480 new ObjectParameter("iCountry", typeof(int));
4365 4481  
  4482 + var sortColumnParameter = sortColumn != null ?
  4483 + new ObjectParameter("sortColumn", sortColumn) :
  4484 + new ObjectParameter("sortColumn", typeof(string));
  4485 +
  4486 + var sortOrderParameter = sortOrder != null ?
  4487 + new ObjectParameter("sortOrder", sortOrder) :
  4488 + new ObjectParameter("sortOrder", typeof(string));
  4489 +
4366 4490 var pageNoParameter = pageNo.HasValue ?
4367 4491 new ObjectParameter("pageNo", pageNo) :
4368 4492 new ObjectParameter("pageNo", typeof(int));
... ... @@ -4371,7 +4495,7 @@ namespace AIAHTML5.ADMIN.API.Entity
4371 4495 new ObjectParameter("pageLength", pageLength) :
4372 4496 new ObjectParameter("pageLength", typeof(int));
4373 4497  
4374   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetUsageReport_Result>("usp_GetUsageReport", sFromDateParameter, sToDateParameter, sAccoutNumberParameter, sZipParameter, iStateParameter, iCountryParameter, pageNoParameter, pageLengthParameter, recordCount);
  4498 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetUsageReport_Result>("usp_GetUsageReport", sFromDateParameter, sToDateParameter, sAccoutNumberParameter, sZipParameter, iStateParameter, iCountryParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
4375 4499 }
4376 4500  
4377 4501 public virtual ObjectResult<string> usp_GetUserList(string sFirstName, string sLastName, string sEmailId, string sAccoutNumber, Nullable<int> iUserTypeId, Nullable<int> iAccountTypeId, Nullable<int> iLoginUserType, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
... ... @@ -4415,7 +4539,7 @@ namespace AIAHTML5.ADMIN.API.Entity
4415 4539 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<string>("usp_GetUserList", sFirstNameParameter, sLastNameParameter, sEmailIdParameter, sAccoutNumberParameter, iUserTypeIdParameter, iAccountTypeIdParameter, iLoginUserTypeParameter, pageNoParameter, pageLengthParameter, recordCount);
4416 4540 }
4417 4541  
4418   - public virtual ObjectResult<usp_GetUsersList_Result> usp_GetUsersList(string sFirstName, string sLastName, string sEmailId, string sAccoutNumber, Nullable<int> iUserTypeId, Nullable<int> iAccountTypeId, Nullable<int> iLoginUserType, Nullable<bool> iLoginStatus, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
  4542 + public virtual ObjectResult<usp_GetUsersList_Result> usp_GetUsersList(string sFirstName, string sLastName, string sEmailId, string sAccoutNumber, Nullable<int> iUserTypeId, Nullable<int> iAccountTypeId, Nullable<int> iLoginUserType, Nullable<bool> iLoginStatus, string sortColumn, string sortOrder, Nullable<int> pageNo, Nullable<int> pageLength, ObjectParameter recordCount)
4419 4543 {
4420 4544 var sFirstNameParameter = sFirstName != null ?
4421 4545 new ObjectParameter("sFirstName", sFirstName) :
... ... @@ -4449,6 +4573,14 @@ namespace AIAHTML5.ADMIN.API.Entity
4449 4573 new ObjectParameter("iLoginStatus", iLoginStatus) :
4450 4574 new ObjectParameter("iLoginStatus", typeof(bool));
4451 4575  
  4576 + var sortColumnParameter = sortColumn != null ?
  4577 + new ObjectParameter("sortColumn", sortColumn) :
  4578 + new ObjectParameter("sortColumn", typeof(string));
  4579 +
  4580 + var sortOrderParameter = sortOrder != null ?
  4581 + new ObjectParameter("sortOrder", sortOrder) :
  4582 + new ObjectParameter("sortOrder", typeof(string));
  4583 +
4452 4584 var pageNoParameter = pageNo.HasValue ?
4453 4585 new ObjectParameter("pageNo", pageNo) :
4454 4586 new ObjectParameter("pageNo", typeof(int));
... ... @@ -4457,7 +4589,7 @@ namespace AIAHTML5.ADMIN.API.Entity
4457 4589 new ObjectParameter("pageLength", pageLength) :
4458 4590 new ObjectParameter("pageLength", typeof(int));
4459 4591  
4460   - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetUsersList_Result>("usp_GetUsersList", sFirstNameParameter, sLastNameParameter, sEmailIdParameter, sAccoutNumberParameter, iUserTypeIdParameter, iAccountTypeIdParameter, iLoginUserTypeParameter, iLoginStatusParameter, pageNoParameter, pageLengthParameter, recordCount);
  4592 + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<usp_GetUsersList_Result>("usp_GetUsersList", sFirstNameParameter, sLastNameParameter, sEmailIdParameter, sAccoutNumberParameter, iUserTypeIdParameter, iAccountTypeIdParameter, iLoginUserTypeParameter, iLoginStatusParameter, sortColumnParameter, sortOrderParameter, pageNoParameter, pageLengthParameter, recordCount);
4461 4593 }
4462 4594  
4463 4595 public virtual ObjectResult<usp_GetUserTyeByAccountNumber_Result> usp_GetUserTyeByAccountNumber(Nullable<byte> iUserTypeId, Nullable<int> iLicenseId)
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.edmx
... ... @@ -644,10 +644,6 @@
644 644 <Function Name="InsertLoginDetail" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
645 645 <Parameter Name="iUserId" Type="int" Mode="In" />
646 646 </Function>
647   - <Function Name="InsertLoginDetail_1" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
648   - <Parameter Name="iUserId" Type="int" Mode="In" />
649   - <Parameter Name="CallFromURL" Type="nvarchar" Mode="In" />
650   - </Function>
651 647 <Function Name="InsertLoginDetailsInSessionManager" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
652 648 <Parameter Name="sSessionId" Type="varchar" Mode="In" />
653 649 <Parameter Name="iUserId" Type="int" Mode="In" />
... ... @@ -980,6 +976,8 @@
980 976 <Parameter Name="sZip" Type="varchar" Mode="In" />
981 977 <Parameter Name="iStateId" Type="int" Mode="In" />
982 978 <Parameter Name="iCountryId" Type="int" Mode="In" />
  979 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  980 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
983 981 <Parameter Name="pageNo" Type="int" Mode="In" />
984 982 <Parameter Name="pageLength" Type="int" Mode="In" />
985 983 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -994,6 +992,8 @@
994 992 <Parameter Name="sZip" Type="varchar" Mode="In" />
995 993 <Parameter Name="iState" Type="int" Mode="In" />
996 994 <Parameter Name="iCountry" Type="int" Mode="In" />
  995 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  996 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
997 997 <Parameter Name="pageNo" Type="int" Mode="In" />
998 998 <Parameter Name="pageLength" Type="int" Mode="In" />
999 999 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1002,6 +1002,8 @@
1002 1002 <Parameter Name="sDiscountCode" Type="varchar" Mode="In" />
1003 1003 <Parameter Name="sStartDate" Type="varchar" Mode="In" />
1004 1004 <Parameter Name="sEndDate" Type="varchar" Mode="In" />
  1005 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1006 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1005 1007 <Parameter Name="pageNo" Type="int" Mode="In" />
1006 1008 <Parameter Name="pageLength" Type="int" Mode="In" />
1007 1009 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1011,6 +1013,8 @@
1011 1013 <Parameter Name="sEndDate" Type="varchar" Mode="In" />
1012 1014 <Parameter Name="intDiscountID" Type="int" Mode="In" />
1013 1015 <Parameter Name="sAccoutNumber" Type="varchar" Mode="In" />
  1016 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1017 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1014 1018 <Parameter Name="pageNo" Type="int" Mode="In" />
1015 1019 <Parameter Name="pageLength" Type="int" Mode="In" />
1016 1020 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1026,6 +1030,8 @@
1026 1030 <Parameter Name="sZip" Type="varchar" Mode="In" />
1027 1031 <Parameter Name="iStateId" Type="int" Mode="In" />
1028 1032 <Parameter Name="iCountryId" Type="int" Mode="In" />
  1033 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1034 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1029 1035 <Parameter Name="pageNo" Type="int" Mode="In" />
1030 1036 <Parameter Name="pageLength" Type="int" Mode="In" />
1031 1037 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1034,6 +1040,8 @@
1034 1040 <Parameter Name="sStartDate" Type="varchar" Mode="In" />
1035 1041 <Parameter Name="sEndDate" Type="varchar" Mode="In" />
1036 1042 <Parameter Name="sAccoutNumber" Type="varchar" Mode="In" />
  1043 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1044 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1037 1045 <Parameter Name="pageNo" Type="int" Mode="In" />
1038 1046 <Parameter Name="pageLength" Type="int" Mode="In" />
1039 1047 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1082,6 +1090,8 @@
1082 1090 <Parameter Name="iStateId" Type="int" Mode="In" />
1083 1091 <Parameter Name="iCountryId" Type="int" Mode="In" />
1084 1092 <Parameter Name="bisActive" Type="bit" Mode="In" />
  1093 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1094 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1085 1095 <Parameter Name="pageNo" Type="int" Mode="In" />
1086 1096 <Parameter Name="pageLength" Type="int" Mode="In" />
1087 1097 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1089,6 +1099,8 @@
1089 1099 <Function Name="usp_GetLicenseTypes" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" />
1090 1100 <Function Name="usp_GetLicenseUserGroups" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
1091 1101 <Parameter Name="LicenseId" Type="int" Mode="In" />
  1102 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1103 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1092 1104 <Parameter Name="pageNo" Type="int" Mode="In" />
1093 1105 <Parameter Name="pageLength" Type="int" Mode="In" />
1094 1106 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1097,6 +1109,8 @@
1097 1109 <Parameter Name="licenseId" Type="int" Mode="In" />
1098 1110 <Parameter Name="groupId" Type="int" Mode="In" />
1099 1111 <Parameter Name="allUsers" Type="bit" Mode="In" />
  1112 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1113 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1100 1114 <Parameter Name="pageNo" Type="int" Mode="In" />
1101 1115 <Parameter Name="pageLength" Type="int" Mode="In" />
1102 1116 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1118,6 +1132,8 @@
1118 1132 <Parameter Name="iStartPrice" Type="numeric" Mode="In" />
1119 1133 <Parameter Name="iEndPrice" Type="numeric" Mode="In" />
1120 1134 <Parameter Name="iLicenseTypeId" Type="tinyint" Mode="In" />
  1135 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1136 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1121 1137 <Parameter Name="pageNo" Type="int" Mode="In" />
1122 1138 <Parameter Name="pageLength" Type="int" Mode="In" />
1123 1139 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1150,6 +1166,8 @@
1150 1166 </Function>
1151 1167 <Function Name="usp_GetSiteAccountSites" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
1152 1168 <Parameter Name="strAccountNumber" Type="varchar" Mode="In" />
  1169 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1170 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1153 1171 <Parameter Name="pageNo" Type="int" Mode="In" />
1154 1172 <Parameter Name="pageLength" Type="int" Mode="In" />
1155 1173 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1177,6 +1195,9 @@
1177 1195 <Parameter Name="sToDate" Type="varchar" Mode="In" />
1178 1196 <Parameter Name="sAccoutNumber" Type="varchar" Mode="In" />
1179 1197 <Parameter Name="iEditionId" Type="tinyint" Mode="In" />
  1198 + <Parameter Name="iloginTypeId" Type="tinyint" Mode="In" />
  1199 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1200 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1180 1201 <Parameter Name="pageNo" Type="int" Mode="In" />
1181 1202 <Parameter Name="pageLength" Type="int" Mode="In" />
1182 1203 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1191,12 +1212,16 @@
1191 1212 <Parameter Name="sZip" Type="varchar" Mode="In" />
1192 1213 <Parameter Name="iStateId" Type="int" Mode="In" />
1193 1214 <Parameter Name="iCountryId" Type="int" Mode="In" />
  1215 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1216 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1194 1217 <Parameter Name="pageNo" Type="int" Mode="In" />
1195 1218 <Parameter Name="pageLength" Type="int" Mode="In" />
1196 1219 <Parameter Name="recordCount" Type="int" Mode="InOut" />
1197 1220 </Function>
1198 1221 <Function Name="usp_GetSubscriptionPlans" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
1199 1222 <Parameter Name="iEditionId" Type="tinyint" Mode="In" />
  1223 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1224 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1200 1225 <Parameter Name="pageNo" Type="int" Mode="In" />
1201 1226 <Parameter Name="pageLength" Type="int" Mode="In" />
1202 1227 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1208,6 +1233,8 @@
1208 1233 <Parameter Name="sZip" Type="varchar" Mode="In" />
1209 1234 <Parameter Name="iState" Type="int" Mode="In" />
1210 1235 <Parameter Name="iCountry" Type="int" Mode="In" />
  1236 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1237 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1211 1238 <Parameter Name="pageNo" Type="int" Mode="In" />
1212 1239 <Parameter Name="pageLength" Type="int" Mode="In" />
1213 1240 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -1233,6 +1260,8 @@
1233 1260 <Parameter Name="iAccountTypeId" Type="int" Mode="In" />
1234 1261 <Parameter Name="iLoginUserType" Type="int" Mode="In" />
1235 1262 <Parameter Name="iLoginStatus" Type="bit" Mode="In" />
  1263 + <Parameter Name="sortColumn" Type="varchar" Mode="In" />
  1264 + <Parameter Name="sortOrder" Type="varchar" Mode="In" />
1236 1265 <Parameter Name="pageNo" Type="int" Mode="In" />
1237 1266 <Parameter Name="pageLength" Type="int" Mode="In" />
1238 1267 <Parameter Name="recordCount" Type="int" Mode="InOut" />
... ... @@ -2459,6 +2488,8 @@
2459 2488 <Parameter Name="iStateId" Mode="In" Type="Int32" />
2460 2489 <Parameter Name="iCountryId" Mode="In" Type="Int32" />
2461 2490 <Parameter Name="bisActive" Mode="In" Type="Boolean" />
  2491 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2492 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2462 2493 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2463 2494 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2464 2495 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2466,6 +2497,8 @@
2466 2497 <FunctionImport Name="usp_GetLicenseTypes" ReturnType="Collection(AIADatabaseV5Model.usp_GetLicenseTypes_Result)" />
2467 2498 <FunctionImport Name="usp_GetLicenseUserGroups" ReturnType="Collection(AIADatabaseV5Model.usp_GetLicenseUserGroups_Result)">
2468 2499 <Parameter Name="LicenseId" Mode="In" Type="Int32" />
  2500 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2501 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2469 2502 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2470 2503 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2471 2504 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2486,6 +2519,8 @@
2486 2519 </FunctionImport>
2487 2520 <FunctionImport Name="usp_GetSubscriptionPlans" ReturnType="Collection(AIADatabaseV5Model.usp_GetSubscriptionPlans_Result)">
2488 2521 <Parameter Name="iEditionId" Mode="In" Type="Byte" />
  2522 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2523 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2489 2524 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2490 2525 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2491 2526 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2625,6 +2660,8 @@
2625 2660 <Parameter Name="licenseId" Mode="In" Type="Int32" />
2626 2661 <Parameter Name="groupId" Mode="In" Type="Int32" />
2627 2662 <Parameter Name="allUsers" Mode="In" Type="Boolean" />
  2663 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2664 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2628 2665 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2629 2666 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2630 2667 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2666,6 +2703,8 @@
2666 2703 </FunctionImport>
2667 2704 <FunctionImport Name="usp_GetSiteAccountSites" ReturnType="Collection(AIADatabaseV5Model.usp_GetSiteAccountSites_Result)">
2668 2705 <Parameter Name="strAccountNumber" Mode="In" Type="String" />
  2706 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2707 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2669 2708 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2670 2709 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2671 2710 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2694,6 +2733,8 @@
2694 2733 <Parameter Name="sZip" Mode="In" Type="String" />
2695 2734 <Parameter Name="iStateId" Mode="In" Type="Int32" />
2696 2735 <Parameter Name="iCountryId" Mode="In" Type="Int32" />
  2736 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2737 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2697 2738 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2698 2739 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2699 2740 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2708,6 +2749,8 @@
2708 2749 <Parameter Name="sZip" Mode="In" Type="String" />
2709 2750 <Parameter Name="iState" Mode="In" Type="Int32" />
2710 2751 <Parameter Name="iCountry" Mode="In" Type="Int32" />
  2752 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2753 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2711 2754 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2712 2755 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2713 2756 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2716,6 +2759,8 @@
2716 2759 <Parameter Name="sDiscountCode" Mode="In" Type="String" />
2717 2760 <Parameter Name="sStartDate" Mode="In" Type="String" />
2718 2761 <Parameter Name="sEndDate" Mode="In" Type="String" />
  2762 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2763 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2719 2764 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2720 2765 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2721 2766 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2725,6 +2770,8 @@
2725 2770 <Parameter Name="sEndDate" Mode="In" Type="String" />
2726 2771 <Parameter Name="intDiscountID" Mode="In" Type="Int32" />
2727 2772 <Parameter Name="sAccoutNumber" Mode="In" Type="String" />
  2773 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2774 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2728 2775 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2729 2776 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2730 2777 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2739,6 +2786,8 @@
2739 2786 <Parameter Name="sZip" Mode="In" Type="String" />
2740 2787 <Parameter Name="iStateId" Mode="In" Type="Int32" />
2741 2788 <Parameter Name="iCountryId" Mode="In" Type="Int32" />
  2789 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2790 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2742 2791 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2743 2792 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2744 2793 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2747,6 +2796,8 @@
2747 2796 <Parameter Name="sStartDate" Mode="In" Type="String" />
2748 2797 <Parameter Name="sEndDate" Mode="In" Type="String" />
2749 2798 <Parameter Name="sAccoutNumber" Mode="In" Type="String" />
  2799 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2800 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2750 2801 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2751 2802 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2752 2803 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2773,6 +2824,8 @@
2773 2824 <Parameter Name="iStartPrice" Mode="In" Type="Decimal" />
2774 2825 <Parameter Name="iEndPrice" Mode="In" Type="Decimal" />
2775 2826 <Parameter Name="iLicenseTypeId" Mode="In" Type="Byte" />
  2827 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2828 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2776 2829 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2777 2830 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2778 2831 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2813,6 +2866,9 @@
2813 2866 <Parameter Name="sToDate" Mode="In" Type="String" />
2814 2867 <Parameter Name="sAccoutNumber" Mode="In" Type="String" />
2815 2868 <Parameter Name="iEditionId" Mode="In" Type="Byte" />
  2869 + <Parameter Name="iloginTypeId" Mode="In" Type="Byte" />
  2870 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2871 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2816 2872 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2817 2873 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2818 2874 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2827,6 +2883,8 @@
2827 2883 <Parameter Name="sZip" Mode="In" Type="String" />
2828 2884 <Parameter Name="iStateId" Mode="In" Type="Int32" />
2829 2885 <Parameter Name="iCountryId" Mode="In" Type="Int32" />
  2886 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2887 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2830 2888 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2831 2889 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2832 2890 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2838,6 +2896,8 @@
2838 2896 <Parameter Name="sZip" Mode="In" Type="String" />
2839 2897 <Parameter Name="iState" Mode="In" Type="Int32" />
2840 2898 <Parameter Name="iCountry" Mode="In" Type="Int32" />
  2899 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2900 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2841 2901 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2842 2902 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2843 2903 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -2863,6 +2923,8 @@
2863 2923 <Parameter Name="iAccountTypeId" Mode="In" Type="Int32" />
2864 2924 <Parameter Name="iLoginUserType" Mode="In" Type="Int32" />
2865 2925 <Parameter Name="iLoginStatus" Mode="In" Type="Boolean" />
  2926 + <Parameter Name="sortColumn" Mode="In" Type="String" />
  2927 + <Parameter Name="sortOrder" Mode="In" Type="String" />
2866 2928 <Parameter Name="pageNo" Mode="In" Type="Int32" />
2867 2929 <Parameter Name="pageLength" Mode="In" Type="Int32" />
2868 2930 <Parameter Name="recordCount" Mode="InOut" Type="Int32" />
... ... @@ -3905,26 +3967,25 @@
3905 3967 </ComplexType>
3906 3968 <ComplexType Name="usp_GetlicensesList_Result">
3907 3969 <Property Type="Int32" Name="LicenseId" Nullable="false" />
3908   - <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="16" />
3909   - <Property Type="String" Name="LicenseType" Nullable="false" MaxLength="50" />
3910   - <Property Type="String" Name="AccountType" Nullable="false" MaxLength="50" />
3911   - <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="100" />
3912   - <Property Type="String" Name="LicenseState" Nullable="false" MaxLength="50" />
3913   - <Property Type="String" Name="LicenseCountry" Nullable="false" MaxLength="50" />
3914   - <Property Type="String" Name="EmailId" Nullable="true" MaxLength="50" />
  3970 + <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="50" />
  3971 + <Property Type="String" Name="LicenseType" Nullable="true" MaxLength="30" />
  3972 + <Property Type="String" Name="AccountType" Nullable="true" MaxLength="30" />
  3973 + <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="200" />
  3974 + <Property Type="String" Name="LicenseState" Nullable="true" MaxLength="50" />
  3975 + <Property Type="String" Name="LicenseCountry" Nullable="true" MaxLength="50" />
  3976 + <Property Type="String" Name="EmailId" Nullable="true" MaxLength="100" />
3915 3977 <Property Type="Int32" Name="CardNumber" Nullable="true" />
3916   - <Property Type="String" Name="ProductKey" Nullable="true" MaxLength="50" />
  3978 + <Property Type="String" Name="ProductKey" Nullable="true" MaxLength="100" />
3917 3979 <Property Type="String" Name="ClientAdmin" Nullable="true" />
3918   - <Property Type="String" Name="LicenseeName" Nullable="false" MaxLength="101" />
3919   - <Property Type="String" Name="ContactAddress" Nullable="false" MaxLength="252" />
3920   - <Property Type="String" Name="EntryDate" Nullable="true" MaxLength="30" />
3921   - <Property Type="String" Name="LicenseStatus" Nullable="false" MaxLength="8" />
3922   - <Property Type="String" Name="ModifyDate" Nullable="false" MaxLength="30" />
3923   - <Property Type="String" Name="StartDate" Nullable="true" MaxLength="30" />
3924   - <Property Type="String" Name="RenewDate" Nullable="false" MaxLength="30" />
3925   - <Property Type="String" Name="EndDate" Nullable="true" MaxLength="30" />
  3980 + <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="200" />
  3981 + <Property Type="String" Name="ContactAddress" Nullable="true" MaxLength="252" />
  3982 + <Property Type="DateTime" Name="EntryDate" Nullable="true" Precision="23" />
  3983 + <Property Type="String" Name="LicenseStatus" Nullable="true" MaxLength="20" />
  3984 + <Property Type="DateTime" Name="ModifyDate" Nullable="true" Precision="23" />
  3985 + <Property Type="DateTime" Name="StartDate" Nullable="true" Precision="23" />
  3986 + <Property Type="DateTime" Name="RenewDate" Nullable="true" Precision="23" />
  3987 + <Property Type="DateTime" Name="EndDate" Nullable="true" Precision="23" />
3926 3988 <Property Type="Int32" Name="NoofImages" Nullable="true" />
3927   - <Property Type="Int64" Name="RowNo" Nullable="true" />
3928 3989 </ComplexType>
3929 3990 <ComplexType Name="usp_GetLicenseTypes_Result">
3930 3991 <Property Type="Byte" Name="Id" Nullable="false" />
... ... @@ -3939,7 +4000,6 @@
3939 4000 <Property Type="DateTime" Name="ModifiedDate" Nullable="true" Precision="23" />
3940 4001 <Property Type="Boolean" Name="IsActive" Nullable="false" />
3941 4002 <Property Type="Int32" Name="TotalUsers" Nullable="true" />
3942   - <Property Type="Int64" Name="RowNo" Nullable="true" />
3943 4003 </ComplexType>
3944 4004 <ComplexType Name="usp_GetManageRights_Result">
3945 4005 <Property Type="Int32" Name="Id" Nullable="false" />
... ... @@ -3983,12 +4043,12 @@
3983 4043 <Property Type="String" Name="EmailId" Nullable="true" MaxLength="50" />
3984 4044 </ComplexType>
3985 4045 <ComplexType Name="usp_GetSubscriptionPlans_Result">
3986   - <Property Type="Decimal" Name="price" Nullable="true" Precision="14" Scale="2" />
3987   - <Property Type="String" Name="title" Nullable="false" MaxLength="50" />
3988   - <Property Type="Int16" Name="Id" Nullable="false" />
  4046 + <Property Type="Int32" Name="Id" Nullable="false" />
3989 4047 <Property Type="Byte" Name="EditionId" Nullable="false" />
3990 4048 <Property Type="Byte" Name="Duration" Nullable="false" />
3991 4049 <Property Type="Boolean" Name="IsActive" Nullable="false" />
  4050 + <Property Type="String" Name="Title" Nullable="false" MaxLength="100" />
  4051 + <Property Type="Decimal" Name="Price" Nullable="true" Precision="14" Scale="2" />
3992 4052 </ComplexType>
3993 4053 <ComplexType Name="usp_GetUserType_Result">
3994 4054 <Property Type="Byte" Name="Id" Nullable="false" />
... ... @@ -4055,14 +4115,13 @@
4055 4115 </ReferentialConstraint>
4056 4116 </Association>
4057 4117 <ComplexType Name="usp_GetLicenseUserGroupUsers_Result">
4058   - <Property Type="Int64" Name="RowNo" Nullable="true" />
4059 4118 <Property Type="Int32" Name="Id" Nullable="false" />
4060 4119 <Property Type="String" Name="FirstName" Nullable="true" MaxLength="100" />
4061 4120 <Property Type="String" Name="LastName" Nullable="true" MaxLength="100" />
4062 4121 <Property Type="String" Name="LoginId" Nullable="false" MaxLength="50" />
4063 4122 <Property Type="String" Name="EmailId" Nullable="true" MaxLength="50" />
4064   - <Property Type="String" Name="Title" Nullable="false" MaxLength="50" />
4065   - <Property Type="Int32" Name="InGroup" Nullable="false" />
  4123 + <Property Type="Boolean" Name="InGroup" Nullable="false" />
  4124 + <Property Type="String" Name="ProductEdition" Nullable="false" MaxLength="50" />
4066 4125 </ComplexType>
4067 4126 <ComplexType Name="usp_InsertResellerLicenseAccount_Result">
4068 4127 <Property Type="String" Name="SPStatus" Nullable="true" MaxLength="2" />
... ... @@ -4089,18 +4148,16 @@
4089 4148 </ComplexType>
4090 4149 <ComplexType Name="usp_GetSiteAccountSites_Result">
4091 4150 <Property Type="Int32" Name="Id" Nullable="false" />
4092   - <Property Type="String" Name="SiteIp" Nullable="true" MaxLength="2000" />
4093 4151 <Property Type="String" Name="Title" Nullable="true" MaxLength="100" />
4094   - <Property Type="String" Name="SiteIPTo" Nullable="false" MaxLength="100" />
4095   - <Property Type="String" Name="SiteMasterIPTo" Nullable="false" MaxLength="100" />
4096   - <Property Type="String" Name="CreationDate" Nullable="true" MaxLength="30" />
4097   - <Property Type="String" Name="ModifiedDate" Nullable="true" MaxLength="30" />
  4152 + <Property Type="DateTime" Name="CreationDate" Nullable="true" Precision="23" />
  4153 + <Property Type="DateTime" Name="ModifiedDate" Nullable="true" Precision="23" />
4098 4154 <Property Type="String" Name="InstituteName" Nullable="true" MaxLength="100" />
4099 4155 <Property Type="String" Name="Department" Nullable="true" MaxLength="50" />
4100   - <Property Type="Int32" Name="UserId" Nullable="false" />
4101   - <Property Type="String" Name="FirstName" Nullable="true" MaxLength="100" />
4102   - <Property Type="String" Name="EmailId" Nullable="true" MaxLength="50" />
4103   - </ComplexType>
  4156 + <Property Type="String" Name="Ip" Nullable="true" />
  4157 + <Property Type="String" Name="SiteIpTo" Nullable="true" MaxLength="100" />
  4158 + <Property Type="String" Name="SiteUserFirstName" Nullable="true" MaxLength="50" />
  4159 + <Property Type="String" Name="SiteUserEmailId" Nullable="true" MaxLength="50" />
  4160 + </ComplexType>
4104 4161 <ComplexType Name="usp_EC_GetAccountTypeList_Result">
4105 4162 <Property Type="Byte" Name="Id" Nullable="false" />
4106 4163 <Property Type="String" Name="Title" Nullable="false" MaxLength="50" />
... ... @@ -4132,81 +4189,75 @@
4132 4189 <Property Type="DateTime" Name="LoginTime" Nullable="true" Precision="23" />
4133 4190 </ComplexType>
4134 4191 <ComplexType Name="usp_GetCancelledLicenses_Result">
4135   - <Property Type="Int64" Name="Serial_No" Nullable="true" />
4136 4192 <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="50" />
4137   - <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="100" />
  4193 + <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="200" />
4138 4194 <Property Type="String" Name="LicenseType" Nullable="true" MaxLength="50" />
4139 4195 <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="100" />
4140 4196 <Property Type="String" Name="AccountType" Nullable="true" MaxLength="50" />
4141 4197 <Property Type="String" Name="Edition" Nullable="true" MaxLength="200" />
4142   - <Property Type="String" Name="StartDate" Nullable="true" MaxLength="30" />
4143   - <Property Type="String" Name="EndDate" Nullable="true" MaxLength="30" />
4144   - <Property Type="String" Name="LicenseCreationDate" Nullable="true" MaxLength="30" />
  4198 + <Property Type="DateTime" Name="StartDate" Nullable="true" Precision="23" />
  4199 + <Property Type="DateTime" Name="EndDate" Nullable="true" Precision="23" />
  4200 + <Property Type="DateTime" Name="LicenseCreationDate" Nullable="true" Precision="23" />
4145 4201 <Property Type="Decimal" Name="SubscriptionPrice" Nullable="true" Precision="14" Scale="2" />
4146 4202 <Property Type="Int32" Name="CardNumber" Nullable="true" />
4147 4203 </ComplexType>
4148 4204 <ComplexType Name="usp_GetCustomerSummary_Result">
4149   - <Property Type="Int64" Name="Serial_No" Nullable="true" />
4150 4205 <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="50" />
4151   - <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="100" />
  4206 + <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="200" />
4152 4207 <Property Type="String" Name="LicenseType" Nullable="true" MaxLength="50" />
4153 4208 <Property Type="String" Name="AccountType" Nullable="true" MaxLength="50" />
4154 4209 <Property Type="String" Name="Edition" Nullable="true" MaxLength="200" />
4155 4210 <Property Type="String" Name="Email" Nullable="true" MaxLength="100" />
4156   - <Property Type="String" Name="StartDate" Nullable="true" MaxLength="30" />
4157   - <Property Type="String" Name="EndDate" Nullable="true" MaxLength="30" />
4158 4211 <Property Type="String" Name="LicenseStatus" Nullable="true" MaxLength="8" />
4159   - <Property Type="Decimal" Name="Price" Nullable="true" Precision="14" Scale="2" />
  4212 + <Property Type="Decimal" Name="Price" Nullable="true" Precision="19" />
4160 4213 <Property Type="String" Name="LicenseZip" Nullable="true" MaxLength="20" />
4161 4214 <Property Type="String" Name="LicenseState" Nullable="true" MaxLength="50" />
4162 4215 <Property Type="String" Name="LicenseCountry" Nullable="true" MaxLength="50" />
4163 4216 <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="100" />
4164   - <Property Type="String" Name="LicenseCreationDate" Nullable="true" MaxLength="30" />
4165   - <Property Type="Int32" Name="CardNumber" Nullable="false" />
4166   - </ComplexType>
  4217 + <Property Type="DateTime" Name="LicenseCreationDate" Nullable="true" Precision="23" />
  4218 + <Property Type="Int32" Name="CardNumber" Nullable="true" />
  4219 + <Property Type="DateTime" Name="StartDate" Nullable="true" Precision="23" />
  4220 + <Property Type="DateTime" Name="EndDate" Nullable="true" Precision="23" />
  4221 + </ComplexType>
4167 4222 <ComplexType Name="usp_GetDiscountCodes_Result">
4168 4223 <Property Type="Int32" Name="Id" Nullable="false" />
4169   - <Property Type="String" Name="DiscountCode" Nullable="true" MaxLength="255" />
  4224 + <Property Type="String" Name="DiscountCode" Nullable="true" MaxLength="256" />
4170 4225 <Property Type="Decimal" Name="Percentage" Nullable="false" Precision="5" Scale="2" />
4171   - <Property Type="String" Name="StartDate" Nullable="true" MaxLength="10" />
4172   - <Property Type="String" Name="EndDate" Nullable="true" MaxLength="10" />
4173   - <Property Type="String" Name="Status" Nullable="false" MaxLength="8" />
  4226 + <Property Type="DateTime" Name="StartDate" Nullable="false" Precision="23" />
  4227 + <Property Type="DateTime" Name="EndDate" Nullable="false" Precision="23" />
  4228 + <Property Type="Boolean" Name="IsActive" Nullable="false" />
4174 4229 </ComplexType>
4175 4230 <ComplexType Name="usp_GetDiscountReport_Result">
4176   - <Property Type="Int64" Name="RowNum" Nullable="true" />
4177   - <Property Type="String" Name="DiscountCode" Nullable="true" MaxLength="255" />
4178   - <Property Type="Decimal" Name="Percentage" Nullable="false" Precision="5" Scale="2" />
4179   - <Property Type="String" Name="StartDate" Nullable="true" MaxLength="10" />
4180   - <Property Type="String" Name="EndDate" Nullable="true" MaxLength="10" />
4181   - <Property Type="String" Name="DiscountStatus" Nullable="false" MaxLength="8" />
  4231 + <Property Type="String" Name="DiscountCode" Nullable="true" MaxLength="100" />
  4232 + <Property Type="Decimal" Name="Percentage" Nullable="true" Precision="5" Scale="2" />
  4233 + <Property Type="DateTime" Name="StartDate" Nullable="true" Precision="23" />
  4234 + <Property Type="DateTime" Name="EndDate" Nullable="true" Precision="23" />
  4235 + <Property Type="String" Name="DiscountStatus" Nullable="true" MaxLength="10" />
4182 4236 <Property Type="Int32" Name="TotalLicenses" Nullable="true" />
4183 4237 </ComplexType>
4184 4238 <ComplexType Name="usp_GetExpiringLicenses_Result">
4185   - <Property Type="Int64" Name="Serial_No" Nullable="true" />
4186 4239 <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="50" />
4187   - <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="100" />
  4240 + <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="200" />
4188 4241 <Property Type="String" Name="LicenseType" Nullable="true" MaxLength="50" />
4189 4242 <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="100" />
4190 4243 <Property Type="String" Name="Edition" Nullable="true" MaxLength="200" />
4191   - <Property Type="String" Name="StartDate" Nullable="true" MaxLength="30" />
4192   - <Property Type="String" Name="EndDate" Nullable="true" MaxLength="30" />
4193   - <Property Type="String" Name="LicenseCreationDate" Nullable="true" MaxLength="30" />
  4244 + <Property Type="DateTime" Name="StartDate" Nullable="true" Precision="23" />
  4245 + <Property Type="DateTime" Name="EndDate" Nullable="true" Precision="23" />
  4246 + <Property Type="DateTime" Name="LicenseCreationDate" Nullable="true" Precision="23" />
4194 4247 <Property Type="Decimal" Name="SubscriptionPrice" Nullable="true" Precision="14" Scale="2" />
4195 4248 <Property Type="String" Name="AccountType" Nullable="true" MaxLength="50" />
4196 4249 <Property Type="Int32" Name="DaysRemaining" Nullable="true" />
4197   - <Property Type="Int32" Name="CardNumber" Nullable="false" />
  4250 + <Property Type="Int32" Name="CardNumber" Nullable="true" />
4198 4251 </ComplexType>
4199 4252 <ComplexType Name="usp_GetExportedImageDetails_Result">
4200   - <Property Type="Int64" Name="RowNum" Nullable="true" />
4201   - <Property Type="Int32" Name="LicenseId" Nullable="false" />
4202   - <Property Type="String" Name="ExportedDate" Nullable="true" MaxLength="30" />
4203   - <Property Type="String" Name="ImageName" Nullable="false" MaxLength="2000" />
4204   - <Property Type="String" Name="AccountNumber" Nullable="false" MaxLength="16" />
4205   - <Property Type="String" Name="OriginalFileName" Nullable="true" MaxLength="1000" />
4206   - <Property Type="String" Name="Title" Nullable="true" MaxLength="1000" />
4207   - <Property Type="String" Name="ModuleName" Nullable="true" MaxLength="1000" />
4208   - <Property Type="Int32" Name="ExportLimit" Nullable="false" />
4209   - <Property Type="String" Name="UserName" Nullable="true" MaxLength="201" />
  4253 + <Property Type="DateTime" Name="ExportedDate" Nullable="false" Precision="23" />
  4254 + <Property Type="String" Name="ImageName" Nullable="true" MaxLength="2000" />
  4255 + <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="100" />
  4256 + <Property Type="String" Name="OriginalFileName" Nullable="true" MaxLength="100" />
  4257 + <Property Type="String" Name="Title" Nullable="true" MaxLength="100" />
  4258 + <Property Type="String" Name="ModuleName" Nullable="true" MaxLength="100" />
  4259 + <Property Type="Int32" Name="ExportLimit" Nullable="true" />
  4260 + <Property Type="String" Name="UserName" Nullable="true" MaxLength="100" />
4210 4261 <Property Type="Int32" Name="imageCount" Nullable="true" />
4211 4262 </ComplexType>
4212 4263 <ComplexType Name="usp_GetLicenseByLicenseId_Result">
... ... @@ -4249,11 +4300,10 @@
4249 4300 <Property Type="Boolean" Name="Status" Nullable="false" />
4250 4301 </ComplexType>
4251 4302 <ComplexType Name="usp_GetNetAdSummaryReport_Result">
4252   - <Property Type="Int64" Name="Serial_No" Nullable="true" />
4253 4303 <Property Type="String" Name="LicenseType" Nullable="true" MaxLength="50" />
4254 4304 <Property Type="String" Name="AccountType" Nullable="true" MaxLength="50" />
4255 4305 <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="100" />
4256   - <Property Type="String" Name="LicenseCreationDate" Nullable="true" MaxLength="30" />
  4306 + <Property Type="String" Name="LicenseCreationDate" Nullable="true" MaxLength="10" />
4257 4307 <Property Type="Int32" Name="ActiveSubscription" Nullable="true" />
4258 4308 <Property Type="Int32" Name="RenewSubscription" Nullable="true" />
4259 4309 <Property Type="Int32" Name="InActiveSubscription" Nullable="true" />
... ... @@ -4292,65 +4342,61 @@
4292 4342 <Property Type="String" Name="LastLogin" Nullable="true" MaxLength="30" />
4293 4343 </ComplexType>
4294 4344 <ComplexType Name="usp_GetSiteLicenseUsageReports_Result">
4295   - <Property Type="Int64" Name="Serial_No" Nullable="true" />
4296   - <Property Type="String" Name="AccountNumber" Nullable="false" MaxLength="50" />
4297   - <Property Type="String" Name="EditionTitle" Nullable="false" MaxLength="50" />
  4345 + <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="50" />
  4346 + <Property Type="String" Name="EditionTitle" Nullable="true" MaxLength="50" />
4298 4347 <Property Type="String" Name="ReferalUrl" Nullable="true" MaxLength="100" />
4299   - <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="100" />
4300   - <Property Type="String" Name="LicenseCreationDate" Nullable="true" MaxLength="30" />
  4348 + <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="200" />
  4349 + <Property Type="DateTime" Name="LicenseCreationDate" Nullable="true" Precision="23" />
4301 4350 <Property Type="Int32" Name="TotalLogins" Nullable="true" />
4302   - <Property Type="String" Name="LastLogin" Nullable="true" MaxLength="30" />
  4351 + <Property Type="DateTime" Name="LastLogin" Nullable="true" Precision="23" />
4303 4352 </ComplexType>
4304 4353 <ComplexType Name="usp_GetSubscribedLicenses_Result">
4305   - <Property Type="Int64" Name="Serial_No" Nullable="true" />
4306 4354 <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="50" />
4307   - <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="100" />
  4355 + <Property Type="String" Name="LicenseeName" Nullable="true" MaxLength="200" />
4308 4356 <Property Type="String" Name="LicenseType" Nullable="true" MaxLength="50" />
4309 4357 <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="100" />
4310 4358 <Property Type="String" Name="AccountType" Nullable="true" MaxLength="50" />
4311 4359 <Property Type="String" Name="Edition" Nullable="true" MaxLength="200" />
4312   - <Property Type="String" Name="StartDate" Nullable="true" MaxLength="30" />
4313   - <Property Type="String" Name="EndDate" Nullable="true" MaxLength="30" />
4314   - <Property Type="String" Name="LicenseCreationDate" Nullable="true" MaxLength="30" />
  4360 + <Property Type="DateTime" Name="StartDate" Nullable="true" Precision="23" />
  4361 + <Property Type="DateTime" Name="EndDate" Nullable="true" Precision="23" />
  4362 + <Property Type="DateTime" Name="LicenseCreationDate" Nullable="true" Precision="23" />
4315 4363 <Property Type="Decimal" Name="SubscriptionPrice" Nullable="true" Precision="14" Scale="2" />
4316   - <Property Type="Int32" Name="CardNumber" Nullable="false" />
  4364 + <Property Type="Int32" Name="CardNumber" Nullable="true" />
4317 4365 </ComplexType>
4318 4366 <ComplexType Name="usp_GetUsageReport_Result">
4319   - <Property Type="Int64" Name="Serial_No" Nullable="true" />
4320 4367 <Property Type="String" Name="LoginId" Nullable="true" MaxLength="50" />
4321 4368 <Property Type="String" Name="FirstName" Nullable="true" MaxLength="100" />
4322 4369 <Property Type="String" Name="LastName" Nullable="true" MaxLength="100" />
4323   - <Property Type="String" Name="AccountNumber" Nullable="false" MaxLength="50" />
4324   - <Property Type="Int32" Name="CardNumber" Nullable="false" />
  4370 + <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="50" />
  4371 + <Property Type="Int32" Name="CardNumber" Nullable="true" />
4325 4372 <Property Type="String" Name="UserType" Nullable="true" MaxLength="50" />
4326   - <Property Type="String" Name="LicenseCreationDate" Nullable="true" MaxLength="30" />
  4373 + <Property Type="DateTime" Name="LicenseCreationDate" Nullable="true" Precision="23" />
4327 4374 <Property Type="String" Name="LicenseZip" Nullable="true" MaxLength="20" />
4328 4375 <Property Type="String" Name="LicenseState" Nullable="true" MaxLength="50" />
4329 4376 <Property Type="String" Name="LicenseCountry" Nullable="true" MaxLength="50" />
4330 4377 <Property Type="String" Name="InstitutionName" Nullable="true" MaxLength="100" />
4331 4378 <Property Type="Int32" Name="TotalLogins" Nullable="true" />
4332   - <Property Type="String" Name="LastLogin" Nullable="true" MaxLength="30" />
  4379 + <Property Type="DateTime" Name="LastLogin" Nullable="true" Precision="23" />
4333 4380 </ComplexType>
4334 4381 <ComplexType Name="usp_GetUsersList_Result">
4335   - <Property Type="Int64" Name="RowNum" Nullable="true" />
4336   - <Property Type="Int32" Name="Id" Nullable="true" />
  4382 + <Property Type="Int32" Name="Id" Nullable="false" />
4337 4383 <Property Type="String" Name="FirstName" Nullable="true" MaxLength="100" />
4338 4384 <Property Type="String" Name="LastName" Nullable="true" MaxLength="100" />
4339 4385 <Property Type="String" Name="LoginId" Nullable="true" MaxLength="50" />
4340 4386 <Property Type="String" Name="EmailId" Nullable="true" MaxLength="50" />
4341 4387 <Property Type="String" Name="UserTypeTitle" Nullable="true" MaxLength="50" />
4342 4388 <Property Type="String" Name="Password" Nullable="true" MaxLength="50" />
4343   - <Property Type="DateTime" Name="CreationDate" Nullable="true" Precision="23" />
4344   - <Property Type="DateTime" Name="ModifiedDate" Nullable="true" Precision="23" />
  4389 + <Property Type="DateTime" Name="CreationDate" Nullable="false" Precision="23" />
  4390 + <Property Type="DateTime" Name="ModifiedDate" Nullable="false" Precision="23" />
4345 4391 <Property Type="String" Name="AccountNumber" Nullable="true" MaxLength="50" />
4346 4392 <Property Type="String" Name="AccountTypeTitle" Nullable="true" MaxLength="50" />
4347 4393 <Property Type="String" Name="EditionType" Nullable="true" MaxLength="50" />
4348 4394 <Property Type="String" Name="UserStatus" Nullable="true" MaxLength="8" />
4349   - <Property Type="Int32" Name="UserTypeId" Nullable="true" />
4350   - <Property Type="Int32" Name="EditionTypeId" Nullable="true" />
4351   - <Property Type="Boolean" Name="LoginStatus" Nullable="true" />
  4395 + <Property Type="Int32" Name="UserTypeId" Nullable="false" />
  4396 + <Property Type="Int32" Name="EditionTypeId" Nullable="false" />
  4397 + <Property Type="Boolean" Name="LoginStatus" Nullable="false" />
4352 4398 <Property Type="String" Name="TotalLogin" Nullable="true" MaxLength="50" />
4353   - <Property Type="String" Name="LicenseStatus" Nullable="true" MaxLength="7" />
  4399 + <Property Type="String" Name="LicenseStatus" Nullable="true" MaxLength="50" />
4354 4400 </ComplexType>
4355 4401 <ComplexType Name="usp_GetUserTyeByAccountNumber_Result">
4356 4402 <Property Type="Byte" Name="Id" Nullable="true" />
... ... @@ -5528,7 +5574,6 @@
5528 5574 <FunctionImportMapping FunctionImportName="InsertIncorrectLoginAttempt" FunctionName="AIADatabaseV5Model.Store.InsertIncorrectLoginAttempt" />
5529 5575 <FunctionImportMapping FunctionImportName="InsertIncorrectLoginAttempts" FunctionName="AIADatabaseV5Model.Store.InsertIncorrectLoginAttempts" />
5530 5576 <FunctionImportMapping FunctionImportName="InsertLoginDetail" FunctionName="AIADatabaseV5Model.Store.InsertLoginDetail" />
5531   - <FunctionImportMapping FunctionImportName="InsertLoginDetail_1" FunctionName="AIADatabaseV5Model.Store.InsertLoginDetail_1" />
5532 5577 <FunctionImportMapping FunctionImportName="InsertLoginDetailsInSessionManager" FunctionName="AIADatabaseV5Model.Store.InsertLoginDetailsInSessionManager" />
5533 5578 <FunctionImportMapping FunctionImportName="InsertLoginErrorLog" FunctionName="AIADatabaseV5Model.Store.InsertLoginErrorLog" />
5534 5579 <FunctionImportMapping FunctionImportName="InsertNewDiscount" FunctionName="AIADatabaseV5Model.Store.InsertNewDiscount" />
... ... @@ -5747,7 +5792,6 @@
5747 5792 <ScalarProperty Name="RenewDate" ColumnName="RenewDate" />
5748 5793 <ScalarProperty Name="EndDate" ColumnName="EndDate" />
5749 5794 <ScalarProperty Name="NoofImages" ColumnName="NoofImages" />
5750   - <ScalarProperty Name="RowNo" ColumnName="RowNo" />
5751 5795 </ComplexTypeMapping>
5752 5796 </ResultMapping>
5753 5797 </FunctionImportMapping>
... ... @@ -5770,7 +5814,6 @@
5770 5814 <ScalarProperty Name="ModifiedDate" ColumnName="ModifiedDate" />
5771 5815 <ScalarProperty Name="IsActive" ColumnName="IsActive" />
5772 5816 <ScalarProperty Name="TotalUsers" ColumnName="TotalUsers" />
5773   - <ScalarProperty Name="RowNo" ColumnName="RowNo" />
5774 5817 </ComplexTypeMapping>
5775 5818 </ResultMapping>
5776 5819 </FunctionImportMapping>
... ... @@ -5834,12 +5877,12 @@
5834 5877 <FunctionImportMapping FunctionImportName="usp_GetSubscriptionPlans" FunctionName="AIADatabaseV5Model.Store.usp_GetSubscriptionPlans">
5835 5878 <ResultMapping>
5836 5879 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetSubscriptionPlans_Result">
5837   - <ScalarProperty Name="price" ColumnName="price" />
5838   - <ScalarProperty Name="title" ColumnName="title" />
5839 5880 <ScalarProperty Name="Id" ColumnName="Id" />
5840 5881 <ScalarProperty Name="EditionId" ColumnName="EditionId" />
5841 5882 <ScalarProperty Name="Duration" ColumnName="Duration" />
5842 5883 <ScalarProperty Name="IsActive" ColumnName="IsActive" />
  5884 + <ScalarProperty Name="Title" ColumnName="Title" />
  5885 + <ScalarProperty Name="Price" ColumnName="Price" />
5843 5886 </ComplexTypeMapping>
5844 5887 </ResultMapping>
5845 5888 </FunctionImportMapping>
... ... @@ -5918,14 +5961,13 @@
5918 5961 <FunctionImportMapping FunctionImportName="usp_GetLicenseUserGroupUsers" FunctionName="AIADatabaseV5Model.Store.usp_GetLicenseUserGroupUsers">
5919 5962 <ResultMapping>
5920 5963 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetLicenseUserGroupUsers_Result">
5921   - <ScalarProperty Name="RowNo" ColumnName="RowNo" />
5922 5964 <ScalarProperty Name="Id" ColumnName="Id" />
5923 5965 <ScalarProperty Name="FirstName" ColumnName="FirstName" />
5924 5966 <ScalarProperty Name="LastName" ColumnName="LastName" />
5925 5967 <ScalarProperty Name="LoginId" ColumnName="LoginId" />
5926 5968 <ScalarProperty Name="EmailId" ColumnName="EmailId" />
5927   - <ScalarProperty Name="Title" ColumnName="Title" />
5928 5969 <ScalarProperty Name="InGroup" ColumnName="InGroup" />
  5970 + <ScalarProperty Name="ProductEdition" ColumnName="ProductEdition" />
5929 5971 </ComplexTypeMapping>
5930 5972 </ResultMapping>
5931 5973 </FunctionImportMapping>
... ... @@ -5966,18 +6008,16 @@
5966 6008 <ResultMapping>
5967 6009 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetSiteAccountSites_Result">
5968 6010 <ScalarProperty Name="Id" ColumnName="Id" />
5969   - <ScalarProperty Name="SiteIp" ColumnName="SiteIp" />
5970 6011 <ScalarProperty Name="Title" ColumnName="Title" />
5971   - <ScalarProperty Name="SiteIPTo" ColumnName="SiteIPTo" />
5972   - <ScalarProperty Name="SiteMasterIPTo" ColumnName="SiteMasterIPTo" />
5973 6012 <ScalarProperty Name="CreationDate" ColumnName="CreationDate" />
5974 6013 <ScalarProperty Name="ModifiedDate" ColumnName="ModifiedDate" />
5975 6014 <ScalarProperty Name="InstituteName" ColumnName="InstituteName" />
5976 6015 <ScalarProperty Name="Department" ColumnName="Department" />
5977   - <ScalarProperty Name="UserId" ColumnName="UserId" />
5978   - <ScalarProperty Name="FirstName" ColumnName="FirstName" />
5979   - <ScalarProperty Name="EmailId" ColumnName="EmailId" />
5980   - </ComplexTypeMapping>
  6016 + <ScalarProperty Name="Ip" ColumnName="Ip" />
  6017 + <ScalarProperty Name="SiteIpTo" ColumnName="SiteIpTo" />
  6018 + <ScalarProperty Name="SiteUserFirstName" ColumnName="SiteUserFirstName" />
  6019 + <ScalarProperty Name="SiteUserEmailId" ColumnName="SiteUserEmailId" />
  6020 + </ComplexTypeMapping>
5981 6021 </ResultMapping>
5982 6022 </FunctionImportMapping>
5983 6023 <FunctionImportMapping FunctionImportName="usp_DeleteLicense" FunctionName="AIADatabaseV5Model.Store.usp_DeleteLicense" />
... ... @@ -6038,7 +6078,6 @@
6038 6078 <FunctionImportMapping FunctionImportName="usp_GetCancelledLicenses" FunctionName="AIADatabaseV5Model.Store.usp_GetCancelledLicenses">
6039 6079 <ResultMapping>
6040 6080 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetCancelledLicenses_Result">
6041   - <ScalarProperty Name="Serial_No" ColumnName="Serial_No" />
6042 6081 <ScalarProperty Name="AccountNumber" ColumnName="AccountNumber" />
6043 6082 <ScalarProperty Name="LicenseeName" ColumnName="LicenseeName" />
6044 6083 <ScalarProperty Name="LicenseType" ColumnName="LicenseType" />
... ... @@ -6056,15 +6095,12 @@
6056 6095 <FunctionImportMapping FunctionImportName="usp_GetCustomerSummary" FunctionName="AIADatabaseV5Model.Store.usp_GetCustomerSummary">
6057 6096 <ResultMapping>
6058 6097 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetCustomerSummary_Result">
6059   - <ScalarProperty Name="Serial_No" ColumnName="Serial_No" />
6060 6098 <ScalarProperty Name="AccountNumber" ColumnName="AccountNumber" />
6061 6099 <ScalarProperty Name="LicenseeName" ColumnName="LicenseeName" />
6062 6100 <ScalarProperty Name="LicenseType" ColumnName="LicenseType" />
6063 6101 <ScalarProperty Name="AccountType" ColumnName="AccountType" />
6064 6102 <ScalarProperty Name="Edition" ColumnName="Edition" />
6065 6103 <ScalarProperty Name="Email" ColumnName="Email" />
6066   - <ScalarProperty Name="StartDate" ColumnName="StartDate" />
6067   - <ScalarProperty Name="EndDate" ColumnName="EndDate" />
6068 6104 <ScalarProperty Name="LicenseStatus" ColumnName="LicenseStatus" />
6069 6105 <ScalarProperty Name="Price" ColumnName="Price" />
6070 6106 <ScalarProperty Name="LicenseZip" ColumnName="LicenseZip" />
... ... @@ -6073,7 +6109,9 @@
6073 6109 <ScalarProperty Name="InstitutionName" ColumnName="InstitutionName" />
6074 6110 <ScalarProperty Name="LicenseCreationDate" ColumnName="LicenseCreationDate" />
6075 6111 <ScalarProperty Name="CardNumber" ColumnName="CardNumber" />
6076   - </ComplexTypeMapping>
  6112 + <ScalarProperty Name="StartDate" ColumnName="StartDate" />
  6113 + <ScalarProperty Name="EndDate" ColumnName="EndDate" />
  6114 + </ComplexTypeMapping>
6077 6115 </ResultMapping>
6078 6116 </FunctionImportMapping>
6079 6117 <FunctionImportMapping FunctionImportName="usp_GetDiscountCodes" FunctionName="AIADatabaseV5Model.Store.usp_GetDiscountCodes">
... ... @@ -6084,14 +6122,13 @@
6084 6122 <ScalarProperty Name="Percentage" ColumnName="Percentage" />
6085 6123 <ScalarProperty Name="StartDate" ColumnName="StartDate" />
6086 6124 <ScalarProperty Name="EndDate" ColumnName="EndDate" />
6087   - <ScalarProperty Name="Status" ColumnName="Status" />
  6125 + <ScalarProperty Name="IsActive" ColumnName="IsActive" />
6088 6126 </ComplexTypeMapping>
6089 6127 </ResultMapping>
6090 6128 </FunctionImportMapping>
6091 6129 <FunctionImportMapping FunctionImportName="usp_GetDiscountReport" FunctionName="AIADatabaseV5Model.Store.usp_GetDiscountReport">
6092 6130 <ResultMapping>
6093 6131 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetDiscountReport_Result">
6094   - <ScalarProperty Name="RowNum" ColumnName="RowNum" />
6095 6132 <ScalarProperty Name="DiscountCode" ColumnName="DiscountCode" />
6096 6133 <ScalarProperty Name="Percentage" ColumnName="Percentage" />
6097 6134 <ScalarProperty Name="StartDate" ColumnName="StartDate" />
... ... @@ -6104,7 +6141,6 @@
6104 6141 <FunctionImportMapping FunctionImportName="usp_GetExpiringLicenses" FunctionName="AIADatabaseV5Model.Store.usp_GetExpiringLicenses">
6105 6142 <ResultMapping>
6106 6143 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetExpiringLicenses_Result">
6107   - <ScalarProperty Name="Serial_No" ColumnName="Serial_No" />
6108 6144 <ScalarProperty Name="AccountNumber" ColumnName="AccountNumber" />
6109 6145 <ScalarProperty Name="LicenseeName" ColumnName="LicenseeName" />
6110 6146 <ScalarProperty Name="LicenseType" ColumnName="LicenseType" />
... ... @@ -6123,8 +6159,6 @@
6123 6159 <FunctionImportMapping FunctionImportName="usp_GetExportedImageDetails" FunctionName="AIADatabaseV5Model.Store.usp_GetExportedImageDetails">
6124 6160 <ResultMapping>
6125 6161 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetExportedImageDetails_Result">
6126   - <ScalarProperty Name="RowNum" ColumnName="RowNum" />
6127   - <ScalarProperty Name="LicenseId" ColumnName="LicenseId" />
6128 6162 <ScalarProperty Name="ExportedDate" ColumnName="ExportedDate" />
6129 6163 <ScalarProperty Name="ImageName" ColumnName="ImageName" />
6130 6164 <ScalarProperty Name="AccountNumber" ColumnName="AccountNumber" />
... ... @@ -6193,7 +6227,6 @@
6193 6227 <FunctionImportMapping FunctionImportName="usp_GetNetAdSummaryReport" FunctionName="AIADatabaseV5Model.Store.usp_GetNetAdSummaryReport">
6194 6228 <ResultMapping>
6195 6229 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetNetAdSummaryReport_Result">
6196   - <ScalarProperty Name="Serial_No" ColumnName="Serial_No" />
6197 6230 <ScalarProperty Name="LicenseType" ColumnName="LicenseType" />
6198 6231 <ScalarProperty Name="AccountType" ColumnName="AccountType" />
6199 6232 <ScalarProperty Name="InstitutionName" ColumnName="InstitutionName" />
... ... @@ -6253,7 +6286,6 @@
6253 6286 <FunctionImportMapping FunctionImportName="usp_GetSiteLicenseUsageReports" FunctionName="AIADatabaseV5Model.Store.usp_GetSiteLicenseUsageReports">
6254 6287 <ResultMapping>
6255 6288 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetSiteLicenseUsageReports_Result">
6256   - <ScalarProperty Name="Serial_No" ColumnName="Serial_No" />
6257 6289 <ScalarProperty Name="AccountNumber" ColumnName="AccountNumber" />
6258 6290 <ScalarProperty Name="EditionTitle" ColumnName="EditionTitle" />
6259 6291 <ScalarProperty Name="ReferalUrl" ColumnName="ReferalUrl" />
... ... @@ -6267,7 +6299,6 @@
6267 6299 <FunctionImportMapping FunctionImportName="usp_GetSubscribedLicenses" FunctionName="AIADatabaseV5Model.Store.usp_GetSubscribedLicenses">
6268 6300 <ResultMapping>
6269 6301 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetSubscribedLicenses_Result">
6270   - <ScalarProperty Name="Serial_No" ColumnName="Serial_No" />
6271 6302 <ScalarProperty Name="AccountNumber" ColumnName="AccountNumber" />
6272 6303 <ScalarProperty Name="LicenseeName" ColumnName="LicenseeName" />
6273 6304 <ScalarProperty Name="LicenseType" ColumnName="LicenseType" />
... ... @@ -6285,7 +6316,6 @@
6285 6316 <FunctionImportMapping FunctionImportName="usp_GetUsageReport" FunctionName="AIADatabaseV5Model.Store.usp_GetUsageReport">
6286 6317 <ResultMapping>
6287 6318 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetUsageReport_Result">
6288   - <ScalarProperty Name="Serial_No" ColumnName="Serial_No" />
6289 6319 <ScalarProperty Name="LoginId" ColumnName="LoginId" />
6290 6320 <ScalarProperty Name="FirstName" ColumnName="FirstName" />
6291 6321 <ScalarProperty Name="LastName" ColumnName="LastName" />
... ... @@ -6306,7 +6336,6 @@
6306 6336 <FunctionImportMapping FunctionImportName="usp_GetUsersList" FunctionName="AIADatabaseV5Model.Store.usp_GetUsersList">
6307 6337 <ResultMapping>
6308 6338 <ComplexTypeMapping TypeName="AIADatabaseV5Model.usp_GetUsersList_Result">
6309   - <ScalarProperty Name="RowNum" ColumnName="RowNum" />
6310 6339 <ScalarProperty Name="Id" ColumnName="Id" />
6311 6340 <ScalarProperty Name="FirstName" ColumnName="FirstName" />
6312 6341 <ScalarProperty Name="LastName" ColumnName="LastName" />
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetCancelledLicenses_Result.cs
... ... @@ -13,16 +13,15 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetCancelledLicenses_Result
15 15 {
16   - public Nullable<long> Serial_No { get; set; }
17 16 public string AccountNumber { get; set; }
18 17 public string LicenseeName { get; set; }
19 18 public string LicenseType { get; set; }
20 19 public string InstitutionName { get; set; }
21 20 public string AccountType { get; set; }
22 21 public string Edition { get; set; }
23   - public string StartDate { get; set; }
24   - public string EndDate { get; set; }
25   - public string LicenseCreationDate { get; set; }
  22 + public Nullable<System.DateTime> StartDate { get; set; }
  23 + public Nullable<System.DateTime> EndDate { get; set; }
  24 + public Nullable<System.DateTime> LicenseCreationDate { get; set; }
26 25 public Nullable<decimal> SubscriptionPrice { get; set; }
27 26 public Nullable<int> CardNumber { get; set; }
28 27 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetCustomerSummary_Result.cs
... ... @@ -13,22 +13,21 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetCustomerSummary_Result
15 15 {
16   - public Nullable<long> Serial_No { get; set; }
17 16 public string AccountNumber { get; set; }
18 17 public string LicenseeName { get; set; }
19 18 public string LicenseType { get; set; }
20 19 public string AccountType { get; set; }
21 20 public string Edition { get; set; }
22 21 public string Email { get; set; }
23   - public string StartDate { get; set; }
24   - public string EndDate { get; set; }
25 22 public string LicenseStatus { get; set; }
26 23 public Nullable<decimal> Price { get; set; }
27 24 public string LicenseZip { get; set; }
28 25 public string LicenseState { get; set; }
29 26 public string LicenseCountry { get; set; }
30 27 public string InstitutionName { get; set; }
31   - public string LicenseCreationDate { get; set; }
32   - public int CardNumber { get; set; }
  28 + public Nullable<System.DateTime> LicenseCreationDate { get; set; }
  29 + public Nullable<int> CardNumber { get; set; }
  30 + public Nullable<System.DateTime> StartDate { get; set; }
  31 + public Nullable<System.DateTime> EndDate { get; set; }
33 32 }
34 33 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetDiscountCodes_Result.cs
... ... @@ -16,8 +16,8 @@ namespace AIAHTML5.ADMIN.API.Entity
16 16 public int Id { get; set; }
17 17 public string DiscountCode { get; set; }
18 18 public decimal Percentage { get; set; }
19   - public string StartDate { get; set; }
20   - public string EndDate { get; set; }
21   - public string Status { get; set; }
  19 + public System.DateTime StartDate { get; set; }
  20 + public System.DateTime EndDate { get; set; }
  21 + public bool IsActive { get; set; }
22 22 }
23 23 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetDiscountReport_Result.cs
... ... @@ -13,11 +13,10 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetDiscountReport_Result
15 15 {
16   - public Nullable<long> RowNum { get; set; }
17 16 public string DiscountCode { get; set; }
18   - public decimal Percentage { get; set; }
19   - public string StartDate { get; set; }
20   - public string EndDate { get; set; }
  17 + public Nullable<decimal> Percentage { get; set; }
  18 + public Nullable<System.DateTime> StartDate { get; set; }
  19 + public Nullable<System.DateTime> EndDate { get; set; }
21 20 public string DiscountStatus { get; set; }
22 21 public Nullable<int> TotalLicenses { get; set; }
23 22 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetExpiringLicenses_Result.cs
... ... @@ -13,18 +13,17 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetExpiringLicenses_Result
15 15 {
16   - public Nullable<long> Serial_No { get; set; }
17 16 public string AccountNumber { get; set; }
18 17 public string LicenseeName { get; set; }
19 18 public string LicenseType { get; set; }
20 19 public string InstitutionName { get; set; }
21 20 public string Edition { get; set; }
22   - public string StartDate { get; set; }
23   - public string EndDate { get; set; }
24   - public string LicenseCreationDate { get; set; }
  21 + public Nullable<System.DateTime> StartDate { get; set; }
  22 + public Nullable<System.DateTime> EndDate { get; set; }
  23 + public Nullable<System.DateTime> LicenseCreationDate { get; set; }
25 24 public Nullable<decimal> SubscriptionPrice { get; set; }
26 25 public string AccountType { get; set; }
27 26 public Nullable<int> DaysRemaining { get; set; }
28   - public int CardNumber { get; set; }
  27 + public Nullable<int> CardNumber { get; set; }
29 28 }
30 29 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetExportedImageDetails_Result.cs
... ... @@ -13,15 +13,13 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetExportedImageDetails_Result
15 15 {
16   - public Nullable<long> RowNum { get; set; }
17   - public int LicenseId { get; set; }
18   - public string ExportedDate { get; set; }
  16 + public System.DateTime ExportedDate { get; set; }
19 17 public string ImageName { get; set; }
20 18 public string AccountNumber { get; set; }
21 19 public string OriginalFileName { get; set; }
22 20 public string Title { get; set; }
23 21 public string ModuleName { get; set; }
24   - public int ExportLimit { get; set; }
  22 + public Nullable<int> ExportLimit { get; set; }
25 23 public string UserName { get; set; }
26 24 public Nullable<int> imageCount { get; set; }
27 25 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetLicenseUserGroupUsers_Result.cs
... ... @@ -13,13 +13,12 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetLicenseUserGroupUsers_Result
15 15 {
16   - public Nullable<long> RowNo { get; set; }
17 16 public int Id { get; set; }
18 17 public string FirstName { get; set; }
19 18 public string LastName { get; set; }
20 19 public string LoginId { get; set; }
21 20 public string EmailId { get; set; }
22   - public string Title { get; set; }
23   - public int InGroup { get; set; }
  21 + public bool InGroup { get; set; }
  22 + public string ProductEdition { get; set; }
24 23 }
25 24 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetLicenseUserGroups_Result.cs
... ... @@ -20,6 +20,5 @@ namespace AIAHTML5.ADMIN.API.Entity
20 20 public Nullable<System.DateTime> ModifiedDate { get; set; }
21 21 public bool IsActive { get; set; }
22 22 public Nullable<int> TotalUsers { get; set; }
23   - public Nullable<long> RowNo { get; set; }
24 23 }
25 24 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetNetAdSummaryReport_Result.cs
... ... @@ -13,7 +13,6 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetNetAdSummaryReport_Result
15 15 {
16   - public Nullable<long> Serial_No { get; set; }
17 16 public string LicenseType { get; set; }
18 17 public string AccountType { get; set; }
19 18 public string InstitutionName { get; set; }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetSiteAccountSites_Result.cs
... ... @@ -14,16 +14,14 @@ namespace AIAHTML5.ADMIN.API.Entity
14 14 public partial class usp_GetSiteAccountSites_Result
15 15 {
16 16 public int Id { get; set; }
17   - public string SiteIp { get; set; }
18 17 public string Title { get; set; }
19   - public string SiteIPTo { get; set; }
20   - public string SiteMasterIPTo { get; set; }
21   - public string CreationDate { get; set; }
22   - public string ModifiedDate { get; set; }
  18 + public Nullable<System.DateTime> CreationDate { get; set; }
  19 + public Nullable<System.DateTime> ModifiedDate { get; set; }
23 20 public string InstituteName { get; set; }
24 21 public string Department { get; set; }
25   - public int UserId { get; set; }
26   - public string FirstName { get; set; }
27   - public string EmailId { get; set; }
  22 + public string Ip { get; set; }
  23 + public string SiteIpTo { get; set; }
  24 + public string SiteUserFirstName { get; set; }
  25 + public string SiteUserEmailId { get; set; }
28 26 }
29 27 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetSiteLicenseUsageReports_Result.cs
... ... @@ -13,13 +13,12 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetSiteLicenseUsageReports_Result
15 15 {
16   - public Nullable<long> Serial_No { get; set; }
17 16 public string AccountNumber { get; set; }
18 17 public string EditionTitle { get; set; }
19 18 public string ReferalUrl { get; set; }
20 19 public string InstitutionName { get; set; }
21   - public string LicenseCreationDate { get; set; }
  20 + public Nullable<System.DateTime> LicenseCreationDate { get; set; }
22 21 public Nullable<int> TotalLogins { get; set; }
23   - public string LastLogin { get; set; }
  22 + public Nullable<System.DateTime> LastLogin { get; set; }
24 23 }
25 24 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetSubscribedLicenses_Result.cs
... ... @@ -13,17 +13,16 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetSubscribedLicenses_Result
15 15 {
16   - public Nullable<long> Serial_No { get; set; }
17 16 public string AccountNumber { get; set; }
18 17 public string LicenseeName { get; set; }
19 18 public string LicenseType { get; set; }
20 19 public string InstitutionName { get; set; }
21 20 public string AccountType { get; set; }
22 21 public string Edition { get; set; }
23   - public string StartDate { get; set; }
24   - public string EndDate { get; set; }
25   - public string LicenseCreationDate { get; set; }
  22 + public Nullable<System.DateTime> StartDate { get; set; }
  23 + public Nullable<System.DateTime> EndDate { get; set; }
  24 + public Nullable<System.DateTime> LicenseCreationDate { get; set; }
26 25 public Nullable<decimal> SubscriptionPrice { get; set; }
27   - public int CardNumber { get; set; }
  26 + public Nullable<int> CardNumber { get; set; }
28 27 }
29 28 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetSubscriptionPlans_Result.cs
... ... @@ -13,11 +13,11 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetSubscriptionPlans_Result
15 15 {
16   - public Nullable<decimal> price { get; set; }
17   - public string title { get; set; }
18   - public short Id { get; set; }
  16 + public int Id { get; set; }
19 17 public byte EditionId { get; set; }
20 18 public byte Duration { get; set; }
21 19 public bool IsActive { get; set; }
  20 + public string Title { get; set; }
  21 + public Nullable<decimal> Price { get; set; }
22 22 }
23 23 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetUsageReport_Result.cs
... ... @@ -13,19 +13,18 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetUsageReport_Result
15 15 {
16   - public Nullable<long> Serial_No { get; set; }
17 16 public string LoginId { get; set; }
18 17 public string FirstName { get; set; }
19 18 public string LastName { get; set; }
20 19 public string AccountNumber { get; set; }
21   - public int CardNumber { get; set; }
  20 + public Nullable<int> CardNumber { get; set; }
22 21 public string UserType { get; set; }
23   - public string LicenseCreationDate { get; set; }
  22 + public Nullable<System.DateTime> LicenseCreationDate { get; set; }
24 23 public string LicenseZip { get; set; }
25 24 public string LicenseState { get; set; }
26 25 public string LicenseCountry { get; set; }
27 26 public string InstitutionName { get; set; }
28 27 public Nullable<int> TotalLogins { get; set; }
29   - public string LastLogin { get; set; }
  28 + public Nullable<System.DateTime> LastLogin { get; set; }
30 29 }
31 30 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetUsersList_Result.cs
... ... @@ -13,23 +13,22 @@ namespace AIAHTML5.ADMIN.API.Entity
13 13  
14 14 public partial class usp_GetUsersList_Result
15 15 {
16   - public Nullable<long> RowNum { get; set; }
17   - public Nullable<int> Id { get; set; }
  16 + public int Id { get; set; }
18 17 public string FirstName { get; set; }
19 18 public string LastName { get; set; }
20 19 public string LoginId { get; set; }
21 20 public string EmailId { get; set; }
22 21 public string UserTypeTitle { get; set; }
23 22 public string Password { get; set; }
24   - public Nullable<System.DateTime> CreationDate { get; set; }
25   - public Nullable<System.DateTime> ModifiedDate { get; set; }
  23 + public System.DateTime CreationDate { get; set; }
  24 + public System.DateTime ModifiedDate { get; set; }
26 25 public string AccountNumber { get; set; }
27 26 public string AccountTypeTitle { get; set; }
28 27 public string EditionType { get; set; }
29 28 public string UserStatus { get; set; }
30   - public Nullable<int> UserTypeId { get; set; }
31   - public Nullable<int> EditionTypeId { get; set; }
32   - public Nullable<bool> LoginStatus { get; set; }
  29 + public int UserTypeId { get; set; }
  30 + public int EditionTypeId { get; set; }
  31 + public bool LoginStatus { get; set; }
33 32 public string TotalLogin { get; set; }
34 33 public string LicenseStatus { get; set; }
35 34 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/usp_GetlicensesList_Result.cs
... ... @@ -26,13 +26,12 @@ namespace AIAHTML5.ADMIN.API.Entity
26 26 public string ClientAdmin { get; set; }
27 27 public string LicenseeName { get; set; }
28 28 public string ContactAddress { get; set; }
29   - public string EntryDate { get; set; }
  29 + public Nullable<System.DateTime> EntryDate { get; set; }
30 30 public string LicenseStatus { get; set; }
31   - public string ModifyDate { get; set; }
32   - public string StartDate { get; set; }
33   - public string RenewDate { get; set; }
34   - public string EndDate { get; set; }
  31 + public Nullable<System.DateTime> ModifyDate { get; set; }
  32 + public Nullable<System.DateTime> StartDate { get; set; }
  33 + public Nullable<System.DateTime> RenewDate { get; set; }
  34 + public Nullable<System.DateTime> EndDate { get; set; }
35 35 public Nullable<int> NoofImages { get; set; }
36   - public Nullable<long> RowNo { get; set; }
37 36 }
38 37 }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Models/DiscountCodeModel.cs
... ... @@ -15,29 +15,15 @@ namespace AIAHTML5.ADMIN.API.Models
15 15 public bool IsActive { get; set; }
16 16 public decimal Percentage { get; set; }
17 17  
18   - public static List<DiscountCodeModel> GetDiscountCodes(AIADatabaseV5Entities dbContext, string discountCode, DateTime startDate, DateTime endDate, int pageNo, int pageLength, out int recordCount)
  18 + public static List<usp_GetDiscountCodes_Result> GetDiscountCodes(AIADatabaseV5Entities dbContext, string discountCode, DateTime startDate, DateTime endDate, string sortColumn, string sortOrder, int pageNo, int pageLength, out int recordCount)
19 19 {
20   - List<DiscountCodeModel> DiscountCodeList = new List<DiscountCodeModel>();
21   - DiscountCodeModel DiscountCodeObj = new DiscountCodeModel();
  20 + List<usp_GetDiscountCodes_Result> DiscountCodeList = new List<usp_GetDiscountCodes_Result>();
22 21 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
23 22 recordCount = 0;
24 23 try
25 24 {
26   - var result = dbContext.usp_GetDiscountCodes(discountCode, startDate.ToString("MM/dd/yyyy"), endDate.ToString("MM/dd/yyyy"), pageNo, pageLength, spRecordCount).ToList();
27   - if (result.Count > 0)
28   - {
29   - foreach (var item in result)
30   - {
31   - DiscountCodeObj = new DiscountCodeModel();
32   - DiscountCodeObj.Id = item.Id;
33   - DiscountCodeObj.DiscountCode = item.DiscountCode;
34   - DiscountCodeObj.StartDate = DateTime.ParseExact(item.StartDate, "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
35   - DiscountCodeObj.EndDate = DateTime.ParseExact(item.EndDate, "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
36   - DiscountCodeObj.Percentage = item.Percentage;
37   - DiscountCodeObj.IsActive = (item.Status == "Active" ? true : false);
38   - DiscountCodeList.Add(DiscountCodeObj);
39   - }
40   - }
  25 + DiscountCodeList = dbContext.usp_GetDiscountCodes(discountCode, startDate.ToString("MM/dd/yyyy"), endDate.ToString("MM/dd/yyyy"), sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
  26 +
41 27 recordCount = (int)spRecordCount.Value;
42 28 }
43 29 catch (Exception ex) { }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Models/LicenseModel.cs
... ... @@ -47,6 +47,7 @@ namespace AIAHTML5.ADMIN.API.Models
47 47 public int? TotalLogins { get; set; }
48 48 public string EditionLogins { get; set; }
49 49 public decimal Price { get; set; }
  50 + public int? SiteUserId { get; set; }
50 51 public string LoginId { get; set; }
51 52 public string Password { get; set; }
52 53 public byte? SecurityQuestionId { get; set; }
... ... @@ -59,50 +60,23 @@ namespace AIAHTML5.ADMIN.API.Models
59 60 public byte? TestLicenseEditionId { get; set; }
60 61 public bool IsRenew { get; set; }
61 62  
62   - public static List<LicenseModel> GetLicenses(AIADatabaseV5Entities dbContext, string accountNumber, string licenseeFirstName,
  63 + public static List<usp_GetlicensesList_Result> GetLicenses(AIADatabaseV5Entities dbContext, string accountNumber, string licenseeFirstName,
63 64 string licenseeLastName, byte licenseTypeId, string institutionName, int stateId, int countryId, string emailId,
64   - DateTime subscriptionStartDate, DateTime subscriptionEndDate, bool isActive, int pageNo, int pageLength, out int recordCount)
  65 + DateTime subscriptionStartDate, DateTime subscriptionEndDate, bool isActive, string sortColumn, string sortOrder, int pageNo, int pageLength, out int recordCount)
65 66 {
66   - List<LicenseModel> LicenseList = new List<LicenseModel>();
67   - LicenseModel LicenseObj = new LicenseModel();
  67 + List<usp_GetlicensesList_Result> LicenseList=new List<usp_GetlicensesList_Result>();
68 68 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
69 69 recordCount = 0;
70 70 try
71 71 {
72   - var result = dbContext.usp_GetlicensesList(
  72 + LicenseList = dbContext.usp_GetlicensesList(
73 73 (subscriptionStartDate > DateTime.MinValue ? subscriptionStartDate.ToShortDateString() : "01/01/01"),
74 74 (subscriptionEndDate > DateTime.MinValue ? subscriptionEndDate.ToShortDateString() : "01/01/01"),
75 75 (accountNumber == null ? "" : accountNumber), (licenseeFirstName == null ? "" : licenseeFirstName),
76 76 (licenseeLastName == null ? "" : licenseeLastName), licenseTypeId, (institutionName == null ? "" : institutionName),
77   - (emailId == null ? "" : emailId), stateId, countryId, isActive, pageNo, pageLength, spRecordCount).ToList();
78   - if (result.Count > 0)
  77 + (emailId == null ? "" : emailId), stateId, countryId, isActive, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
  78 + if (LicenseList.Count > 0)
79 79 {
80   - foreach (var item in result)
81   - {
82   - LicenseObj = new LicenseModel();
83   - LicenseObj.LicenseId = item.LicenseId;
84   - LicenseObj.AccountNumber = item.AccountNumber;
85   - LicenseObj.AccountTypeName = item.AccountType;
86   - LicenseObj.LicenseeName = item.LicenseeName;
87   - LicenseObj.LicenseState = item.LicenseState;
88   - LicenseObj.LicenseCountry = item.LicenseCountry;
89   - LicenseObj.Address = item.ContactAddress;
90   - LicenseObj.InstitutionName = item.InstitutionName;
91   - LicenseObj.LicenseTypeName = item.LicenseType;
92   - LicenseObj.EmailId = item.EmailId;
93   - LicenseObj.NoOfImages = item.NoofImages;
94   - LicenseObj.ClientAdmin = item.ClientAdmin;
95   - LicenseObj.CardNumber = item.CardNumber;
96   - LicenseObj.ProductKey = item.ProductKey;
97   - LicenseObj.SubscriptionStartDate = DateTime.ParseExact(item.StartDate, "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
98   - LicenseObj.SubscriptionEndDate = DateTime.ParseExact(item.EndDate, "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
99   - LicenseObj.EntryDate = DateTime.ParseExact(item.EntryDate, "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
100   - LicenseObj.RenewDate = DateTime.ParseExact((item.RenewDate == "" ? "01/01/0001" : item.RenewDate), "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
101   - LicenseObj.ModifyDate = DateTime.ParseExact((item.ModifyDate == "" ? "01/01/0001" : item.ModifyDate), "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
102   - LicenseObj.IsActive = (item.LicenseStatus == "Active" ? true : false);
103   - LicenseObj.LicStatus = item.LicenseStatus;
104   - LicenseList.Add(LicenseObj);
105   - }
106 80 recordCount = (int)spRecordCount.Value;
107 81 }
108 82 }
... ... @@ -162,6 +136,7 @@ namespace AIAHTML5.ADMIN.API.Models
162 136 LicenseObj.MasterSiteUrl = result[0].SiteUrl;
163 137 LicenseObj.SiteUrlTo = result[0].SitToUrl;
164 138 LicenseObj.SiteUrlFrom = result[0].SiteMasterUrl;
  139 + LicenseObj.SiteUserId = result[0].UserId;
165 140 LicenseObj.LoginId = result[0].Login;
166 141 LicenseObj.Password = result[0].Password;
167 142 LicenseObj.SecurityQuestionId = (byte?)result[0].SecurityQuestionId;
... ... @@ -177,38 +152,16 @@ namespace AIAHTML5.ADMIN.API.Models
177 152 return LicenseObj;
178 153 }
179 154  
180   - public static List<SiteModel> GetLicenseSites(AIADatabaseV5Entities dbContext, string AccountNo, int pageNo, int pageLength, out int recordCount)
  155 + public static List<usp_GetSiteAccountSites_Result> GetLicenseSites(AIADatabaseV5Entities dbContext, string AccountNo, string sortColumn, string sortOrder, int pageNo, int pageLength, out int recordCount)
181 156 {
182   - List<SiteModel> LicenseSiteList = new List<SiteModel>();
183   - SiteModel SiteModelObj = new SiteModel();
  157 + List<usp_GetSiteAccountSites_Result> LicenseSiteList = new List<usp_GetSiteAccountSites_Result>();
  158 +
184 159 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
185 160 recordCount = 0;
186 161 try
187 162 {
188   - var result = dbContext.usp_GetSiteAccountSites(AccountNo, pageNo, pageLength, spRecordCount).ToList();
189   - if (result.Count > 0)
190   - {
191   - foreach (var item in result)
192   - {
193   - SiteModelObj = new SiteModel();
194   - SiteModelObj.Id = item.Id;
195   - SiteModelObj.Ip = item.SiteIp;
196   - SiteModelObj.SiteIpTo = item.SiteIPTo;
197   - SiteModelObj.MasterIpTo = item.SiteMasterIPTo;
198   - SiteModelObj.InstituteName = item.InstituteName;
199   - SiteModelObj.Department = item.Department;
200   - SiteModelObj.SiteUserId = item.UserId;
201   - SiteModelObj.SiteUserEmailId = item.EmailId;
202   - SiteModelObj.SiteUserFirstName = item.FirstName;
203   - SiteModelObj.Title = item.Title;
204   - SiteModelObj.CreationDate = DateTime.ParseExact(item.CreationDate, "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
205   - if (!string.IsNullOrEmpty(item.ModifiedDate))
206   - {
207   - SiteModelObj.ModifiedDate = DateTime.ParseExact(item.ModifiedDate, "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
208   - }
209   - LicenseSiteList.Add(SiteModelObj);
210   - }
211   - }
  163 + LicenseSiteList = dbContext.usp_GetSiteAccountSites(AccountNo, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
  164 +
212 165 recordCount = (int)spRecordCount.Value;
213 166 }
214 167 catch (Exception ex) { }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Models/SubscriptionPriceModel.cs
... ... @@ -15,29 +15,15 @@ namespace AIAHTML5.ADMIN.API.Models
15 15 public int EditionId { get; set; }
16 16 public bool IsActive { get; set; }
17 17  
18   - public static List<SubscriptionPriceModel> GetSubscriptionPrices(AIADatabaseV5Entities dbContext, int editionId, int pageNo, int pageLength, out int recordCount)
  18 + public static List<usp_GetSubscriptionPlans_Result> GetSubscriptionPrices(AIADatabaseV5Entities dbContext, int editionId, string sortColumn, string sortOrder, int pageNo, int pageLength, out int recordCount)
19 19 {
20   - List<SubscriptionPriceModel> SubscriptionPriceList = new List<SubscriptionPriceModel>();
21   - SubscriptionPriceModel SubscriptionPriceObj = new SubscriptionPriceModel();
  20 + List<usp_GetSubscriptionPlans_Result> SubscriptionPriceList = new List<usp_GetSubscriptionPlans_Result>();
22 21 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
23 22 recordCount = 0;
24 23 try
25 24 {
26   - var result = dbContext.usp_GetSubscriptionPlans((byte?)editionId, pageNo, pageLength, spRecordCount).ToList();
27   - if (result.Count > 0)
28   - {
29   - foreach (var item in result)
30   - {
31   - SubscriptionPriceObj = new SubscriptionPriceModel();
32   - SubscriptionPriceObj.Id = item.Id;
33   - SubscriptionPriceObj.Title = item.title;
34   - SubscriptionPriceObj.Price = item.price.Value;
35   - SubscriptionPriceObj.Duration = item.Duration;
36   - SubscriptionPriceObj.EditionId = item.EditionId;
37   - SubscriptionPriceObj.IsActive = item.IsActive;
38   - SubscriptionPriceList.Add(SubscriptionPriceObj);
39   - }
40   - }
  25 + SubscriptionPriceList = dbContext.usp_GetSubscriptionPlans((byte?)editionId, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
  26 +
41 27 recordCount = (int)spRecordCount.Value;
42 28 }
43 29 catch (Exception ex) { }
... ...
400-SOURCECODE/AIAHTML5.ADMIN.API/Models/UserGroupModel.cs
... ... @@ -16,54 +16,31 @@ namespace AIAHTML5.ADMIN.API.Models
16 16 public bool? IsActive { get; set; }
17 17 public int? TotalUsers { get; set; }
18 18  
19   - public static List<UserGroupModel> GetLicenseUserGroups(AIADatabaseV5Entities dbContext, int? LicenseId, int pageNo, int pageLength, out int recordCount)
  19 + public static List<usp_GetLicenseUserGroups_Result> GetLicenseUserGroups(AIADatabaseV5Entities dbContext, int? LicenseId, string sortColumn, string sortOrder, int pageNo, int pageLength, out int recordCount)
20 20 {
21   - List<UserGroupModel> UserGroupList = new List<UserGroupModel>();
22   - UserGroupModel UserGroupObj = new UserGroupModel();
  21 + List<usp_GetLicenseUserGroups_Result> UserGroupList = new List<usp_GetLicenseUserGroups_Result>();
  22 +
23 23 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
24 24 recordCount = 0;
25 25 try
26 26 {
27   - var result = dbContext.usp_GetLicenseUserGroups(LicenseId, pageNo, pageLength, spRecordCount).ToList();
28   - foreach (var item in result)
29   - {
30   - UserGroupObj = new UserGroupModel();
31   - UserGroupObj.Id = item.Id;
32   - UserGroupObj.LicenseId = item.LicenseId;
33   - UserGroupObj.Title = item.Title;
34   - UserGroupObj.IsActive = item.IsActive;
35   - UserGroupObj.ModifiedDate = item.ModifiedDate;
36   - UserGroupObj.CreationDate = item.CreationDate;
37   - UserGroupObj.TotalUsers = item.TotalUsers;
38   - UserGroupList.Add(UserGroupObj);
39   - }
  27 + UserGroupList = dbContext.usp_GetLicenseUserGroups(LicenseId, sortColumn, sortOrder, pageNo, pageLength, spRecordCount).ToList();
  28 +
40 29 recordCount = (int)spRecordCount.Value;
41 30 }
42 31 catch (Exception ex) { }
43 32 return UserGroupList;
44 33 }
45 34  
46   - public static List<UserModel> GetLicenseUserGroupUsers(AIADatabaseV5Entities dbContext, int? LicenseId, int UserGroupId, bool AllUsers, int pageNo, int pageLength, out int recordCount)
  35 + public static List<usp_GetLicenseUserGroupUsers_Result> GetLicenseUserGroupUsers(AIADatabaseV5Entities dbContext, int? LicenseId, int UserGroupId, bool AllUsers, string sortColumn, string sortOrder, int pageNo, int pageLength, out int recordCount)
47 36 {
48   - List<UserModel> UserList = new List<UserModel>();
  37 + List<usp_GetLicenseUserGroupUsers_Result> UserList = new List<usp_GetLicenseUserGroupUsers_Result>();
49 38 UserModel UserModelObj = new UserModel();
50 39 var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0);
51 40 recordCount = 0;
52 41 try
53 42 {
54   - var result = dbContext.usp_GetLicenseUserGroupUsers(LicenseId, UserGroupId, AllUsers, pageNo, pageLength, spRecordCount).ToList();
55   - foreach (var item in result)
56   - {
57   - UserModelObj = new UserModel();
58   - UserModelObj.Id = item.Id;
59   - UserModelObj.FirstName = item.FirstName;
60   - UserModelObj.LastName = item.LastName;
61   - UserModelObj.LoginId = item.LoginId;
62   - UserModelObj.EmailId = item.EmailId;
63   - UserModelObj.ProductEdition = item.Title;
64   - UserModelObj.InGroup = item.InGroup;
65   - UserList.Add(UserModelObj);
66   - }
  43 + UserList = dbContext.usp_GetLicenseUserGroupUsers(LicenseId, UserGroupId, AllUsers, sortColumn, sortOrder,pageNo, pageLength, spRecordCount).ToList();
67 44 recordCount = (int)spRecordCount.Value;
68 45 }
69 46 catch (Exception ex) { }
... ...
400-SOURCECODE/AIAHTML5.API/Controllers/AuthenticateController.cs
... ... @@ -494,7 +494,7 @@ namespace AIAHTML5.API.Controllers
494 494 }
495 495  
496 496 [HttpPost]
497   - [Route("api/ByPassLoginToOpenModule")]
  497 + [Route("api/ByPassLoginToOpenModule")]//now using UrlLoginController
498 498 public HttpResponseMessage ByPassLoginToOpenModule([FromBody]JObject sitedetail)
499 499 {
500 500 // note:created new UrlLoginController for bypass login
... ...
400-SOURCECODE/AIAHTML5.API/Models/DBModel.cs
... ... @@ -1427,7 +1427,7 @@ namespace AIAHTML5.API.Models
1427 1427 return dt;
1428 1428  
1429 1429 }
1430   - internal int InsertSiteLoginDetails(String strAcccountNumber, String strUrlReferer, string strEdition)
  1430 + internal int InsertSiteLoginDetails(String strAcccountNumber, String strUrlReferer, string strEdition,int loginTypeId)
1431 1431 {
1432 1432 int result = 0;
1433 1433 SqlConnection conn = null;
... ... @@ -1443,6 +1443,7 @@ namespace AIAHTML5.API.Models
1443 1443 cmd.Parameters.AddWithValue("@nvReferalUrl", strUrlReferer);
1444 1444 cmd.Parameters.AddWithValue("@nvEdition", strEdition);
1445 1445 cmd.Parameters.AddWithValue("@nvHttpReferer", null);
  1446 + cmd.Parameters.AddWithValue("@nvLoginTypeId", loginTypeId);
1446 1447 result = cmd.ExecuteNonQuery();
1447 1448 }
1448 1449 catch (SqlException ex)
... ...
400-SOURCECODE/AIAHTML5.API/Models/Users.cs
... ... @@ -677,6 +677,9 @@ namespace AIAHTML5.API.Models
677 677  
678 678 }
679 679  
  680 + // add editon number for provide CA link
  681 + userInfo.StudentEdition = GetStudentEdition(userInfo.LicenseId);
  682 +
680 683 // get edition features details
681 684 userInfo.objEditionFeatures = objDBModel.GetEditionFeatures((Byte)intEditionId);
682 685  
... ... @@ -688,8 +691,9 @@ namespace AIAHTML5.API.Models
688 691 // get exported image detail
689 692 userInfo.UserExportImageDetail = getExportedImageDetail(userInfo.LicenseId);
690 693  
691   - // insert login details
692   - objDBModel.InsertSiteLoginDetails(strAcccountNumber, strSiteIP, strEdition);
  694 + // insert login details
  695 + //pass 1 for Site login
  696 + objDBModel.InsertSiteLoginDetails(strAcccountNumber, strSiteIP, strEdition,1);
693 697 }
694 698  
695 699  
... ... @@ -746,6 +750,8 @@ namespace AIAHTML5.API.Models
746 750 string expirationDate = null;
747 751 bool isLicenseExpired = false;
748 752  
  753 + DBModel objDBModel = new DBModel();
  754 +
749 755 // validate license start date
750 756 string startDate = null;
751 757 bool isSubscriptionNotStart = false;
... ... @@ -819,10 +825,14 @@ namespace AIAHTML5.API.Models
819 825 userInfo.userSelectedSkintone = null;
820 826 userInfo.userLexicon = null;
821 827  
822   - // get only CA module
  828 + // get only CA module
823 829  
824   - userInfo.Modules = getModuleListBySlug(licId,slug);
825   -
  830 + userInfo.Modules = getModuleListBySlug(licId,slug);
  831 +
  832 + // insert site url login details in sitelicense table UserLoginLog
  833 + //pass 2 for CA login
  834 + objDBModel.InsertSiteLoginDetails(strAcccountNumber, "", intEditionId.ToString(),2);
  835 +
826 836 }
827 837  
828 838  
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/3dAController.js
... ... @@ -79,14 +79,15 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
79 79 }
80 80 }
81 81  
82   - $scope.DisableUI = function () {
83   -
84   - var caImagePanelConetent = document.getElementsByClassName("jsPanel-content");
85   - for (var i = 0; i < caImagePanelConetent.length; i++) {
86   - caImagePanelConetent[i].style.pointerEvents = "none";
87   - caImagePanelConetent[i].style.opacity = "0.7";
  82 + $scope.Disable3DUI = function (windowviewid) {
88 83  
  84 + var modulePanel = $("#ThreeDImagePanel_"+windowviewid).find(" .jsPanel-content");
  85 + if(modulePanel.length>0)
  86 + {
  87 + modulePanel[0].style.pointerEvents="none";
  88 + modulePanel[0].style.opacity="0.7";
89 89 }
  90 +
90 91 $rootScope.isLoading = true;
91 92 $('#spinner').css('visibility', 'visible');
92 93  
... ... @@ -95,14 +96,14 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
95 96 $('#HomeContainerDiv').css('opacity', '0.7');
96 97 }
97 98  
98   - $scope.EnableUI = function () {
  99 + $scope.Enable3DUI = function (windowviewid) {
99 100  
100   - var caImagePanelConetent = document.getElementsByClassName("jsPanel-content");
101   - for (var i = 0; i < caImagePanelConetent.length; i++) {
102   - caImagePanelConetent[i].style.pointerEvents = "auto";
103   - caImagePanelConetent[i].style.opacity = "1";
  101 + var modulePanel = $("#ThreeDImagePanel_"+windowviewid).find(" .jsPanel-content");
  102 + if(modulePanel.length>0)
  103 + {
  104 + modulePanel[0].style.pointerEvents="auto";
  105 + modulePanel[0].style.opacity="1";
104 106 }
105   -
106 107 $rootScope.isLoading = false;
107 108 $('#spinner').css('visibility', 'hidden');
108 109 // CB module enable all
... ... @@ -145,7 +146,7 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
145 146  
146 147 $scope.initialize3DWindowData($rootScope.MULTI_VIEW_ID, true, undefined);
147 148  
148   - $scope.DisableUI();
  149 + $scope.Disable3DUI($rootScope.MULTI_VIEW_ID);
149 150  
150 151 if ($rootScope.refreshcheck == null) {
151 152 $location.path('/');
... ... @@ -207,10 +208,10 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
207 208  
208 209 });
209 210  
210   - $timeout(function () { $scope.EnableUI(); }, 200);
  211 + $timeout(function () { $scope.Enable3DUI(windowviewid); }, 200);
211 212 },
212 213 function (error) {
213   - $scope.EnableUI();
  214 + $scope.Enable3DUI(windowviewid);
214 215 // handle errors here
215 216 console.log(' $scope.threeDAnatomyData = ' + error.statusText);
216 217 }
... ... @@ -275,7 +276,7 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
275 276 if ($rootScope.isCallFromOtherModule) {
276 277 $scope.ThreeDModuleData = ModuleService.getModuleData("THREE_D_ANATOMY");
277 278 if($scope.ThreeDModuleData.length<1) return;
278   - $scope.DisableUI();
  279 + $scope.Disable3DUI();
279 280 $scope.readyToLoad = true;
280 281 $rootScope.ThreeDWindowLoadComplete = false;
281 282 $scope.wincount = 1;
... ... @@ -313,20 +314,19 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
313 314  
314 315 }
315 316 else {
316   - $scope.DisableUI();
317 317 $scope.Open3DModelBody(null);
318 318 }
319 319 }
320 320  
321 321 $scope.Open3DModelBody = function (ThreeDModuleData) {
322 322  
323   - $scope.DisableUI();
324   -
325 323 if ($rootScope.isCallFromOtherModule == true) {
326 324 $scope.ThreeDOpenInOtherModules = ThreeDModuleData;
327 325 $rootScope.MULTI_VIEW_ID += 1;
328 326 var windowviewid = $rootScope.MULTI_VIEW_ID;
329 327  
  328 + $scope.Disable3DUI(windowviewid);
  329 +
330 330 $scope.initialize3DWindowData(windowviewid, false, $scope.ThreeDOpenInOtherModules.currentWindowId);
331 331  
332 332 var moduleName = $scope.ThreeDOpenInOtherModules.mType;
... ... @@ -381,7 +381,9 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
381 381  
382 382 );
383 383 }
384   - else {
  384 + else
  385 + {
  386 + $scope.Disable3DUI($rootScope.MULTI_VIEW_ID);
385 387 $scope.Set3DwindowStoreData($rootScope.MULTI_VIEW_ID, 'parentSlugName', '3d-anatomy-list');
386 388 $scope.load3DAnimation($rootScope.MULTI_VIEW_ID);
387 389 }
... ... @@ -504,16 +506,19 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
504 506 $rootScope.resetMenuOptionOnClick(pnlName);
505 507 },
506 508 resizable: {
  509 + minWidth: 600,
  510 + minHeight: 500,
507 511 stop: function (event, ui) {
508 512 var pnlName=event.currentTarget.id;
509 513 var len = (pnlName).split("_").length;
510 514 var windowviewid = (pnlName).split("_")[len - 1];
  515 + var canvasDIvHeight = $('#ThreeDImagePanel_' + windowviewid+ " .jsPanel-content").height();
511 516 $scope.Set3DwindowStoreData(windowviewid, 'width', ui.size.width);
512   - $scope.Set3DwindowStoreData(windowviewid, 'height', ui.size.height);
  517 + $scope.Set3DwindowStoreData(windowviewid, 'height', canvasDIvHeight);
513 518 $scope.Set3DwindowStoreData(windowviewid, 'y', ui.position.top);
514 519 $scope.Set3DwindowStoreData(windowviewid, 'x', ui.position.left);
515 520 $rootScope.UnsaveCurriculum = true;
516   - var canvasDIvHeight = $('#ThreeDImagePanel_' + windowviewid+ " .jsPanel-content").height();
  521 +
517 522 $('#thContentDiv_'+ windowviewid ).css("height",canvasDIvHeight);
518 523 $rootScope.resetMenuOptionOnClick(pnlName);
519 524 }
... ... @@ -575,14 +580,14 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
575 580 }
576 581  
577 582 $scope.AnimationOnLoad = function (windowviewid) {
578   - $scope.EnableUI();
579   -
  583 +
580 584 if ($rootScope.isCallFromOtherModule) {
581 585  
582 586 $rootScope.ThreeDWindowLoadComplete = true;
583 587 }
584 588  
585 589 $scope.JsPanelMouseEnter(windowviewid);
  590 + $scope.Enable3DUI(windowviewid);
586 591  
587 592 }
588 593  
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/AIController.js
... ... @@ -80,6 +80,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
80 80 'maximised': true,
81 81 'minmaxAutoEvent':true,
82 82 'annotationData':{shapeStates:[],paintCanvasState:[]},
  83 + 'imgLeft': 0,
83 84 };
84 85 return windata;
85 86 }
... ... @@ -151,14 +152,15 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
151 152 }
152 153 }
153 154  
154   - $scope.DisableUI = function () {
155   -
156   - var aiImagePanelConetent = document.getElementsByClassName("jsPanel-content");
157   - for (var i = 0; i < aiImagePanelConetent.length; i++) {
158   - aiImagePanelConetent[i].style.pointerEvents = "none";
159   - aiImagePanelConetent[i].style.opacity = "0.7";
  155 + $scope.DisableAIUI = function (windowviewid) {
160 156  
  157 + var modulePanel = $("#aiImagePanel_"+windowviewid).find(" .jsPanel-content");
  158 + if(modulePanel.length>0)
  159 + {
  160 + modulePanel[0].style.pointerEvents="none";
  161 + modulePanel[0].style.opacity="0.7";
161 162 }
  163 +
162 164 $rootScope.isLoading = true;
163 165 $('#spinner').css('visibility', 'visible');
164 166  
... ... @@ -168,12 +170,13 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
168 170  
169 171 }
170 172  
171   - $scope.EnableUI = function () {
  173 + $scope.EnableAIUI = function (windowviewid) {
172 174  
173   - var aiImagePanelConetent = document.getElementsByClassName("jsPanel-content");
174   - for (var i = 0; i < aiImagePanelConetent.length; i++) {
175   - aiImagePanelConetent[i].style.pointerEvents = "auto";
176   - aiImagePanelConetent[i].style.opacity = "1";
  175 + var modulePanel = $("#aiImagePanel_"+windowviewid).find(" .jsPanel-content");
  176 + if(modulePanel.length>0)
  177 + {
  178 + modulePanel[0].style.pointerEvents="auto";
  179 + modulePanel[0].style.opacity="1";
177 180 }
178 181  
179 182 $rootScope.isLoading = false;
... ... @@ -222,7 +225,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
222 225 $scope.setActiveTab = function (tabToSet, inderectCall, windowviewid) {
223 226 if (windowviewid == undefined)
224 227 windowviewid = $rootScope.MULTI_VIEW_ID;
225   - $scope.DisableUI();
  228 + $scope.DisableAIUI(windowviewid);
226 229  
227 230 if(tabToSet=="" ||tabToSet==undefined)
228 231 {
... ... @@ -333,7 +336,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
333 336 $rootScope.isCallFromOtherModule = undefined;
334 337 $rootScope.MULTI_VIEW_ID += 1;
335 338  
336   - $scope.DisableUI();
  339 + $scope.DisableAIUI($rootScope.MULTI_VIEW_ID);
337 340  
338 341 // store exist module in module service
339 342 var ExistData = ModuleService.getModuleData("ADAM_IMAGES");
... ... @@ -476,7 +479,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
476 479  
477 480 },
478 481 function (error) {
479   - $scope.EnableUI();
  482 + $scope.EnableAIUI(windowviewid);
480 483 // handle errors here
481 484 console.log(' $scope.IllustrationData = ' + error.statusText);
482 485 }
... ... @@ -517,7 +520,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
517 520 }, 100);
518 521  
519 522 $timeout(function () {
520   - $scope.EnableUI();
  523 + $scope.EnableAIUI(windowviewid);
521 524 $rootScope.ResetGridListLength();
522 525 }, 500);
523 526  
... ... @@ -525,25 +528,14 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
525 528  
526 529  
527 530 $rootScope.ResetGridListLength=function()
528   - {
529   - var $ua = navigator.userAgent;
530   -
531   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
532   -
533   - var srchHeight=$('.breadcrumb').height();
534   - var gridheight=screen.height-srchHeight-132;
535   - var listheight=screen.height-srchHeight-356;
536   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
537   - $('#ListViewDiv').css({"height":listheight,"overflow":"auto"});
538   - }
539   - else
540   - {
541   - var srchHeight=$('.breadcrumb').height();
542   - var gridheight=screen.height-srchHeight-281;
543   - var listheight=screen.height-srchHeight-504;
544   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
545   - $('#ListViewDiv').css({"height":listheight,"overflow":"auto"});
546   - }
  531 + {
  532 + var innerheight =$(window).innerHeight();
  533 +
  534 + var srchHeight=$('.breadcrumb').height();
  535 + var gridheight=innerheight-srchHeight-140;
  536 + var listheight=innerheight-srchHeight-365;
  537 + $('#grid-view').css({"height":gridheight,"overflow":"auto","min-height":"160px"});
  538 + $('#ListViewDiv').css({"height":listheight,"overflow":"auto","min-height":"100px"});
547 539 }
548 540 $scope.IsVisible = function () {
549 541 $scope.scroll();
... ... @@ -655,7 +647,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
655 647 $scope.filterstring = false;
656 648 $scope.currentPage = 1;
657 649  
658   - $scope.DisableUI();
  650 + $scope.DisableAIUI(windowviewid);
659 651 $scope.loadAllAI(ImageCount, windowviewid);
660 652 }
661 653  
... ... @@ -665,7 +657,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
665 657 $scope.currentPage = 1;
666 658 windowviewid = $rootScope.MULTI_VIEW_ID;
667 659 }
668   - $scope.DisableUI();
  660 + $scope.DisableAIUI(windowviewid);
669 661  
670 662 var currentSearchtext = $rootScope.getLocalStorageValue("SearchText");
671 663 //localStorage.setItem("SearchText", '');
... ... @@ -684,7 +676,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
684 676 if ($scope.query.SearchText == "undefined" || ($scope.query.SearchText == null || $scope.query.SearchText == "")) {
685 677 $('#errorMessage').text(AIAConstants.PLEASE_ENTER_SEARCH_TEXT);
686 678 $("#messageModal").modal('show');
687   - $scope.EnableUI();
  679 + $scope.EnableAIUI(windowviewid);
688 680 return false;
689 681 }
690 682 }
... ... @@ -781,7 +773,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
781 773 }
782 774  
783 775 $timeout(function () {
784   - $scope.EnableUI();
  776 + $scope.EnableAIUI(windowviewid);
785 777 $rootScope.ResetGridListLength();
786 778 }, 500);
787 779  
... ... @@ -833,7 +825,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
833 825 $('#txtSerachInput').val("");
834 826 $scope.idSelected = '';
835 827 $scope.hiderow = false;
836   - $scope.DisableUI();
  828 + $scope.DisableAIUI(windowviewid);
837 829 $('ul li span').removeAttr("style");
838 830 $('#' + $rootScope.SearchTextByAlphabet).css({ "color": "white", "background-color": "#1B92D0" });
839 831 $scope.filterstring = true;
... ... @@ -925,7 +917,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
925 917 }
926 918  
927 919 $timeout(function () {
928   - $scope.EnableUI();
  920 + $scope.EnableAIUI(windowviewid);
929 921 $rootScope.ResetGridListLength();
930 922 }, 500);
931 923 }
... ... @@ -1014,7 +1006,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1014 1006 if ($rootScope.isCallFromOtherModule) {
1015 1007 $scope.AIModuleData = ModuleService.getModuleData("ADAM_IMAGES");
1016 1008 if($scope.AIModuleData.length<1) return;
1017   - $scope.DisableUI();
  1009 + $scope.DisableAIUI();
1018 1010 $scope.readyToLoad = true;
1019 1011 $rootScope.AIWindowLoadComplete = false;
1020 1012 $scope.wincount = 1;
... ... @@ -1053,7 +1045,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1053 1045  
1054 1046 }
1055 1047 else {
1056   - $scope.DisableUI();
  1048 + $scope.DisableAIUI();
1057 1049 $scope.OpenAdamImageView(null);
1058 1050 }
1059 1051 }
... ... @@ -1082,6 +1074,8 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1082 1074 var imageId = $scope.aiOpenInOtherModules.id;
1083 1075  
1084 1076 $scope.SetAIwindowStoreData(windowviewid, 'imageId', imageId);
  1077 + var imgLeft = $scope.aiOpenInOtherModules.imgLeft!=undefined?$scope.aiOpenInOtherModules.imgLeft:0;
  1078 + $scope.SetAIwindowStoreData(windowviewid, 'imgLeft', imgLeft);
1085 1079  
1086 1080 var selectedTileData = [];
1087 1081 selectedTileData = new jinqJs()
... ... @@ -1184,7 +1178,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1184 1178 content: '<div>'+
1185 1179 ' <div class="container-fluid">'+
1186 1180 ' <div class="row">'+
1187   - '<div class="img-thumbnail" style="overflow: scroll;width:100%;position:relative" id="canvasDivAI_' + windowviewid + '" ><canvas id="canvasPaintAI_' + windowviewid + '" ng-click="FreeStylePaint($event)" width="2270" height="1000" class="canvas-annotationStyle1" style="position: absolute;z-index:0;left:0px"></canvas><canvas id="canvasAI_' + windowviewid + '" ng-click="onDrawingCanvasClick($event)" width="2270" height="1000" class="canvas-annotationStyle" style="position: absolute; background-color: transparent;z-index:1;left:0px "></canvas>' +
  1181 + '<div class="img-thumbnail" style="overflow: scroll;width:100%;position:relative" id="canvasDivAI_' + windowviewid + '" ><canvas id="canvasPaintAI_' + windowviewid + '" ng-click="FreeStylePaint($event)" width="2270" height="1000" class="canvas-annotationStyle1" style="position: absolute;z-index:0;left:0px "></canvas><canvas id="canvasAI_' + windowviewid + '" ng-click="onDrawingCanvasClick($event)" width="2270" height="1000" class="canvas-annotationStyle" style="position: absolute; background-color: transparent;z-index:1;left:0px "></canvas>' +
1188 1182 '<img id="aimage_' + windowviewid + '" alt="" title="" style="left:0px;top:0px;position:absolute;visibility:hidden">' +
1189 1183 '</div>'+
1190 1184 '</div></div></div>',
... ... @@ -1215,46 +1209,77 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1215 1209 var pnlName=panel[0].id;
1216 1210 var len = (pnlName).split("_").length;
1217 1211 var windowviewid = (pnlName).split("_")[len - 1];
  1212 +
  1213 + $scope.SetAIwindowStoreData(windowviewid, 'maximised',true);
  1214 + $scope.SetAIwindowStoreData(windowviewid, 'minimised',false);
  1215 + var canvasDIvHeight = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  1216 + var canvasDIvWidth = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").width();
  1217 + var canvasDiv='canvasDivAI_' + windowviewid;
  1218 + var canvasDraw='canvasAI_' + windowviewid;
  1219 + var canvasPaint='canvasPaintAI_' + windowviewid;
  1220 + var imgName='aimage_' + windowviewid;
1218 1221 var isAutoCalled = $scope.GetAIwindowStoreData(windowviewid, 'minmaxAutoEvent');
1219 1222 if(!isAutoCalled)
1220 1223 {
1221 1224 $rootScope.UnsaveCurriculum = true;
1222   - }
1223   - $scope.SetAIwindowStoreData(windowviewid, 'maximised',true);
1224   - $scope.SetAIwindowStoreData(windowviewid, 'minimised',false);
1225   - var canvasDIvHeight = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").height();
1226   - $('#canvasDivAI_' + windowviewid).css('height', canvasDIvHeight-5);
1227   - $rootScope.resetMenuOptionOnClick(pnlName);
  1225 + var oldleft= $rootScope.GetAIwindowData(windowviewid, 'imgLeft');
  1226 + var annotationData=$rootScope.GetAIwindowData(windowviewid,'annotationData');
  1227 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,annotationData);
  1228 + var img = document.getElementById(imgName);
  1229 + $rootScope.SetAIwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  1230 + }
1228 1231  
1229 1232 },
1230 1233 onnormalized:function (panel) {
1231 1234 var pnlName=panel[0].id;
1232 1235 var len = (pnlName).split("_").length;
1233 1236 var windowviewid = (pnlName).split("_")[len - 1];
  1237 +
  1238 + $scope.SetAIwindowStoreData(windowviewid, 'minimised',false);
  1239 + $scope.SetAIwindowStoreData(windowviewid, 'maximised',false);
  1240 + var canvasDIvHeight = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  1241 + var canvasDIvWidth = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").width();
  1242 + var canvasDiv='canvasDivAI_' + windowviewid;
  1243 + var canvasDraw='canvasAI_' + windowviewid;
  1244 + var canvasPaint='canvasPaintAI_' + windowviewid;
  1245 + var imgName='aimage_' + windowviewid;
1234 1246 var isAutoCalled = $scope.GetAIwindowStoreData(windowviewid, 'minmaxAutoEvent');
1235 1247 if(!isAutoCalled)
1236 1248 {
1237 1249 $rootScope.UnsaveCurriculum = true;
1238   - }
1239   - $scope.SetAIwindowStoreData(windowviewid, 'minimised',false);
1240   - $scope.SetAIwindowStoreData(windowviewid, 'maximised',false);
1241   - var canvasDIvHeight = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").height();
1242   - $('#canvasDivAI_' + windowviewid).css('height', canvasDIvHeight-5);
1243   - $rootScope.resetMenuOptionOnClick(pnlName);
  1250 + var oldleft= $rootScope.GetAIwindowData(windowviewid, 'imgLeft');
  1251 + var annotationData=$rootScope.GetAIwindowData(windowviewid,'annotationData');
  1252 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,annotationData);
  1253 + var img = document.getElementById(imgName);
  1254 + $rootScope.SetAIwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  1255 + }
1244 1256 },
1245 1257 resizable: {
  1258 + minWidth: 600,
  1259 + minHeight: 500,
1246 1260 stop: function (event, ui) {
1247 1261 var pnlName=event.currentTarget.id;
1248 1262 var len = (pnlName).split("_").length;
1249 1263 var windowviewid = (pnlName).split("_")[len - 1];
  1264 + $rootScope.UnsaveCurriculum = true;
  1265 + var canvasDIvHeight = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").height();
  1266 + var canvasDIvWidth = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").width();
1250 1267 $scope.SetAIwindowStoreData(windowviewid, 'width', ui.size.width);
1251   - $scope.SetAIwindowStoreData(windowviewid, 'height', ui.size.height);
  1268 + $scope.SetAIwindowStoreData(windowviewid, 'height', canvasDIvHeight);
1252 1269 $scope.SetAIwindowStoreData(windowviewid, 'y', ui.position.top);
1253 1270 $scope.SetAIwindowStoreData(windowviewid, 'x', ui.position.left);
1254   - $rootScope.UnsaveCurriculum = true;
1255   - var canvasDIvHeight = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").height();
1256   - $('#canvasDivAI_' + windowviewid).css('height', canvasDIvHeight-5);
1257   - $rootScope.resetMenuOptionOnClick(pnlName);
  1271 +
  1272 + var canvasDiv='canvasDivAI_' + windowviewid;
  1273 + var canvasDraw='canvasAI_' + windowviewid;
  1274 + var canvasPaint='canvasPaintAI_' + windowviewid;
  1275 + var imgName='aimage_' + windowviewid;
  1276 + var oldleft= $rootScope.GetAIwindowData(windowviewid, 'imgLeft');
  1277 + var annotationData=$rootScope.GetAIwindowData(windowviewid,'annotationData');
  1278 +
  1279 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight-5,canvasDIvWidth,annotationData);
  1280 + var img = document.getElementById(imgName);
  1281 + $rootScope.SetAIwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  1282 +
1258 1283 }
1259 1284  
1260 1285 },
... ... @@ -1297,36 +1322,26 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1297 1322 $timeout(function () {
1298 1323  
1299 1324 $('.jsPanel-content .jsPanel-theme-success').css('overflow-y', 'auto !important')
1300   - var canvasDIvHeight = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").height();
1301   -
1302   - $('#canvasDivAI_' + windowviewid).css('height', canvasDIvHeight-5);
1303   -
1304   -
1305   - var canvas = document.getElementById("canvasAI_" + windowviewid);
1306   - var canvasPaint = document.getElementById("canvasPaintAI_" + windowviewid);
1307   -
1308   - var $ua = navigator.userAgent;
1309   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
1310   - canvas.width = screen.width-20;
1311   - canvasPaint.width = screen.width-20;
1312   - canvas.height = screen.height-130;
1313   - canvasPaint.height = screen.height-130;
1314   - }
1315   - else
1316   - {
1317   - canvas.height = screen.height-280;
1318   - canvasPaint.height = screen.height-280;
1319   - canvas.width = screen.width-40;
1320   - canvasPaint.width = screen.width-40;
1321   - }
1322   -
  1325 + var canvasDIvHeight = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  1326 + var canvasDIvWidth = $('#aiImagePanel_' + windowviewid+ " .jsPanel-content").width();
  1327 +
1323 1328 $scope.SetAIwindowStoreData(windowviewid, 'currentSlug', 'adam-images-detail');
  1329 +
1324 1330 var openedImage = document.getElementById('aimage_' + windowviewid );
1325 1331 openedImage.src = selectedAIImage;
1326 1332 openedImage.onload = function () {
1327   - if (!$rootScope.isCallFromOtherModule) {
1328   - $("#aimage_"+windowviewid).css("left", (screen.width-this.width-70)/2 + "px");
1329   - }
  1333 + var pnlName='aiImagePanel_' + windowviewid;
  1334 + var canvasDiv='canvasDivAI_' + windowviewid;
  1335 + var canvasDraw='canvasAI_' + windowviewid;
  1336 + var canvasPaint='canvasPaintAI_' + windowviewid;
  1337 + var imgName='aimage_' + windowviewid;
  1338 +
  1339 + var demoData= {shapeStates:[],paintCanvasState:""};
  1340 + var oldleft= $rootScope.GetAIwindowData(windowviewid, 'imgLeft');
  1341 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,demoData);
  1342 + var img = document.getElementById(imgName);
  1343 + $rootScope.SetAIwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  1344 +
1330 1345 $("#aimage_"+windowviewid).css("visibility","visible");
1331 1346  
1332 1347 $scope.JsPanelclick(windowviewid);
... ... @@ -1338,14 +1353,22 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1338 1353 {
1339 1354 if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
1340 1355 {
  1356 + var modifiedData=$rootScope.resetAnnotationData(imgName,oldleft,annotationData);
  1357 + if(modifiedData!="" && modifiedData!=undefined)
  1358 + {
  1359 + if(modifiedData.shapeStates.length>0||modifiedData.paintCanvasState.length>0)
  1360 + {
  1361 + annotationData=modifiedData;
  1362 + }
  1363 + }
1341 1364 //first draw shape and then store in object
1342   - $rootScope.LoadCBSavedAnnotation("canvasAI_"+windowviewid,"canvasPaintAI_"+windowviewid,annotationData);
  1365 + $rootScope.LoadCBSavedAnnotation(canvasDraw,canvasPaint,annotationData);
1343 1366 }
1344 1367 }
1345 1368  
1346 1369 }
1347 1370  
1348   - $scope.EnableUI();
  1371 + $scope.EnableAIUI(windowviewid);
1349 1372 $rootScope.AIWindowLoadComplete = true;
1350 1373 };
1351 1374  
... ... @@ -1356,6 +1379,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1356 1379 }
1357 1380  
1358 1381 }
  1382 +
1359 1383 $rootScope.aiAnnotationToolEvent = function (windowviewid) {
1360 1384  
1361 1385 $('#editstylebackgroundcolor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(255,255,255)")
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/AODController.js
... ... @@ -64,14 +64,15 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
64 64 }
65 65 }
66 66  
67   - $scope.DisableUI = function () {
68   -
69   - var aniImagePanelConetent = document.getElementsByClassName("jsPanel-content");
70   - for (var i = 0; i < aniImagePanelConetent.length; i++) {
71   - aniImagePanelConetent[i].style.pointerEvents = "none";
72   - aniImagePanelConetent[i].style.opacity = "0.7";
  67 + $scope.DisableAODUI = function (windowviewid) {
73 68  
  69 + var modulePanel = $("#aodImagePanel_"+windowviewid).find(" .jsPanel-content");
  70 + if(modulePanel.length>0)
  71 + {
  72 + modulePanel[0].style.pointerEvents="none";
  73 + modulePanel[0].style.opacity="0.7";
74 74 }
  75 +
75 76 $rootScope.isLoading = true;
76 77 $('#spinner').css('visibility', 'visible');
77 78  
... ... @@ -80,12 +81,13 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
80 81 $('#HomeContainerDiv').css('opacity', '0.7');
81 82 }
82 83  
83   - $scope.EnableUI = function () {
  84 + $scope.EnableAODUI = function (windowviewid) {
84 85  
85   - var aniImagePanelConetent = document.getElementsByClassName("jsPanel-content");
86   - for (var i = 0; i < aniImagePanelConetent.length; i++) {
87   - aniImagePanelConetent[i].style.pointerEvents = "auto";
88   - aniImagePanelConetent[i].style.opacity = "1";
  86 + var modulePanel = $("#aodImagePanel_"+windowviewid).find(" .jsPanel-content");
  87 + if(modulePanel.length>0)
  88 + {
  89 + modulePanel[0].style.pointerEvents="auto";
  90 + modulePanel[0].style.opacity="1";
89 91 }
90 92  
91 93 $rootScope.isLoading = false;
... ... @@ -150,7 +152,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
150 152  
151 153 $scope.initializeAODWindowData($rootScope.MULTI_VIEW_ID, true, undefined);
152 154  
153   - $scope.DisableUI();
  155 + $scope.DisableAODUI($rootScope.MULTI_VIEW_ID);
154 156  
155 157 if ($rootScope.refreshcheck == null) {
156 158 $location.path('/');
... ... @@ -187,12 +189,12 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
187 189 {
188 190 $('#errorMessage').text(AIAConstants.NO_COURSE_FOUND_MESSAGE);
189 191 $("#messageModal").modal('show');
190   - $scope.EnableUI();
  192 + $scope.EnableAODUI(windowviewid);
191 193  
192 194 }
193 195 },
194 196 function (error) {
195   - $scope.EnableUI();
  197 + $scope.EnableAODUI(windowviewid);
196 198 })
197 199  
198 200 };
... ... @@ -232,28 +234,17 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
232 234  
233 235  
234 236 $timeout(function () {
235   - $scope.EnableUI();
  237 + $scope.EnableAODUI(windowviewid);
236 238 $rootScope.ResetGridListLength();
237 239 }, 400);
238 240  
239 241 }
240 242 $rootScope.ResetGridListLength=function()
241 243 {
242   - var $ua = navigator.userAgent;
243   -
244   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
245   -
246   - var gridheight=screen.height-107;
247   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
248   -
249   - }
250   - else
251   - {
252   - var gridheight=screen.height-252;
253   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
254   -
255   - }
  244 + var innerheight =$(window).innerHeight();
256 245  
  246 + var gridheight=innerheight-115;
  247 + $('#grid-view').css({"height":gridheight,"overflow":"auto","min-height":"200px"});
257 248 }
258 249  
259 250 $scope.openView = function ($event) {
... ... @@ -295,7 +286,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
295 286 }
296 287  
297 288 $scope.loadAdamVideo = function (windowviewid) {
298   - $scope.DisableUI();
  289 + $scope.DisableAODUI(windowviewid);
299 290 $scope.jsPanelID = 'aodImagePanel' + '_' + windowviewid;
300 291 var tittle = $scope.GetAODwindowStoreData(windowviewid, 'currentViewTitle');
301 292  
... ... @@ -393,8 +384,8 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
393 384  
394 385 $scope.MyAODvideoOnLoad = function (windowviewid)
395 386 {
396   - $scope.EnableUI();
397   - $scope.JsPanelMouseEnter(windowviewid);
  387 + $scope.JsPanelMouseEnter(windowviewid);
  388 + $scope.EnableAODUI(windowviewid);
398 389 }
399 390  
400 391 $scope.JsPanelMouseEnter = function (windowviewid) {
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/CAController.js
... ... @@ -126,14 +126,15 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
126 126 }
127 127 }
128 128  
129   - $scope.DisableUI = function () {
130   -
131   - var caImagePanelConetent = document.getElementsByClassName("jsPanel-content");
132   - for (var i = 0; i < caImagePanelConetent.length; i++) {
133   - caImagePanelConetent[i].style.pointerEvents = "none";
134   - caImagePanelConetent[i].style.opacity = "0.7";
  129 + $scope.DisableCAUI = function (windowviewid) {
135 130  
  131 + var modulePanel = $("#caImagePanel_"+windowviewid).find(" .jsPanel-content");
  132 + if(modulePanel.length>0)
  133 + {
  134 + modulePanel[0].style.pointerEvents="none";
  135 + modulePanel[0].style.opacity="0.7";
136 136 }
  137 +
137 138 $rootScope.isLoading = true;
138 139 $('#spinner').css('visibility', 'visible');
139 140  
... ... @@ -142,12 +143,13 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
142 143 $('#HomeContainerDiv').css('opacity', '0.7');
143 144 }
144 145  
145   - $scope.EnableUI = function () {
  146 + $scope.EnableCAUI = function (windowviewid) {
146 147  
147   - var caImagePanelConetent = document.getElementsByClassName("jsPanel-content");
148   - for (var i = 0; i < caImagePanelConetent.length; i++) {
149   - caImagePanelConetent[i].style.pointerEvents = "auto";
150   - caImagePanelConetent[i].style.opacity = "1";
  148 + var modulePanel = $("#caImagePanel_"+windowviewid).find(" .jsPanel-content");
  149 + if(modulePanel.length>0)
  150 + {
  151 + modulePanel[0].style.pointerEvents="auto";
  152 + modulePanel[0].style.opacity="1";
151 153 }
152 154  
153 155 $rootScope.isLoading = false;
... ... @@ -227,7 +229,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
227 229 }
228 230 },
229 231 function (error) {
230   - $scope.EnableUI();
  232 + $scope.EnableCAUI();
231 233 // handle errors here
232 234 console.log(' $scope.AnimationData = ' + error.statusText);
233 235 });
... ... @@ -277,7 +279,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
277 279  
278 280 $scope.initializeCAWindowData($rootScope.MULTI_VIEW_ID, true, undefined);
279 281  
280   - $scope.DisableUI();
  282 + $scope.DisableCAUI($rootScope.MULTI_VIEW_ID);
281 283  
282 284 if ($rootScope.refreshcheck == null) {
283 285 $location.path('/');
... ... @@ -390,7 +392,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
390 392 promise.then(
391 393 function (result) {
392 394  
393   - if($rootScope.userData.Id>1 && $rootScope.userData.LicenseInfo!= null && $rootScope.userData.EditionId<=2 && $rootScope.userData.StudentEdition!= null && $rootScope.userData.StudentEdition.length>0)
  395 + if($rootScope.userData.LicenseInfo!= null && $rootScope.userData.EditionId<=2 && $rootScope.userData.StudentEdition!= null && $rootScope.userData.StudentEdition.length>0)
394 396 {
395 397 $scope.islinkActive = true;
396 398 var AnimationData = new jinqJs()
... ... @@ -419,7 +421,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
419 421  
420 422 },
421 423 function (error) {
422   - $scope.EnableUI();
  424 + $scope.EnableCAUI(windowviewid);
423 425 // handle errors here
424 426 console.log(' $scope.AnimationData = ' + error.statusText);
425 427 });
... ... @@ -435,7 +437,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
435 437 angular.forEach($scope.selectedCAListViewData, function (value, key) {
436 438 var imagePath = "~/../content/images/ca/thumbnails/" + value._ThumbnailImage;
437 439  
438   - if($rootScope.userData.Id>1 && $rootScope.userData.LicenseInfo!= null && $rootScope.userData.EditionId<=2 && $rootScope.userData.StudentEdition!= null && $rootScope.userData.StudentEdition.length>0)
  440 + if($rootScope.userData.LicenseInfo!= null && $rootScope.userData.EditionId<=2 && $rootScope.userData.StudentEdition!= null && $rootScope.userData.StudentEdition.length>0)
439 441 {
440 442 var $el = $('<div class="col-sm-3 col-lg-2">'
441 443 +'<div id="' + value._id + '" title = "'+ value._Title + '" data-ng-click="openView($event)">'
... ... @@ -485,7 +487,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
485 487  
486 488  
487 489 $timeout(function () {
488   - $scope.EnableUI();
  490 + $scope.EnableCAUI(windowviewid);
489 491 $rootScope.ResetGridListLength();
490 492 }, 400);
491 493  
... ... @@ -549,7 +551,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
549 551 if (windowviewid == undefined) // call from also home controller list manager
550 552 windowviewid = $rootScope.MULTI_VIEW_ID;
551 553  
552   - $scope.DisableUI();
  554 + $scope.DisableCAUI(windowviewid);
553 555  
554 556 query.selectedbodyregion = "";
555 557 query.selectedbodysystem = "";
... ... @@ -583,11 +585,11 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
583 585  
584 586 }
585 587  
586   - $scope.ApplySearch = function (query, windowviewid) {
587   - $scope.DisableUI();
  588 + $scope.ApplySearch = function (query, windowviewid) {
588 589 if (windowviewid == undefined) {
589 590 windowviewid = $rootScope.MULTI_VIEW_ID;
590 591 }
  592 + $scope.DisableCAUI(windowviewid);
591 593  
592 594 setTimeout(function(){
593 595 $scope.FilterSearch(query, windowviewid)
... ... @@ -676,7 +678,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
676 678  
677 679 if (selectimg === true && count >= filtercount) {
678 680 var imagePath = "~/../content/images/ca/thumbnails/" + value._ThumbnailImage;
679   - if($rootScope.userData.Id>1 && $rootScope.userData.LicenseInfo!= null && $rootScope.userData.EditionId<=2 && $rootScope.userData.StudentEdition!= null && $rootScope.userData.StudentEdition.length>0)
  681 + if($rootScope.userData.LicenseInfo!= null && $rootScope.userData.EditionId<=2 && $rootScope.userData.StudentEdition!= null && $rootScope.userData.StudentEdition.length>0)
680 682 {
681 683 var $el = $('<div class="col-sm-3 col-lg-2">'
682 684 +'<div id="' + value._id + '" title = "'+ value._Title + '" data-ng-click="openView($event)">'
... ... @@ -743,31 +745,20 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
743 745 }
744 746  
745 747 $timeout(function () {
746   - $scope.EnableUI();
  748 + $scope.EnableCAUI(windowviewid);
747 749 $rootScope.ResetGridListLength();
748 750 }, 500);
749 751 }
750 752  
751 753 $rootScope.ResetGridListLength=function()
752 754 {
753   - var $ua = navigator.userAgent;
754   -
755   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
  755 + var innerheight =$(window).innerHeight();
756 756  
757   - var srchHeight=$('.breadcrumb').height();
758   - var gridheight=screen.height-srchHeight-128;
759   - var listheight=screen.height-srchHeight-352;
760   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
761   - $('#ListViewDiv').css({"height":listheight,"overflow":"auto"});
762   - }
763   - else
764   - {
765   - var srchHeight=$('.breadcrumb').height();
766   - var gridheight=screen.height-srchHeight-276;
767   - var listheight=screen.height-srchHeight-500;
768   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
769   - $('#ListViewDiv').css({"height":listheight,"overflow":"auto"});
770   - }
  757 + var srchHeight=$('.breadcrumb').height();
  758 + var gridheight=innerheight-srchHeight-135;
  759 + var listheight=innerheight-srchHeight-358;
  760 + $('#grid-view').css({"height":gridheight,"overflow":"auto","min-height":"160px"});
  761 + $('#ListViewDiv').css({"height":listheight,"overflow":"auto","min-height":"100px"});
771 762 }
772 763 $scope.scroll = function () {
773 764 $("html,body").scrollTop(0);
... ... @@ -857,7 +848,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
857 848 if ($rootScope.isCallFromOtherModule) {
858 849 $scope.CAModuleData = ModuleService.getModuleData("CLINICAL_ANIMATIONS");
859 850 if($scope.CAModuleData.length<1) return;
860   - $scope.DisableUI();
  851 + $scope.DisableCAUI();
861 852 $scope.readyToLoad = true;
862 853 $rootScope.CAWindowLoadComplete = false;
863 854 $scope.wincount = 1;
... ... @@ -895,7 +886,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
895 886  
896 887 }
897 888 else {
898   - $scope.DisableUI();
  889 + $scope.DisableCAUI();
899 890 $scope.openBodyView(null);
900 891 }
901 892 }
... ... @@ -990,7 +981,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
990 981 $location.path('/');
991 982 }
992 983  
993   - $scope.DisableUI();
  984 + $scope.DisableCAUI(windowviewid);
994 985  
995 986 // $scope.jsPanelID = 'caVideoPanel' + '_' + windowviewid;
996 987 //changes to find the id by partail match
... ... @@ -1062,7 +1053,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1062 1053 theme: 'success',
1063 1054 currentController: 'CAController',
1064 1055 parentSlug: $scope.GetCAwindowStoreData(windowviewid, 'parentSlugName'),
1065   - content: '<script src="' + playerScript + '"></script><script>$(document).ready(function(){videojs("#playerinlineVideo_' + windowviewid + '").pause();$("#btnTxtOnOff_' + windowviewid + '").click(function(){if($.trim($(this).text()) === "Text Off"){$(this).text("Text On");$("#sid_' + windowviewid + '").css("visibility","hidden");}else{$(this).text("Text Off");$("#sid_' + windowviewid + '").css("visibility","visible");} GetTextVisibityCA(event); });});</script>' +
  1056 + content: '<script src="' + playerScript + '"></script><script>$(document).ready(function(){videojs("#playerinlineVideo_' + windowviewid + '").pause();$("#btnTxtOnOff_' + windowviewid + '").click(function(){if($.trim($(this).text()) === "Text Off"){$(this).text("Text On");}else{$(this).text("Text Off");} GetTextVisibityCA(event); });});</script>' +
1066 1057 '<div id="pid" class="row"><div id="divplayerinlineVideo_' + windowviewid + '" class="col-sm-12" align="center" width="640" height="480"><video width="100%" height="400"' +
1067 1058 'class="ADAM_Video video-js vjs-default-skin vjs-big-play-centered" type="$videoType" id="playerinlineVideo_' + windowviewid + '" onloadstart="videoOnLoad(event)"' +
1068 1059 ' poster="' + poster + '"' +
... ... @@ -1078,7 +1069,8 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1078 1069 ' kind="captions" srclang="en" label="On"><object width="640" height="360"' +
1079 1070 ' type="application/x-shockwave-flash" data="//vjs.zencdn.net/3.2/video-js.swf"><param name="allowfullscreen" value="true">' +
1080 1071 ' <param name="allowscriptaccess" value="always"><param name="movie" value="//vjs.zencdn.net/3.2/video-js.swf">' +
1081   - ' <param name="flashvars" ng-value="controls=true&amp;file=' + clickedCAVideo + '"><img ng-src="content/images/common/player/frameaccuracy_logo.jpg" style="height:80%;" alt="Here we are" title="No video playback capabilities"></object></video><div class="col-sm-12 well video-subtitle"><div id="sid_' + windowviewid + '" align="left" style="height:60px;overflow-y:scroll !important;-webkit-overflow-scrolling:touch !important;"><p>' + clickedCASummary + '</p></div><button id="btnTxtOnOff_' + windowviewid + '" class="btn btn-primary pull-right" style="position:relative;top:0px">Text Off</button></div></div></div>',
  1072 + ' <param name="flashvars" ng-value="controls=true&amp;file=' + clickedCAVideo + '"><img ng-src="content/images/common/player/frameaccuracy_logo.jpg" style="height:80%;" alt="Here we are" title="No video playback capabilities"></object></video><div id="summary_' + windowviewid + '" class="well video-subtitle" style="position:relative;left:0px;height:125px;padding:2px!important;margin-bottom:5px!important;bottom:0px;width:100%""><div id="sid_' + windowviewid + '" align="left" style="height:80px;overflow-y:scroll !important;-webkit-overflow-scrolling:touch !important;"><p>' + clickedCASummary + '</p></div><button id="btnTxtOnOff_' + windowviewid + '" class="btn btn-primary pull-right" style="position:relative;top:2px">Text Off</button></div></div></div>',
  1073 +
1082 1074  
1083 1075 title: tittle,
1084 1076 position: {
... ... @@ -1132,7 +1124,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1132 1124 theme: 'success',
1133 1125 currentController: 'CAController',
1134 1126 parentSlug: $scope.GetCAwindowStoreData(windowviewid, 'parentSlugName'),
1135   - content: '<script src="' + playerScript + '"></script><script>$(document).ready(function(){videojs("#playerinlineVideo_' + windowviewid + '").pause();$("#btnTxtOnOff_' + windowviewid + '").click(function(){if($.trim($(this).text()) === "Text Off"){$(this).text("Text On");$("#sid_' + windowviewid + '").css("visibility","hidden");}else{$(this).text("Text Off");$("#sid_' + windowviewid + '").css("visibility","visible");} GetTextVisibityCA(event); });});</script>' +
  1127 + content: '<script src="' + playerScript + '"></script><script>$(document).ready(function(){videojs("#playerinlineVideo_' + windowviewid + '").pause();$("#btnTxtOnOff_' + windowviewid + '").click(function(){if($.trim($(this).text()) === "Text Off"){$(this).text("Text On");}else{$(this).text("Text Off");} GetTextVisibityCA(event); });});</script>' +
1136 1128 '<div id="pid" class="row"><div id="divplayerinlineVideo_' + windowviewid + '" class="col-sm-12" align="center" width="640" height="480"><video width="100%" height="400"' +
1137 1129 'class="ADAM_Video video-js vjs-default-skin vjs-big-play-centered" type="$videoType" id="playerinlineVideo_' + windowviewid + '" onloadstart="videoOnLoad(event)"' +
1138 1130 ' poster="' + poster + '"' +
... ... @@ -1148,7 +1140,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1148 1140 ' kind="captions" srclang="en" label="On"><object width="640" height="360"' +
1149 1141 ' type="application/x-shockwave-flash" data="//vjs.zencdn.net/3.2/video-js.swf"><param name="allowfullscreen" value="true">' +
1150 1142 ' <param name="allowscriptaccess" value="always"><param name="movie" value="//vjs.zencdn.net/3.2/video-js.swf">' +
1151   - ' <param name="flashvars" ng-value="controls=true&amp;file=' + clickedCAVideo + '"><img ng-src="content/images/common/player/frameaccuracy_logo.jpg" style="height:80%;" alt="Here we are" title="No video playback capabilities"></object></video><div class="col-sm-12 well video-subtitle"><div id="sid_' + windowviewid + '" align="left" style="height:60px;overflow-y:scroll !important;-webkit-overflow-scrolling:touch !important;"><p>' + clickedCASummary + '</p></div><button id="btnTxtOnOff_' + windowviewid + '" class="btn btn-primary pull-right" style="position:relative;top:0px">Text Off</button></div></div></div>',
  1143 + ' <param name="flashvars" ng-value="controls=true&amp;file=' + clickedCAVideo + '"><img ng-src="content/images/common/player/frameaccuracy_logo.jpg" style="height:80%;" alt="Here we are" title="No video playback capabilities"></object></video><div id="summary_' + windowviewid + '" class="well video-subtitle" style="position:relative;left:0px;height:125px;padding:2px!important;margin-bottom:5px!important;bottom:0px;width:100%""><div id="sid_' + windowviewid + '" align="left" style="height:80px;overflow-y:scroll !important;-webkit-overflow-scrolling:touch !important;"><p>' + clickedCASummary + '</p></div><button id="btnTxtOnOff_' + windowviewid + '" class="btn btn-primary pull-right" style="position:relative;top:2px">Text Off</button></div></div></div>',
1152 1144  
1153 1145 title: tittle,
1154 1146 position: {
... ... @@ -1184,7 +1176,8 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1184 1176 $scope.SetCAwindowStoreData(windowviewid, 'maximised',true);
1185 1177 $scope.SetCAwindowStoreData(windowviewid, 'minimised',false);
1186 1178 var canvasDIvHeight = $('#caImagePanel_' + windowviewid+ " .jsPanel-content").height();
1187   - $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-120 );
  1179 + var summaryHeight = $('#summary_'+ windowviewid).height()+10;
  1180 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-summaryHeight );
1188 1181 $rootScope.resetMenuOptionOnClick(pnlName);
1189 1182 var $ua = navigator.userAgent;
1190 1183 if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
... ... @@ -1193,11 +1186,11 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1193 1186 {
1194 1187 $("#caImagePanel_"+windowviewid).css('height',canvasDIvHeight+30-150);
1195 1188 $('#caImagePanel_' + windowviewid+ " .jsPanel-content").css('height',canvasDIvHeight-150);
1196   - $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-150-120 );
  1189 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-150-summaryHeight );
1197 1190 }
1198 1191 else if(aodheight<1024)
1199 1192 {
1200   - $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-120 );
  1193 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-summaryHeight );
1201 1194 }
1202 1195 }
1203 1196 },
... ... @@ -1213,21 +1206,25 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1213 1206 $scope.SetCAwindowStoreData(windowviewid, 'minimised',false);
1214 1207 $scope.SetCAwindowStoreData(windowviewid, 'maximised',false);
1215 1208 var canvasDIvHeight = $('#caImagePanel_' + windowviewid+ " .jsPanel-content").height();
1216   - $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-120 );
  1209 + var summaryHeight = $('#summary_'+ windowviewid).height()+10;
  1210 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-summaryHeight );
1217 1211 $rootScope.resetMenuOptionOnClick(pnlName);
1218 1212 },
1219 1213 resizable: {
  1214 + minWidth: 600,
  1215 + minHeight: 500,
1220 1216 stop: function (event, ui) {
1221 1217 var pnlName=event.currentTarget.id;
1222 1218 var len = (pnlName).split("_").length;
1223 1219 var windowviewid = (pnlName).split("_")[len - 1];
  1220 + var canvasDIvHeight = $('#caImagePanel_' + windowviewid+ " .jsPanel-content").height();
1224 1221 $scope.SetCAwindowStoreData(windowviewid, 'width', ui.size.width);
1225   - $scope.SetCAwindowStoreData(windowviewid, 'height', ui.size.height);
  1222 + $scope.SetCAwindowStoreData(windowviewid, 'height', canvasDIvHeight);
1226 1223 $scope.SetCAwindowStoreData(windowviewid, 'y', ui.position.top);
1227 1224 $scope.SetCAwindowStoreData(windowviewid, 'x', ui.position.left);
1228 1225 $rootScope.UnsaveCurriculum = true;
1229   - var canvasDIvHeight = $('#caImagePanel_' + windowviewid+ " .jsPanel-content").height();
1230   - $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-120 );
  1226 + var summaryHeight = $('#summary_'+ windowviewid).height()+10;
  1227 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-summaryHeight );
1231 1228 $rootScope.resetMenuOptionOnClick(pnlName);
1232 1229 }
1233 1230  
... ... @@ -1245,28 +1242,27 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1245 1242 }
1246 1243 });
1247 1244 }
1248   -
1249 1245  
1250   - var isMaximize = $scope.GetCAwindowStoreData(windowviewid, 'maximised');
1251   - var isMinimize = $scope.GetCAwindowStoreData(windowviewid, 'minimised');
1252   - if (isMaximize) {
1253   - $scope.jsPanelCA.maximize();
1254   - }
1255   - else if (isMinimize) {
1256   - $scope.jsPanelCA.minimize();
1257   - }
1258   - else {
1259   - $scope.jsPanelCA.normalize();
1260   - }
1261   - $rootScope.AllPanelObject(windowviewid,$scope.jsPanelCA);
1262   -
1263   - $("#caImagePanel_"+windowviewid).css('overflow','hidden');
1264   - // set false after initial call of min,max or normal
1265   - $scope.SetCAwindowStoreData(windowviewid, 'minmaxAutoEvent', false);
1266   - $scope.SetCAwindowStoreData(windowviewid, 'y', $scope.jsPanelTop);
1267   - $scope.SetCAwindowStoreData(windowviewid, 'x', $scope.jsPanelLeft);
1268   - $scope.SetCAwindowStoreData(windowviewid, 'width', $scope.jsPanelWidth);
1269   - $scope.SetCAwindowStoreData(windowviewid, 'height', $scope.jsPanelHeight);
  1246 + var isMaximize = $scope.GetCAwindowStoreData(windowviewid, 'maximised');
  1247 + var isMinimize = $scope.GetCAwindowStoreData(windowviewid, 'minimised');
  1248 + if (isMaximize) {
  1249 + $scope.jsPanelCA.maximize();
  1250 + }
  1251 + else if (isMinimize) {
  1252 + $scope.jsPanelCA.minimize();
  1253 + }
  1254 + else {
  1255 + $scope.jsPanelCA.normalize();
  1256 + }
  1257 + $rootScope.AllPanelObject(windowviewid,$scope.jsPanelCA);
  1258 +
  1259 + $("#caImagePanel_"+windowviewid).css('overflow','hidden');
  1260 + // set false after initial call of min,max or normal
  1261 + $scope.SetCAwindowStoreData(windowviewid, 'minmaxAutoEvent', false);
  1262 + $scope.SetCAwindowStoreData(windowviewid, 'y', $scope.jsPanelTop);
  1263 + $scope.SetCAwindowStoreData(windowviewid, 'x', $scope.jsPanelLeft);
  1264 + $scope.SetCAwindowStoreData(windowviewid, 'width', $scope.jsPanelWidth);
  1265 + $scope.SetCAwindowStoreData(windowviewid, 'height', $scope.jsPanelHeight);
1270 1266  
1271 1267 $scope.SetCAwindowStoreData(windowviewid, 'currentSlug', 'clinical-animations-detail');
1272 1268 $('html, body').animate({ scrollTop: 0 });
... ... @@ -1278,28 +1274,9 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1278 1274  
1279 1275 var canvasDIvHeight = $('#caImagePanel_' + windowviewid+ " .jsPanel-content").height();
1280 1276  
1281   - $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-120 );
1282   -
1283   - var videoHeight = $('#playerinlineVideo_'+ windowviewid ).height();
1284   -
1285   - var textH = $('.video-subtitle').height();
1286   - textH = textH + 40;
1287   - var blackBorderHeight = canvasDIvHeight - (videoHeight + textH);
1288   -
1289   - if ($('.jsPanel-content').length > 0) {
1290   - $('.video-subtitle').css('margin-bottom', blackBorderHeight);
1291   - $('#divplayerinlineVideo_'+ windowviewid ).css('background', '#fff');
1292   - //Android > Clinical Animations > The animation does not fit to the screen in the Landscape mode.
1293   - var $ua = navigator.userAgent;
1294   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) { $('.jsPanel-content').css("width", "100%"); }
1295   - }
1296   -
1297   - if(screen.height<=640)
1298   - {
1299   - $('#btnTxtOnOff_' + windowviewid).css("top", "-15px");
1300   - }
1301   -
  1277 + var summaryHeight = $('#summary_'+ windowviewid).height();
1302 1278  
  1279 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-summaryHeight);
1303 1280 }
1304 1281  
1305 1282 //Calling methode for save Js Panel Activity for SaveCB
... ... @@ -1308,7 +1285,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1308 1285  
1309 1286 $scope.videoOnLoad = function (windowviewid)
1310 1287 {
1311   - $scope.EnableUI();
  1288 + $scope.EnableCAUI(windowviewid);
1312 1289  
1313 1290 if ($rootScope.isCallFromOtherModule) {
1314 1291 //$scope.JsPanelclick(windowviewid);
... ... @@ -1318,16 +1295,22 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1318 1295 $scope.JsPanelclick(windowviewid);
1319 1296  
1320 1297 var isTextVisible = $scope.GetCAwindowStoreData(windowviewid, 'isTextVisible');
  1298 + var canvasDIvHeight = $('#caImagePanel_' + windowviewid+ " .jsPanel-content").height();
  1299 +
1321 1300 if(isTextVisible)
1322 1301 {
1323   - $("#btnTxtOnOff_" + windowviewid).text("Text Off");
1324   - $("#sid_" + windowviewid).css("visibility", "visible");
  1302 + $("#sid_" + windowviewid).css("display", "block");
  1303 + $("#btnTxtOnOff_" + windowviewid).text("Text Off");
  1304 + $('#summary_'+ windowviewid ).css("height","125px");
  1305 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-125 );
1325 1306 }
1326 1307 else
1327 1308 {
  1309 + $("#sid_" + windowviewid).css("display", "none");
1328 1310 $("#btnTxtOnOff_" + windowviewid).text("Text On");
1329   - $("#sid_" + windowviewid).css("visibility", "hidden");
1330   -
  1311 + $('#summary_'+ windowviewid ).css("height","40px");
  1312 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-40 );
  1313 +
1331 1314 }
1332 1315  
1333 1316 }
... ... @@ -1399,11 +1382,19 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1399 1382  
1400 1383 $scope.GetTextVisiblity = function (windowviewid, btnTextValue) {
1401 1384 var isVisible;
  1385 + var canvasDIvHeight = $('#caImagePanel_' + windowviewid+ " .jsPanel-content").height();
1402 1386 if (btnTextValue == "Text On") {
1403 1387 isVisible = false;
  1388 + $("#sid_" + windowviewid).css("display", "none");
  1389 + $('#summary_'+ windowviewid ).css("height","40px");
  1390 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-40 );
1404 1391 $scope.SetCAwindowStoreData(windowviewid, 'isTextVisible', isVisible);
1405   - } else {
  1392 + } else
  1393 + {
1406 1394 isVisible = true;
  1395 + $("#sid_" + windowviewid).css("display", "block");
  1396 + $('#summary_'+ windowviewid ).css("height","125px");
  1397 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight-125 );
1407 1398 $scope.SetCAwindowStoreData(windowviewid, 'isTextVisible', isVisible);
1408 1399 }
1409 1400 }
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/CIController.js
... ... @@ -76,6 +76,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
76 76 'maximised': true,
77 77 'minmaxAutoEvent':true,
78 78 'annotationData':{shapeStates:[],paintCanvasState:[]},
  79 + 'imgLeft': 0,
79 80  
80 81 };
81 82 return windata;
... ... @@ -148,14 +149,15 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
148 149 }
149 150 }
150 151  
151   - $scope.DisableUI = function () {
152   -
153   - var ciImagePanelConetent = document.getElementsByClassName("jsPanel-content");
154   - for (var i = 0; i < ciImagePanelConetent.length; i++) {
155   - ciImagePanelConetent[i].style.pointerEvents = "none";
156   - ciImagePanelConetent[i].style.opacity = "0.7";
  152 + $scope.DisableCIUI = function (windowviewid) {
157 153  
  154 + var modulePanel = $("#ciImagePanel_"+windowviewid).find(" .jsPanel-content");
  155 + if(modulePanel.length>0)
  156 + {
  157 + modulePanel[0].style.pointerEvents="none";
  158 + modulePanel[0].style.opacity="0.7";
158 159 }
  160 +
159 161 $rootScope.isLoading = true;
160 162 $('#spinner').css('visibility', 'visible');
161 163  
... ... @@ -164,12 +166,13 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
164 166 $('#HomeContainerDiv').css('opacity', '0.7');
165 167 }
166 168  
167   - $scope.EnableUI = function () {
  169 + $scope.EnableCIUI = function (windowviewid) {
168 170  
169   - var ciImagePanelConetent = document.getElementsByClassName("jsPanel-content");
170   - for (var i = 0; i < ciImagePanelConetent.length; i++) {
171   - ciImagePanelConetent[i].style.pointerEvents = "auto";
172   - ciImagePanelConetent[i].style.opacity = "1";
  171 + var modulePanel = $("#ciImagePanel_"+windowviewid).find(" .jsPanel-content");
  172 + if(modulePanel.length>0)
  173 + {
  174 + modulePanel[0].style.pointerEvents="auto";
  175 + modulePanel[0].style.opacity="1";
173 176 }
174 177  
175 178 $rootScope.isLoading = false;
... ... @@ -214,7 +217,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
214 217  
215 218 $scope.initializeCIWindowData($rootScope.MULTI_VIEW_ID, true, undefined);
216 219  
217   - $scope.DisableUI();
  220 + $scope.DisableCIUI($rootScope.MULTI_VIEW_ID);
218 221  
219 222 if ($rootScope.refreshcheck == null) {
220 223 $location.path('/');
... ... @@ -359,7 +362,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
359 362  
360 363 },
361 364 function (error) {
362   - $scope.EnableUI();
  365 + $scope.EnableCIUI(windowviewid);
363 366 // handle errors here
364 367 console.log(' $scope.IllustrationData = ' + error.statusText);
365 368 }
... ... @@ -395,7 +398,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
395 398  
396 399  
397 400 $timeout(function () {
398   - $scope.EnableUI();
  401 + $scope.EnableCIUI(windowviewid);
399 402 $rootScope.ResetGridListLength();
400 403 }, 400);
401 404  
... ... @@ -459,7 +462,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
459 462 if (windowviewid == undefined) // call from also home controller list manager
460 463 windowviewid = $rootScope.MULTI_VIEW_ID;
461 464  
462   - $scope.DisableUI();
  465 + $scope.DisableCIUI(windowviewid);
463 466  
464 467 query.selectedbodyregion = "";
465 468 query.selectedbodysystem = "";
... ... @@ -493,10 +496,11 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
493 496  
494 497 }
495 498 $scope.ApplySearch = function (query, windowviewid) {
496   - $scope.DisableUI();
  499 +
497 500 if (windowviewid == undefined) {
498 501 windowviewid = $rootScope.MULTI_VIEW_ID;
499 502 }
  503 + $scope.DisableCIUI(windowviewid);
500 504  
501 505 setTimeout(function(){
502 506 $scope.FilterSearch(query, windowviewid)
... ... @@ -686,31 +690,20 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
686 690 }
687 691  
688 692 $timeout(function () {
689   - $scope.EnableUI();
  693 + $scope.EnableCIUI(windowviewid);
690 694 $rootScope.ResetGridListLength();
691 695 }, 400);
692 696 }
693 697  
694 698 $rootScope.ResetGridListLength=function()
695 699 {
696   - var $ua = navigator.userAgent;
697   -
698   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
  700 + var innerheight =$(window).innerHeight();
699 701  
700   - var srchHeight=$('.breadcrumb').height();
701   - var gridheight=screen.height-srchHeight-128;
702   - var listheight=screen.height-srchHeight-352;
703   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
704   - $('#ListViewDiv').css({"height":listheight,"overflow":"auto"});
705   - }
706   - else
707   - {
708   - var srchHeight=$('.breadcrumb').height();
709   - var gridheight=screen.height-srchHeight-276;
710   - var listheight=screen.height-srchHeight-500;
711   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
712   - $('#ListViewDiv').css({"height":listheight,"overflow":"auto"});
713   - }
  702 + var srchHeight=$('.breadcrumb').height();
  703 + var gridheight=innerheight-srchHeight-135;
  704 + var listheight=innerheight-srchHeight-358;
  705 + $('#grid-view').css({"height":gridheight,"overflow":"auto","min-height":"160px"});
  706 + $('#ListViewDiv').css({"height":listheight,"overflow":"auto","min-height":"100px"});
714 707 }
715 708  
716 709 $scope.scroll = function () {
... ... @@ -792,7 +785,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
792 785 if ($rootScope.isCallFromOtherModule) {
793 786 $scope.CIModuleData = ModuleService.getModuleData("CLINICAL_ILLUSTRATIONS");
794 787 if($scope.CIModuleData.length<1) return;
795   - $scope.DisableUI();
  788 + $scope.DisableCIUI();
796 789 $scope.readyToLoad = true;
797 790 $rootScope.CIWindowLoadComplete = false;
798 791 $scope.wincount = 1;
... ... @@ -830,7 +823,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
830 823  
831 824 }
832 825 else {
833   - $scope.DisableUI();
  826 + $scope.DisableCIUI();
834 827 $scope.openBodyView(null);
835 828 }
836 829 }
... ... @@ -859,6 +852,8 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
859 852 var imageId = $scope.ciOpenInOtherModules.id;
860 853  
861 854 $scope.SetCIwindowStoreData(windowviewid, 'imageId', imageId);
  855 + var imgLeft = $scope.ciOpenInOtherModules.imgLeft!=undefined?$scope.ciOpenInOtherModules.imgLeft:0;
  856 + $scope.SetCIwindowStoreData(windowviewid, 'imgLeft', imgLeft);
862 857  
863 858 var selectedTileData = [];
864 859 selectedTileData = new jinqJs()
... ... @@ -971,9 +966,15 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
971 966 '<div class="img-thumbnail" style="overflow: scroll;width:100%;position:relative" id="canvasDivCI_' + windowviewid + '"> <canvas id="canvasPaintCI_' + windowviewid + '" ng-click="FreeStylePaint($event)" width="2270" height="700" class="canvas-annotationStyle1" style="position: absolute;z-index:0;left:0px"></canvas><canvas id="canvasCI_' + windowviewid + '" ng-click="onDrawingCanvasClick($event)" width="2270" height="700" class="canvas-annotationStyle" style="position: absolute; background-color: transparent;z-index:1;left:0px "></canvas>' +
972 967 //'<div class="col-sm-12 img-thumbnail" align="center">' +
973 968 '<img id="ciimage_' + windowviewid + '" alt="" title="" style="left:0px;top:0px;position:absolute;visibility:hidden">' +
974   - '<div id="summary_' + windowviewid + '" class="col-sm-12 well img-subtitle" style="position:absolute;margin-bottom:0px;padding:5px;width:99%">' +
  969 + '<div id="summary_' + windowviewid + '" class="col-sm-12 well img-subtitle" style="position:absolute;left:0px;bottom:0px;margin-bottom:0px;padding:5px;width:100%">' +
975 970 '<div id="sid_' + windowviewid + '" align="left" style="height:100px;overflow-y:scroll !important;-webkit-overflow-scrolling:touch !important;"><p>' + selectedImageCISummary + '</p></div><button id="btnTxtOnOff_' + windowviewid + '" class="btn btn-primary pull-right">Text Off</button>' +
976   - '<script>$(document).ready(function(){ var $ua = navigator.userAgent;if(($ua.match(/(iPod|iPhone|iPad|android)/i))) { $(".jsPanel-content").css({ "width": "100%"});$("#' + $scope.jsPanelID + '").css("width", "100%"); }$("#btnTxtOnOff_' + windowviewid + '").click(function(){if($.trim($(this).text()) === "Text Off"){$(this).text("Text On");$("#sid_' + windowviewid + '").css("visibility","hidden");}else{$(this).text("Text Off");$("#sid_' + windowviewid + '").css("visibility","visible");} GetTextVisibityCI(event);});});</script></div>' +
  971 + '<script>$(document).ready(function(){ var $ua = navigator.userAgent;if(($ua.match(/(iPod|iPhone|iPad|android)/i))) { $(".jsPanel-content").css({ "width": "100%"});$("#' + $scope.jsPanelID + '").css("width", "100%"); }$("#btnTxtOnOff_' + windowviewid + '").click(function(){if($.trim($(this).text()) === "Text Off")'+
  972 + '{'+
  973 + '$(this).text("Text On");'+
  974 + '}'+
  975 + 'else{'+
  976 + '$(this).text("Text Off");'+
  977 + '} GetTextVisibityCI(event);});});</script></div>' +
977 978 '</div>'+
978 979 '</div></div></div>',
979 980 title: tittle,
... ... @@ -1001,58 +1002,80 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1001 1002 onmaximized:function (panel) {
1002 1003 var pnlName=panel[0].id;
1003 1004 var len = (pnlName).split("_").length;
1004   - var windowviewid = (pnlName).split("_")[len - 1];
1005   - var isAutoCalled = $scope.GetCIwindowStoreData(windowviewid, 'minmaxAutoEvent');
1006   - if(!isAutoCalled)
1007   - {
1008   - $rootScope.UnsaveCurriculum = true;
1009   - }
  1005 + var windowviewid = (pnlName).split("_")[len - 1];
1010 1006 $scope.SetCIwindowStoreData(windowviewid, 'maximised',true);
1011 1007 $scope.SetCIwindowStoreData(windowviewid, 'minimised',false);
1012   - var canvasDIvHeight = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").height();
1013   - $('#canvasDivCI_' + windowviewid).css('height', canvasDIvHeight);
1014   - $rootScope.resetMenuOptionOnClick(pnlName);
  1008 + var canvasDIvHeight = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  1009 + var canvasDIvWidth = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").width();
  1010 + var canvasDiv='canvasDivCI_' + windowviewid;
  1011 + var canvasDraw='canvasCI_' + windowviewid;
  1012 + var canvasPaint='canvasPaintCI_' + windowviewid;
  1013 + var imgName='ciimage_' + windowviewid;
1015 1014  
  1015 + var isAutoCalled = $scope.GetCIwindowStoreData(windowviewid, 'minmaxAutoEvent');
  1016 + if(!isAutoCalled)
  1017 + {
  1018 + $rootScope.UnsaveCurriculum = true;
  1019 + var oldleft= $rootScope.GetCIwindowData(windowviewid, 'imgLeft');
  1020 + var annotationData=$rootScope.GetCIwindowData(windowviewid,'annotationData');
  1021 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,annotationData);
  1022 + var img = document.getElementById(imgName);
  1023 + $rootScope.SetCIwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  1024 + }
  1025 +
1016 1026 },
1017 1027 onnormalized:function (panel) {
1018 1028 var pnlName=panel[0].id;
1019 1029 var len = (pnlName).split("_").length;
1020 1030 var windowviewid = (pnlName).split("_")[len - 1];
  1031 + $scope.SetCIwindowStoreData(windowviewid, 'minimised',false);
  1032 + $scope.SetCIwindowStoreData(windowviewid, 'maximised',false);
  1033 + var canvasDIvHeight = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  1034 + var canvasDIvWidth = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").width();
  1035 + var canvasDiv='canvasDivCI_' + windowviewid;
  1036 + var canvasDraw='canvasCI_' + windowviewid;
  1037 + var canvasPaint='canvasPaintCI_' + windowviewid;
  1038 + var imgName='ciimage_' + windowviewid;
  1039 +
1021 1040 var isAutoCalled = $scope.GetCIwindowStoreData(windowviewid, 'minmaxAutoEvent');
1022 1041 if(!isAutoCalled)
1023 1042 {
1024   - $rootScope.UnsaveCurriculum = true;
  1043 + $rootScope.UnsaveCurriculum = true;
  1044 + var oldleft= $rootScope.GetCIwindowData(windowviewid, 'imgLeft');
  1045 + var annotationData=$rootScope.GetCIwindowData(windowviewid,'annotationData');
  1046 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,annotationData);
  1047 + var img = document.getElementById(imgName);
  1048 + $rootScope.SetCIwindowData(windowviewid, 'imgLeft',img.offsetLeft);
1025 1049 }
1026   - $scope.SetCIwindowStoreData(windowviewid, 'minimised',false);
1027   - $scope.SetCIwindowStoreData(windowviewid, 'maximised',false);
1028   - var canvasDIvHeight = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").height();
1029   - $('#canvasDivCI_' + windowviewid).css('height', canvasDIvHeight);
1030   - $rootScope.resetMenuOptionOnClick(pnlName);
  1050 +
1031 1051 },
1032 1052 resizable: {
  1053 + minWidth: 600,
  1054 + minHeight: 500,
1033 1055 stop: function (event, ui) {
1034 1056 var pnlName=event.currentTarget.id;
1035 1057 var len = (pnlName).split("_").length;
1036 1058 var windowviewid = (pnlName).split("_")[len - 1];
  1059 + var canvasDIvHeight = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").height();
  1060 + var canvasDIvWidth = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").width();
1037 1061 $scope.SetCIwindowStoreData(windowviewid, 'width', ui.size.width);
1038   - $scope.SetCIwindowStoreData(windowviewid, 'height', ui.size.height);
  1062 + $scope.SetCIwindowStoreData(windowviewid, 'height', canvasDIvHeight);
1039 1063 $scope.SetCIwindowStoreData(windowviewid, 'y', ui.position.top);
1040 1064 $scope.SetCIwindowStoreData(windowviewid, 'x', ui.position.left);
1041 1065 $rootScope.UnsaveCurriculum = true;
1042   - var canvasDIvHeight = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").height();
1043   - //annotation lost after resize paint canvas
1044   - // var canvasDIvWidth = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").width()-50;
1045   - // var canvas = document.getElementById("canvasCI_" + windowviewid);
1046   - // var canvasPaint = document.getElementById("canvasPaintCI_" + windowviewid);
1047   - //canvas.height = canvasDIvHeight-200;
1048   - // canvasPaint.height = canvasDIvHeight-200;
1049   - // canvas.width = canvasDIvWidth;
1050   - // canvasPaint.width = canvasDIvWidth;
1051   -
1052   - $('#canvasDivCI_' + windowviewid).css('height', canvasDIvHeight);
1053   - $rootScope.resetMenuOptionOnClick(pnlName);
1054   -
1055 1066  
  1067 +
  1068 + var canvasDiv='canvasDivCI_' + windowviewid;
  1069 + var canvasDraw='canvasCI_' + windowviewid;
  1070 + var canvasPaint='canvasPaintCI_' + windowviewid;
  1071 + var imgName='ciimage_' + windowviewid;
  1072 + var oldleft= $rootScope.GetCIwindowData(windowviewid, 'imgLeft');
  1073 + var annotationData=$rootScope.GetCIwindowData(windowviewid,'annotationData');
  1074 +
  1075 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight-5,canvasDIvWidth,annotationData);
  1076 + var img = document.getElementById(imgName);
  1077 + $rootScope.SetCIwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  1078 +
1056 1079 }
1057 1080  
1058 1081 },
... ... @@ -1094,74 +1117,44 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1094 1117  
1095 1118  
1096 1119 $scope.SetCIwindowStoreData(windowviewid, 'currentSlug', 'clinical-illustrations-detail');
1097   - var $ua = navigator.userAgent;
1098   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
1099   - $('#summary_' + windowviewid).css("top", screen.height-270);
1100   - }
1101   - else
1102   - {
1103   - $('#summary_' + windowviewid).css("top", screen.height-420);
1104   - }
  1120 +
1105 1121 $timeout(function () {
1106   - var canvasDIvHeight = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").height();
1107   -
1108   - $('#canvasDivCI_' + windowviewid).css('height', canvasDIvHeight);
  1122 + var canvasDIvHeight = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  1123 + var canvasDIvWidth = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").width();
1109 1124  
1110   - if (!$rootScope.isCallFromOtherModule) {
1111   - $('#CIView').css("height", $(window).innerHeight()-100);
1112   - $('#CIView').css("width",$(window).innerWidth()-100);
1113   - }
1114   -
1115   - var canvas = document.getElementById("canvasCI_" + windowviewid);
1116   - var canvasPaint = document.getElementById("canvasPaintCI_" + windowviewid);
1117   -
1118   - var $ua = navigator.userAgent;
1119   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
1120   - canvas.width = screen.width-20;
1121   - canvasPaint.width = screen.width-20;
1122   - canvas.height = screen.height-270;
1123   - canvasPaint.height = screen.height-270;
1124   - }
1125   - else
1126   - {
1127   - canvas.width = screen.width-40;
1128   - canvasPaint.width = screen.width-40;
1129   - canvas.height = screen.height-400;
1130   - canvasPaint.height = screen.height-400;
1131   - }
1132   - if(screen.height<400)
1133   - {
1134   - $('#summary_' + windowviewid).css("bottom", "-220px");
1135   - }
1136   -
1137 1125 var openedImage = document.getElementById('ciimage_' + windowviewid );
1138 1126 openedImage.src = selectedCIImage;
1139 1127 openedImage.onload = function () {
1140   - if (!$rootScope.isCallFromOtherModule) {
1141   - $("#ciimage_"+windowviewid).css("left", (screen.width-this.width-70)/2 + "px");
1142   - }
  1128 + var pnlName='ciImagePanel_' + windowviewid;
  1129 + var canvasDiv='canvasDivCI_' + windowviewid;
  1130 + var canvasDraw='canvasCI_' + windowviewid;
  1131 + var canvasPaint='canvasPaintCI_' + windowviewid;
  1132 + var imgName='ciimage_' + windowviewid;
  1133 +
  1134 + var demoData= {shapeStates:[],paintCanvasState:""};
  1135 + var oldleft= $rootScope.GetCIwindowData(windowviewid, 'imgLeft');
  1136 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,demoData);
  1137 + var img = document.getElementById(imgName);
  1138 + $rootScope.SetCIwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  1139 +
1143 1140 $("#ciimage_"+windowviewid).css("visibility","visible");
1144   - var canvasZIndex = $("#canvasCI_" + windowviewid).css("z-index");
1145   - var canvasPaintZIndex = $("#canvasPaintCI_" + windowviewid).css("z-index");
1146   -
1147   - if (parseInt(canvasZIndex) < parseInt(canvasPaintZIndex)) {
1148   - canvasPaintZIndex = parseInt(canvasPaintZIndex) + 1;
1149   - $('#summary_' + windowviewid).css("z-index", canvasPaintZIndex);
1150   - }
1151   - else {
1152   - canvasZIndex = parseInt(canvasZIndex) + 1;
1153   - $('#summary_' + windowviewid).css("z-index", canvasZIndex);
1154   - }
1155   -
  1141 +
  1142 + $rootScope.SetPaintZindexforCISummary(windowviewid);
1156 1143 $scope.JsPanelclick(windowviewid);
1157 1144  
1158 1145 var isTextVisible = $scope.GetCIwindowStoreData(windowviewid, 'isTextVisible');
1159 1146  
1160 1147 if (isTextVisible) {
1161   - $("#btnTxtOnOff_" + windowviewid).text("Text Off"); $("#sid_" + windowviewid).css("visibility", "visible");
  1148 + $("#btnTxtOnOff_" + windowviewid).text("Text Off");
  1149 + $("#sid_" + windowviewid).css("display", "block");
  1150 + // $('#summary_' + windowviewid).css({"width": "100%","left":"0px"});
1162 1151 }
1163   - else {
1164   - $("#btnTxtOnOff_" + windowviewid).text("Text On"); $("#sid_" + windowviewid).css("visibility", "hidden");
  1152 + else
  1153 + {
  1154 + $("#btnTxtOnOff_" + windowviewid).text("Text On");
  1155 + $("#sid_" + windowviewid).css("display", "none");
  1156 + // var canvasWidth = $('#ciImagePanel_' + windowviewid+ " .jsPanel-content").width()-107;
  1157 + // $('#summary_' + windowviewid).css({"width": "87px","left":canvasWidth+'px'});
1165 1158 }
1166 1159 if ($rootScope.isCallFromOtherModule) {
1167 1160 var annotationData= $scope.ciOpenInOtherModules.annotationData;
... ... @@ -1169,14 +1162,23 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1169 1162 if(annotationData!="" && annotationData!=undefined)
1170 1163 {
1171 1164 if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
1172   - {
  1165 + {
  1166 + var modifiedData=$rootScope.resetAnnotationData(imgName,oldleft,annotationData);
  1167 + if(modifiedData!="" && modifiedData!=undefined)
  1168 + {
  1169 + if(modifiedData.shapeStates.length>0||modifiedData.paintCanvasState.length>0)
  1170 + {
  1171 + annotationData=modifiedData;
  1172 + }
  1173 + }
1173 1174 //first draw shape and then store in object
1174   - $rootScope.LoadCBSavedAnnotation("canvasCI_"+windowviewid,"canvasPaintCI_"+windowviewid,annotationData);
  1175 + $rootScope.LoadCBSavedAnnotation(canvasDraw,canvasPaint,annotationData);
  1176 +
1175 1177 }
1176 1178 }
1177 1179  
1178 1180 }
1179   - $scope.EnableUI();
  1181 + $scope.EnableCIUI(windowviewid);
1180 1182 $rootScope.CIWindowLoadComplete = true;
1181 1183  
1182 1184 };
... ... @@ -1268,11 +1270,20 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
1268 1270 var isVisible;
1269 1271 if (btnTextValue == "Text On") {
1270 1272 isVisible = false;
  1273 + $('#sid_' + windowviewid).css("display","none");
  1274 + // var canvasWidth =$('#ciImagePanel_' + windowviewid + ' .jsPanel-content').width()-107;
  1275 + // $('#summary_' + windowviewid).css({"width": "87px","left":canvasWidth+"px"});
1271 1276 $scope.SetCIwindowStoreData(windowviewid, 'isTextVisible', isVisible);
1272   - } else {
  1277 + }
  1278 + else
  1279 + {
1273 1280 isVisible = true;
  1281 + $('#sid_' + windowviewid).css("display","block");
  1282 + // $('#summary_' + windowviewid).css({"width": "100%","left":"0px"});
1274 1283 $scope.SetCIwindowStoreData(windowviewid, 'isTextVisible', isVisible);
1275 1284 }
  1285 +
  1286 + $rootScope.SetPaintZindexforCISummary(windowviewid);
1276 1287 }
1277 1288  
1278 1289 $scope.RemoveJSPanel = function (panelid) {
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/CurrBuildController.js
... ... @@ -16,6 +16,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
16 16 $rootScope.closeAfterSaveCurriculum = false;
17 17 $rootScope.UnsaveCurriculum = $rootScope.isnewcurriculum == true? true:false;
18 18 $scope.SectionContentForExportCB=[];
  19 + $rootScope.firstSelectedNodeId = null;
19 20 $scope.IsVisible = function () {
20 21 $scope.scroll();
21 22 }
... ... @@ -29,18 +30,6 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
29 30 }
30 31  
31 32 angular.element(document).ready(function (e) {
32   -
33   - var $ua = navigator.userAgent;
34   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
35   - $("#treecontent").css('height',screen.height-130);
36   - $("#cbdivarea").css('height',screen.height-60);
37   - }
38   - else
39   - {
40   - $("#treecontent").css('height',screen.height-270);
41   - $("#cbdivarea").css('height',screen.height-200);
42   - }
43   -
44 33 $('#sidebar-wrapper').unbind('click');
45 34 $("#sidebar-wrapper").on('click', function (event) {
46 35  
... ... @@ -79,6 +68,18 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
79 68  
80 69 });
81 70  
  71 + $rootScope.ResetCBHeight=function()
  72 + {
  73 + var innerheight =$(window).innerHeight();
  74 + $("#treecontent").css('height',innerheight-125);
  75 + $("#cbdivarea").css('height',innerheight-57);
  76 +
  77 + }
  78 + $rootScope.ResetCBListHeight=function()
  79 + {
  80 + var innerheight =$(window).innerHeight();
  81 + $("#cblist").css('height',innerheight-110);
  82 + }
82 83 $scope.CBDisableUI = function () {
83 84  
84 85 $rootScope.isLoading = true;
... ... @@ -155,13 +156,14 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
155 156  
156 157 }
157 158  
158   - $rootScope.firstSelectedNodeId = null;
  159 +
159 160 //load json data
160 161 $scope.loadCurriculumBuiderData = function () {
161 162  
162 163 if ($rootScope.refreshcheck == null) {
163 164 $location.path('/');
164   - }
  165 + }
  166 + $rootScope.ResetCBListHeight();
165 167 //get current path
166 168 var currentURL = $location.path();
167 169 var selectedModuleName = '';
... ... @@ -700,7 +702,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
700 702 $scope.openCBJsPanel = function () {
701 703 $scope.CBDisableUI();
702 704 $rootScope.isnewcurriculum = false;
703   -
  705 + $rootScope.ResetCBHeight();
704 706 $('#jstree').empty();
705 707 var $e1 = $('<ul><li>'
706 708 + '<span id="{{cbTreeFirstID}}">{{cbTreeFirstLabel}}</span>'
... ... @@ -720,7 +722,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
720 722 $scope.openCBEditorPanel = function () {
721 723  
722 724 var jsContentURL = 'app/views/CBuild/curriculum-builder-TinyMCEjspanel.html';
723   - $.jsPanel({
  725 + $scope.jsPanelCB = $.jsPanel({
724 726 id: 'CBTinyMCEPanel',
725 727 selector: '.CBBodyView',
726 728 theme: 'success',
... ... @@ -738,20 +740,34 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
738 740 draggable: "disabled",
739 741 controls: { buttons: 'closeonly' },
740 742 size: { width: 820, height: 450 },
  743 + onnormalized:function (panel) {
  744 + var canvasDIvHeight = $("#CBTinyMCEPanel .jsPanel-content").height();
  745 + $("#cbEditorRightSideBar").css('height',canvasDIvHeight-35);
  746 + $(".tox-tinymce").css('height',canvasDIvHeight-52);
  747 + },
  748 + resizable: {
  749 + minWidth: 610,
  750 + minHeight: 400,
  751 + start:function(event, ui)
  752 + {
  753 + $("#CBTextArea_ifr").css("display", "block");
  754 + },
  755 + stop: function (event, ui) {
  756 + var canvasDIvHeight = $("#CBTinyMCEPanel .jsPanel-content").height();
  757 + $("#cbEditorRightSideBar").css('height',canvasDIvHeight-35);
  758 + $(".tox-tinymce").css('height',canvasDIvHeight-52);
  759 +
  760 + }
  761 + },
741 762  
742 763 });
743 764  
  765 +
744 766 $timeout(function () {
745   - $rootScope.resetMenuOptionOnClick("CBTinyMCEPanel");
746   - $("#CBTinyMCEPanel").resize(function(){
747   - $("#CBTextArea_ifr").css("display", "block");
748   - });
749   -
750   - // $('#CBTinyMCEPanel').draggable({ containment: '#cbdivarea', scroll: false });
751   -
  767 + $scope.jsPanelCB.normalize();
  768 + $rootScope.resetMenuOptionOnClick("CBTinyMCEPanel");
752 769 }, 200);
753 770  
754   -
755 771 }
756 772  
757 773 $scope.myeditorclick = function () {
... ... @@ -783,7 +799,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
783 799  
784 800 }
785 801  
786   - $scope.openTinyMCE = function (nodeid) {
  802 + $scope.openTinyMCE = function (nodeid) {
787 803 if ($scope.Currentselectednodeid == undefined || $scope.Currentselectednodeid != nodeid) {
788 804 $scope.CBDisableUI();
789 805 console.log("instance create for id : " + nodeid);
... ... @@ -2992,6 +3008,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
2992 3008 },
2993 3009 textVisible: $rootScope.CIWindowData[i].isTextVisible,
2994 3010 imageId: $rootScope.CIWindowData[i].imageId,
  3011 + imgLeft:$rootScope.CIWindowData[i].imgLeft,
2995 3012 minimised: $rootScope.CIWindowData[i].minimised,
2996 3013 windowTitle: $rootScope.CIWindowData[i].currentViewTitle,
2997 3014 maximised: $rootScope.CIWindowData[i].maximised,
... ... @@ -3096,6 +3113,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
3096 3113 width: $rootScope.PICWindowData[i].width
3097 3114 },
3098 3115 imageId: $rootScope.PICWindowData[i].imageId,
  3116 + imgLeft:$rootScope.PICWindowData[i].imgLeft,
3099 3117 minimised: $rootScope.PICWindowData[i].minimised,
3100 3118 windowTitle: $rootScope.PICWindowData[i].currentViewTitle,
3101 3119 maximised: $rootScope.PICWindowData[i].maximised,
... ... @@ -3188,6 +3206,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
3188 3206 height: $rootScope.AAWindowData[i].height
3189 3207 },
3190 3208 id: $rootScope.AAWindowData[i].id,
  3209 + imgLeft:$rootScope.AAWindowData[i].imgLeft,
3191 3210 showSelectedPins: $rootScope.AAWindowData[i].isShowSelectedPins,
3192 3211 hideCallOuts: false,//N
3193 3212 showAllPins: $rootScope.AAWindowData[i].isShowAllPins,
... ... @@ -3243,7 +3262,6 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
3243 3262 height: $rootScope.DaWindowData[i].height
3244 3263 },
3245 3264 id: $rootScope.DaWindowData[i].voId,
3246   -
3247 3265 imageId: $rootScope.DaWindowData[i].imageId,
3248 3266 position: {
3249 3267 y: $rootScope.DaWindowData[i].y,
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js
... ... @@ -150,7 +150,9 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
150 150 'totalstructure': 0,
151 151 'totalstructureLm': 0,
152 152 'intervalObject': null,
153   - 'isannotationReload': false
  153 + 'isannotationReload': false,
  154 + 'isCanvasReset': false,
  155 + 'keyctrl': false,
154 156  
155 157 };
156 158 return windata;
... ... @@ -408,20 +410,18 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
408 410  
409 411 };
410 412  
411   - $scope.DisableUI = function () {
  413 + $scope.DisableDAUI = function (windowviewid) {
412 414  
413 415 //enable daBodyViewDiv which was disabled on thumbnail click so need not bother where to enable
414 416 //as jspanel disable/enable is working for all features
415 417 document.getElementById('daBodyview').style.pointerEvents = "auto";
416 418 document.getElementById('daBodyview').style.opacity = "1";
417 419  
418   -
419   -
420   - var daImagePanelConetent = document.getElementsByClassName("jsPanel-content");
421   - for (var i = 0; i < daImagePanelConetent.length; i++) {
422   - daImagePanelConetent[i].style.pointerEvents = "none";
423   - daImagePanelConetent[i].style.opacity = "0.7";
424   -
  420 + var modulePanel = $("#daImagePanel_"+windowviewid).find(" .jsPanel-content");
  421 + if(modulePanel.length>0)
  422 + {
  423 + modulePanel[0].style.pointerEvents="none";
  424 + modulePanel[0].style.opacity="0.7";
425 425 }
426 426 $rootScope.isLoading = true;
427 427 $('#spinner').css('visibility', 'visible');
... ... @@ -431,25 +431,26 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
431 431 $('#HomeContainerDiv').css('opacity', '0.7');
432 432 }
433 433  
434   - $scope.EnableUI = function () {
  434 + $scope.EnableDAUI = function (windowviewid) {
435 435  
436 436 document.getElementById('index').style.pointerEvents = "auto";
437 437 document.getElementById('index').style.opacity = "1";
438 438  
439   - var daImagePanelConetent = document.getElementsByClassName("jsPanel-content");
440   - for (var i = 0; i < daImagePanelConetent.length; i++) {
441   - var dapanal=daImagePanelConetent[i].parentElement;
442   - var panelpointevent = $("#"+ dapanal.id).css('pointer-events');
  439 + var modulePanel = $("#daImagePanel_"+windowviewid).find(" .jsPanel-content");
  440 + if(modulePanel.length>0)
  441 + {
  442 + var panelpointevent = $("#daImagePanel_"+windowviewid).css('pointer-events');
443 443 if(panelpointevent=="none")
444 444 {
445 445 //using for slide lock in cb
446   - daImagePanelConetent[i].style.pointerEvents = "none";
  446 + modulePanel[0].style.pointerEvents="none";
447 447 }
448 448 else
449 449 {
450   - daImagePanelConetent[i].style.pointerEvents = "auto";
  450 + modulePanel[0].style.pointerEvents="auto";
451 451 }
452   - daImagePanelConetent[i].style.opacity = "1";
  452 +
  453 + modulePanel[0].style.opacity="1";
453 454 }
454 455  
455 456 $rootScope.isLoading = false;
... ... @@ -530,7 +531,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
530 531 }
531 532 else
532 533 {
533   - $scope.EnableUI();
  534 + $scope.EnableDAUI($rootScope.MULTI_VIEW_ID);
534 535 $rootScope.disableAnnotationTB = false;
535 536 $rootScope.MenuModuleName = "DA";
536 537 $scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'currentViewTitle',$event.currentTarget.textContent);
... ... @@ -658,7 +659,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
658 659 }
659 660 )
660 661  
661   - $scope.EnableUI();
  662 + $scope.EnableDAUI(windowviewid);
662 663 //push the details of open module in array $rootScope.openModules
663 664 $rootScope.openModules.push({ "ModuleId": 1 });
664 665 }
... ... @@ -670,7 +671,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
670 671 $scope.DAModuleData = ModuleService.getModuleData("DISSECTIBLE_ANATOMY");
671 672 if($scope.DAModuleData.length<1) return;
672 673 $scope.ScopeVariablesDeclare();
673   - $scope.DisableUI();
  674 + $scope.DisableDAUI();
674 675 $scope.readyToLoad=true;
675 676 $rootScope.DAWindowLoadComplete = false;
676 677 $scope.wincount=1;
... ... @@ -714,7 +715,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
714 715 }
715 716 else {
716 717 $scope.ScopeVariablesDeclare();
717   - $scope.DisableUI();
  718 + $scope.DisableDAUI();
718 719 $scope.openBodyView(null);
719 720 }
720 721  
... ... @@ -992,17 +993,14 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
992 993 var pnlName=panel[0].id;
993 994 var len = (pnlName).split("_").length;
994 995 var windowviewid = (pnlName).split("_")[len - 1];
995   - var isAutoCalled = $scope.GetwindowStoreData(windowviewid, 'minmaxAutoEvent');
996   - if(!isAutoCalled)
997   - {
998   - $rootScope.UnsaveCurriculum = true;
999   - }
  996 +
1000 997 $scope.SetwindowStoreData(windowviewid, 'maximised',true);
1001 998 $scope.SetwindowStoreData(windowviewid, 'minimised',false);
1002   - var canvasDIvHeight = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").height()-50;
1003   -
1004   - $('#canvasDivDA_' + windowviewid).css('height', canvasDIvHeight);
1005   - $rootScope.resetMenuOptionOnClick(pnlName);
  999 + var extraheight=$('#dastickeyarea').height()+5;
  1000 + var extrawidth=$('.tools').width()+15;
  1001 + var canvasDIvHeight = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").height()-extraheight;
  1002 + var canvasDIvWidth = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
  1003 +
1006 1004 $('#da-input_'+windowviewid).removeClass();
1007 1005 var dawidth=$(window).outerWidth() - 20;
1008 1006 if(dawidth<800)
... ... @@ -1010,44 +1008,80 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1010 1008 else{
1011 1009 $('#da-input_'+windowviewid).addClass('input-group col-sm-6 col-xs-7 col-md-7 pull-left');
1012 1010 }
  1011 +
  1012 + var canvasDiv='canvasDivDA_' + windowviewid;
  1013 + var canvasDraw='canvasDA_' + windowviewid;
  1014 + var canvasPaint='canvasPaintDA_' + windowviewid;
  1015 +
  1016 + var isAutoCalled = $scope.GetwindowStoreData(windowviewid, 'minmaxAutoEvent');
  1017 + if(!isAutoCalled)
  1018 + {
  1019 + $rootScope.UnsaveCurriculum = true;
  1020 + var bodyVid=$rootScope.GetDAwindowData(windowviewid,'voId');
  1021 + var annotationData=$rootScope.GetDAwindowData(windowviewid,'annotationData');
  1022 + $rootScope.setAADAPanelCordinate(windowviewid,bodyVid,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight,canvasDIvWidth,annotationData);
  1023 + }
  1024 +
1013 1025 },
1014 1026 onnormalized:function (panel) {
1015 1027 var pnlName=panel[0].id;
1016 1028 var len = (pnlName).split("_").length;
1017 1029 var windowviewid = (pnlName).split("_")[len - 1];
  1030 +
  1031 + $scope.SetwindowStoreData(windowviewid, 'minimised',false);
  1032 + $scope.SetwindowStoreData(windowviewid, 'maximised',false);
  1033 + var extraheight=$('#dastickeyarea').height()+5;
  1034 + var extrawidth=$('.tools').width()+15;
  1035 + var canvasDIvHeight = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").height()-extraheight;
  1036 + var canvasDIvWidth = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
  1037 +
  1038 + var canvasDiv='canvasDivDA_' + windowviewid;
  1039 + var canvasDraw='canvasDA_' + windowviewid;
  1040 + var canvasPaint='canvasPaintDA_' + windowviewid;
  1041 +
1018 1042 var isAutoCalled = $scope.GetwindowStoreData(windowviewid, 'minmaxAutoEvent');
1019 1043 if(!isAutoCalled)
1020 1044 {
1021   - $rootScope.UnsaveCurriculum = true;
  1045 + $rootScope.UnsaveCurriculum = true;
  1046 + var bodyVid=$rootScope.GetDAwindowData(windowviewid,'voId');
  1047 + var annotationData=$rootScope.GetDAwindowData(windowviewid,'annotationData');
  1048 + $rootScope.setAADAPanelCordinate(windowviewid,bodyVid,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight,canvasDIvWidth,annotationData);
1022 1049 }
1023   - $scope.SetwindowStoreData(windowviewid, 'minimised',false);
1024   - $scope.SetwindowStoreData(windowviewid, 'maximised',false);
1025   - var canvasDIvHeight = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").height()-50;
1026   -
1027   - $('#canvasDivDA_' + windowviewid).css('height', canvasDIvHeight);
1028   - $rootScope.resetMenuOptionOnClick(pnlName);
1029 1050  
1030 1051 },
1031 1052 resizable: {
  1053 + minWidth: 600,
  1054 + minHeight: 500,
1032 1055 stop: function (event, ui) {
1033 1056 var pnlName=event.currentTarget.id;
1034 1057 var len = (pnlName).split("_").length;
1035 1058 var windowviewid = (pnlName).split("_")[len - 1];
  1059 + var extraheight=$('#dastickeyarea').height()+5;
  1060 + var extrawidth=$('.tools').width()+15;
  1061 + var canvasDIvHeight = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").height();
  1062 + var canvasDIvWidth = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
  1063 +
1036 1064 $scope.SetwindowStoreData(windowviewid, 'width', ui.size.width);
1037   - $scope.SetwindowStoreData(windowviewid, 'height', ui.size.height);
  1065 + $scope.SetwindowStoreData(windowviewid, 'height', canvasDIvHeight);
1038 1066 $scope.SetwindowStoreData(windowviewid, 'y', ui.position.top);
1039 1067 $scope.SetwindowStoreData(windowviewid, 'x', ui.position.left);
1040 1068 $rootScope.UnsaveCurriculum = true;
1041   - var canvasDIvHeight = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").height()-50;
1042   -
1043   - $('#canvasDivDA_' + windowviewid).css('height', canvasDIvHeight);
  1069 +
1044 1070 $('#da-input_'+windowviewid).removeClass();
1045 1071 if(ui.size.width<700)
1046 1072 $('#da-input_'+windowviewid).addClass('input-group col-sm-6 col-xs-7 col-md-5 pull-left');
1047 1073 else{
1048 1074 $('#da-input_'+windowviewid).addClass('input-group col-sm-6 col-xs-7 col-md-7 pull-left');
1049 1075 }
1050   - $rootScope.resetMenuOptionOnClick(pnlName);
  1076 +
  1077 + var canvasDiv='canvasDivDA_' + windowviewid;
  1078 + var canvasDraw='canvasDA_' + windowviewid;
  1079 + var canvasPaint='canvasPaintDA_' + windowviewid;
  1080 +
  1081 + var bodyVid=$rootScope.GetDAwindowData(windowviewid,'voId');
  1082 + var annotationData=$rootScope.GetDAwindowData(windowviewid,'annotationData');
  1083 + $rootScope.setAADAPanelCordinate(windowviewid,bodyVid,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight-extraheight,canvasDIvWidth,annotationData);
  1084 +
1051 1085 }
1052 1086  
1053 1087 },
... ... @@ -1150,7 +1184,9 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1150 1184 var bodySystemListObj = document.getElementById("structureDropdownDA_" + windowviewid);
1151 1185 var len = bodySystemListObj!=null?(bodySystemListObj.id).split("_").length:0;
1152 1186 if (len>1) {
1153   - $scope.stopIntervalLoader(timeintval);
  1187 + $scope.stopIntervalLoader(timeintval);
  1188 + // set search for language input
  1189 + $scope.langSearchLoad(windowviewid);
1154 1190 //wait until DOM element load of DA
1155 1191 $scope.daViewLoader(windowviewid);
1156 1192 }
... ... @@ -1203,7 +1239,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1203 1239 }
1204 1240 // we are loading most of alll data used in DA by this function so that at the time of any functionality delay in data laod will not happened.
1205 1241 $scope.loadView = function (windowviewid) {
1206   - $scope.DisableUI();
  1242 + $scope.DisableDAUI(windowviewid);
1207 1243 var bodyViewId=$scope.GetwindowStoreData(windowviewid,'voId');
1208 1244 if (document.getElementById('daViewDA_'+windowviewid) != null) {
1209 1245 $scope.loadDAView(bodyViewId, windowviewid);
... ... @@ -1222,12 +1258,6 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1222 1258  
1223 1259 $scope.loadDAView = function (currentBodyViewId, windowviewid) {
1224 1260  
1225   - //0.4 added some stylesheets
1226   - if (!$rootScope.isCallFromOtherModule) {
1227   - $('#daBodyview').css("height", (parseInt($(window).outerHeight()) - 82));
1228   - $('#daBodyview').css("width", $(window).outerWidth());
1229   - }
1230   -
1231 1261 $scope.SetwindowStoreData(windowviewid,'voId',currentBodyViewId);
1232 1262 //1. load navigator man first
1233 1263 console.log('before LoadBodyViewNavigatorImage call')
... ... @@ -1349,8 +1379,6 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1349 1379 }
1350 1380 });
1351 1381  
1352   - // set search for language input
1353   - $scope.langSearchLoad(windowviewid);
1354 1382  
1355 1383 }
1356 1384  
... ... @@ -1360,18 +1388,18 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1360 1388 $('#searchlangaugeDiv_'+windowviewid).css("display","none");
1361 1389 var languageArray = $rootScope.lexiconLanguageArray;
1362 1390  
1363   - $("#btnDATermSearch_"+windowviewid).parent().css("margin-right", "10px");
  1391 + // $("#btnDATermSearch_"+windowviewid).parent().css("margin-right", "10px");
1364 1392  
1365 1393 if(languageArray.length>1)
1366 1394 {
1367   - $("#btnDATermSearch_"+windowviewid).parent().css("margin-right", "-10px");
  1395 + // $("#btnDATermSearch_"+windowviewid).parent().css("margin-right", "-10px");
1368 1396 $('#searchlangaugeDiv_'+windowviewid).css("display","block");
1369 1397 var option='';
1370 1398 for (var i = 0; i <= languageArray.length - 1; i++) {
1371 1399 option=option+'<option value="' + languageArray[i].id + '">' + languageArray[i].language + '</option>';
1372 1400 }
1373 1401 var $all = $('#searchlangaugeDiv_'+windowviewid).append(
1374   - '<div class="btn-group col-sm-3 col-xs-3 col-md-2" style="margin-right:-10px">'+
  1402 + '<div class="btn-group col-sm-3 col-xs-3 col-md-2" style="margin-right:-10px;padding-left:0px">'+
1375 1403 '<select class="form-control" id="searchLanguageLm_'+windowviewid+'" ng-blur="HideSearch()" onchange="changeSearchLanguage(event)" style="height:30px;padding:4px 12px">'+
1376 1404 option+
1377 1405 '</select>'+
... ... @@ -1453,13 +1481,13 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1453 1481 var la;
1454 1482 var rootScope = angular.element(document.getElementById("bo")).scope();
1455 1483 rootScope.$apply(function () {
1456   - $scope.DisableUI();
  1484 + $scope.DisableDAUI(windviewid);
1457 1485 })
1458 1486 var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
1459 1487 scope.$apply(function () {
1460 1488  
1461 1489 if ($scope.GetwindowStoreData(windviewid,'isTransparencyActivated')) {
1462   - $scope.EnableUI();
  1490 + $scope.EnableDAUI(windviewid);
1463 1491 }
1464 1492 la =$scope.GetwindowStoreData(windviewid,'totalLayers');
1465 1493 var slideVal = la - ui.value;
... ... @@ -1591,6 +1619,8 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1591 1619 $("#btnStrutureBox").attr("id", "btnStrutureBox_" + windowviewid);
1592 1620 $scope.btnStrutureBoxID = "btnStrutureBox_" + windowviewid;
1593 1621  
  1622 + $("#multiannotation").attr("id", "multiannotation_" + windowviewid);
  1623 +
1594 1624 $("#typedTermName").attr("id", "typedTermName_" + windowviewid);
1595 1625 $scope.typedTermNameID = "typedTermName_" + windowviewid;
1596 1626  
... ... @@ -1770,7 +1800,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1770 1800 }
1771 1801 }
1772 1802  
1773   - $scope.EnableUI();
  1803 + $scope.EnableDAUI(e.data.winId);
1774 1804  
1775 1805 }
1776 1806  
... ... @@ -1960,7 +1990,8 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1960 1990 $scope.SetwindowStoreData(windowviewid,'viewOrientationId',$scope.GetwindowStoreData(windowviewid,'voId'));
1961 1991 $scope.setViewOrientationId(windowviewid);
1962 1992  
1963   -
  1993 + $scope.SetwindowStoreData(windowviewid, 'isCanvasReset',true);
  1994 +
1964 1995 //Birendra Load term data For curriculum builder
1965 1996 //*********************************************************************//
1966 1997 if ($rootScope.isCallFromOtherModule) {
... ... @@ -1983,7 +2014,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
1983 2014 // Function to call CB term data
1984 2015  
1985 2016 $scope.loadDAonCBSlideChange = function (windowviewid) {
1986   - $scope.DisableUI();
  2017 + $scope.DisableDAUI(windowviewid);
1987 2018  
1988 2019 $scope.SetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem',false);
1989 2020 $scope.SetwindowStoreData(windowviewid,'isbodySystemHighlight',false);
... ... @@ -2144,7 +2175,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2144 2175 //DA > Annotation's Line should not displayed.
2145 2176 $('#bord_'+windowviewid).css("display", "none");
2146 2177  
2147   - $scope.DisableUI();
  2178 + $scope.DisableDAUI(windowviewid);
2148 2179  
2149 2180 //redraw body of respective layer
2150 2181 var viewOrientationId = $scope.GetwindowStoreData(windowviewid, 'viewOrientationId');
... ... @@ -2187,7 +2218,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2187 2218 //calculate coordinates for body region images
2188 2219 $scope.CalculateImageCordinates = function (viewOrientationId,windowviewid) {
2189 2220  
2190   - $scope.DisableUI();
  2221 + $scope.DisableDAUI(windowviewid);
2191 2222  
2192 2223 // $scope.layerInfoForModesty = [];
2193 2224 $scope.SetwindowStoreData(windowviewid,'layerInfoForModesty',[]);
... ... @@ -2209,13 +2240,24 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2209 2240 //set height of canvas div and left tool bar as per window size
2210 2241 $scope.BodyRegionCordinatesData = []; // create an empty array
2211 2242 $scope.SetwindowStoreData(windowviewid,'BodyRegionCordinatesData',[]);
2212   - $('#daBodyview').css('width', '100%');
2213   -
2214   - var canvasDIvHeight = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").height()-50;
2215   -
  2243 +
  2244 + var extraheight=$('#dastickeyarea').height()+5;
  2245 + var extrawidth=$('.tools').width()+15;
  2246 + var canvasDIvHeight = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").height()-extraheight;
  2247 + var canvasDIvWidth = $('#daImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
2216 2248 $('#canvasDivDA_' + windowviewid).css('height', canvasDIvHeight);
2217   - $('#leftToolBarDA_' + windowviewid).css('height', $('#daImagePanel_' + windowviewid).outerHeight())
  2249 + $('#leftToolBarDA_' + windowviewid).css('height', $('#daImagePanel_' + windowviewid).outerHeight());
  2250 +
  2251 + if ($("#canvasDivDA_" + windowviewid).find("canvas[id*='canvasPaintDA']").length == 0) {
  2252 + var canvasPaintID = "canvasPaintDA_" + windowviewid;
  2253 + var canvasID = "canvasDA_" + windowviewid;
  2254 +
  2255 + //register touch end and touchmove event for touch devices
  2256 + var ATBarHtml = $("#canvasDivDA_" + windowviewid).append('<canvas id="' + canvasPaintID + '" ontouchend="onDrawingCanvasTouch(event)" ontouchmove="onDrawingCanvasTouchMove(event)" width="2277" height="3256" class="canvas-annotationStyle1"></canvas><canvas id="' + canvasID + '" ontouchend="onDrawingCanvasTouch(event)" ontouchmove="onDrawingCanvasTouchMove(event)" ng-click="onDrawingCanvasClick($event)" width="2277" height="3256" class="canvas-annotationStyle"></canvas>');
  2257 + $compile(ATBarHtml)($scope);
2218 2258  
  2259 + }
  2260 +
2219 2261 //calculate image coordinates and draw image
2220 2262 var BodyRegionData=$scope.GetwindowStoreData(windowviewid,'BodyRegionData');
2221 2263 var bodyRegionCoordinates = new jinqJs()
... ... @@ -2223,7 +2265,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2223 2265 .where('_ViewOrientationId == ' + viewOrientationId)
2224 2266 .select();
2225 2267  
2226   - console.log('viewOrientationId= ' + viewOrientationId + ', $scope.bodyRegionCoordinates length= ' + bodyRegionCoordinates.length)
  2268 + //console.log('viewOrientationId= ' + viewOrientationId + ', $scope.bodyRegionCoordinates length= ' + bodyRegionCoordinates.length)
2227 2269  
2228 2270 var bgartData=$scope.GetwindowStoreData(windowviewid,'bgartData');
2229 2271 var bagartDetail = new jinqJs()
... ... @@ -2249,55 +2291,10 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2249 2291  
2250 2292 }
2251 2293  
2252   - $scope.ColoredImageSRC = [];
2253   - $scope.SetwindowStoreData(windowviewid,'ColoredImageSRC',[]);
2254   -
  2294 + $scope.ColoredImageSRC = [];
  2295 + $scope.SetwindowStoreData(windowviewid,'ColoredImageSRC',[]);
2255 2296 $scope.SetwindowStoreData(windowviewid,'updatedGrayDataList',[]);
2256 2297 $scope.SetwindowStoreData(windowviewid,'updatedGrayMRDataList',[]);
2257   -
2258   - //history code
2259   -
2260   - if ($("#canvasDivDA_" + windowviewid).find("canvas[id*='canvasPaintDA']").length == 0) {
2261   - var canvasPaintID = "canvasPaintDA_" + windowviewid;
2262   - var canvasID = "canvasDA_" + windowviewid;
2263   -
2264   - //register touch end and touchmove event for touch devices
2265   - var ATBarHtml = $("#canvasDivDA_" + windowviewid).append('<canvas id="' + canvasPaintID + '" ontouchend="onDrawingCanvasTouch(event)" ontouchmove="onDrawingCanvasTouchMove(event)" width="2277" height="3256" class="canvas-annotationStyle1"></canvas><canvas id="' + canvasID + '" ontouchend="onDrawingCanvasTouch(event)" ontouchmove="onDrawingCanvasTouchMove(event)" ng-click="onDrawingCanvasClick($event)" width="2277" height="3256" class="canvas-annotationStyle"></canvas>');
2266   - $compile(ATBarHtml)($scope);
2267   -
2268   - }
2269   - var isCBAnnotationActive= $scope.GetwindowStoreData(windowviewid, 'isCBAnnotationActive');
2270   -
2271   - // isCBAnnotationActive activate one time when annotation come from Saved CB
2272   - if ($rootScope.isCallFromOtherModule && isCBAnnotationActive) {
2273   - var annotationData= $scope.GetwindowStoreData(windowviewid, 'annotationData');
2274   - //clean object .it will assign again from home controller
2275   - $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
2276   - // load annotation
2277   - if(annotationData!="" && annotationData!=undefined)
2278   - {
2279   - if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
2280   - {
2281   - //first draw shape and then store in object
2282   - //delay 3 second if annotation draw with TBox
2283   - if ($scope.GetwindowStoreData(windowviewid, 'isTransparent') == true) {
2284   - setTimeout(function(){
2285   - $rootScope.LoadCBSavedAnnotation("canvasDA_"+windowviewid,"canvasPaintDA_"+windowviewid,annotationData);
2286   - },3000)
2287   - }
2288   - else
2289   - {
2290   - setTimeout(function(){
2291   - $rootScope.LoadCBSavedAnnotation("canvasDA_"+windowviewid,"canvasPaintDA_"+windowviewid,annotationData);
2292   - },1000)
2293   -
2294   - }
2295   -
2296   -
2297   - }
2298   - }
2299   - $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
2300   - }
2301 2298  
2302 2299 $('#zoomValueDA_' + windowviewid).attr('value', $scope.GetwindowStoreData(windowviewid,'zoomInOut'));
2303 2300  
... ... @@ -2505,7 +2502,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2505 2502  
2506 2503 $('#canvasDivDA_' + windowviewid).scrollTop(50);
2507 2504  
2508   - $scope.EnableUI();
  2505 + $scope.EnableDAUI(windowviewid);
2509 2506 //Dated:16-07-2016 Issue #4957 :While selecting the Zoom-in\Zoom-out button scroll should be go on top.
2510 2507 // #4976 :While changing gender male to female scroll bar is going on top.
2511 2508 var canvasDiv = document.getElementById('canvasDivDA_' + windowviewid);
... ... @@ -2538,39 +2535,64 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2538 2535 $('#draggable_' + windowviewid).css('width', dragdivw);
2539 2536 $('#draggable_' + windowviewid).css('height', dragdivh);
2540 2537 $('#draggable_' + windowviewid).css("left", dragdivleft);
2541   - $('#draggable_' + windowviewid).css("top", dragdivtop);
2542   -
2543   - var canvas = document.getElementById("canvasDA_" + windowviewid);
2544   - var canvasPaint = document.getElementById("canvasPaintDA_" + windowviewid);
2545 2538  
2546   - if(viewOrientationId!=1 && viewOrientationId!=4)
2547   - {
2548   - if(viewOrientationId==5)
2549   - {
2550   - //lateral arm
2551   - canvas.height = 1500;
2552   - canvasPaint.height =1500;
2553   -
2554   - }
2555   - else if(viewOrientationId==6)
2556   - {
2557   - //medial arm
2558   - canvas.height = 1400;
2559   - canvasPaint.height = 1400;
2560   -
2561   - }
2562   - var $ua = navigator.userAgent;
2563   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
2564   - canvas.width = screen.width-145;
2565   - canvasPaint.width = screen.width-145;
  2539 + $scope.SetwindowStoreData(windowviewid,'ColoredImageSRC',[]);
  2540 +
  2541 + var timeintval = null;
  2542 + timeintval = $interval(function () {
  2543 + var imageSrc = $scope.GetwindowStoreData(windowviewid, 'ColoredImageSRC');
  2544 + if (imageSrc.length>0) {
  2545 + $scope.stopIntervalDA();
  2546 + var pnlName='daImagePanel_' + windowviewid;
  2547 + var canvasDiv='canvasDivDA_' + windowviewid;
  2548 + var canvasDraw='canvasDA_' + windowviewid;
  2549 + var canvasPaint='canvasPaintDA_' + windowviewid;
  2550 + var bodyVid=$rootScope.GetDAwindowData(windowviewid,'voId');
  2551 + var demoData= {shapeStates:[],paintCanvasState:[]};
  2552 + var isCanvasReset = $scope.GetwindowStoreData(windowviewid, 'isCanvasReset');
  2553 +
  2554 + if(isCanvasReset)
  2555 + {
  2556 + //call also while paint and draw canvas removed
  2557 + //reset width height of canvas
  2558 + $rootScope.setAADAPanelCordinate(windowviewid,bodyVid,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight,canvasDIvWidth,demoData);
  2559 + $scope.SetwindowStoreData(windowviewid, 'isCanvasReset',false);
  2560 + }
  2561 +
  2562 + var isCBAnnotationActive= $scope.GetwindowStoreData(windowviewid, 'isCBAnnotationActive');
  2563 +
  2564 + // isCBAnnotationActive activate one time when annotation come from Saved CB
  2565 + if ($rootScope.isCallFromOtherModule && isCBAnnotationActive) {
  2566 + var annotationData= $scope.GetwindowStoreData(windowviewid, 'annotationData');
  2567 + //clean object .it will assign again from home controller
  2568 + $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
  2569 + // load annotation
  2570 + if(annotationData!="" && annotationData!=undefined)
  2571 + {
  2572 + if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
  2573 + {
  2574 + //first draw shape and then store in object
  2575 + setTimeout(function(){
  2576 + $rootScope.LoadCBSavedAnnotation(canvasDraw,canvasPaint,annotationData);
  2577 + },100)
  2578 + }
  2579 + }
  2580 + $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
  2581 + }
  2582 +
2566 2583 }
2567 2584 else
2568 2585 {
2569   - canvas.width = screen.width-165;
2570   - canvasPaint.width = screen.width-165;
  2586 + console.log("loading images on canvas....");
2571 2587 }
  2588 + }, 100);
2572 2589  
2573   - }
  2590 + $scope.stopIntervalDA = function () {
  2591 + if (angular.isDefined(timeintval)) {
  2592 + $interval.cancel(timeintval);
  2593 + timeintval = undefined;
  2594 + }
  2595 + };
2574 2596  
2575 2597  
2576 2598 }
... ... @@ -2781,7 +2803,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2781 2803 var touchdragging = false;
2782 2804 $scope.DrawMirroredImage = function (h, w, x, y, src, bodyRegionId, isMaskImage, windowviewid) {
2783 2805  
2784   - $scope.DisableUI();
  2806 + $scope.DisableDAUI(windowviewid);
2785 2807  
2786 2808 var FlipedImgCanvas = document.createElement('canvas');
2787 2809 FlipedImgCanvas.height = h;
... ... @@ -2965,7 +2987,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2965 2987  
2966 2988 }
2967 2989  
2968   - $scope.DisableUI();
  2990 + $scope.DisableDAUI(windowviewid);
2969 2991  
2970 2992 var isHighLight=$scope.GetwindowStoreData(windowviewid,'isHighLight');
2971 2993 var isGenderChnage = $scope.GetwindowStoreData(windowviewid,'isGenderChnage');
... ... @@ -2980,14 +3002,14 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
2980 3002  
2981 3003 }
2982 3004 else if ($scope.GetwindowStoreData(windowviewid, 'isExtract') == true) {
2983   - $scope.DisableUI();
  3005 + $scope.DisableDAUI(windowviewid);
2984 3006 $scope.highLightBody(windowviewid);
2985 3007 }
2986 3008 else if (isHighLight == true || (isListManagerSelected == true) || ((isGenderChnage == true) && (isHighLight == true))
2987 3009 || ((isViewChange == true) && (isHighLight == true)) || isHighlightBodyByBodySystem == true) {
2988 3010  
2989 3011 $scope.SetwindowStoreData(windowviewid, 'isHighLight', true);
2990   - $scope.DisableUI();
  3012 + $scope.DisableDAUI(windowviewid);
2991 3013 $scope.highLightBody(windowviewid);
2992 3014 if ($scope.GetwindowStoreData(windowviewid, 'isTransparent') == true && isLexiconReload==false) {
2993 3015 $scope.CalculateDimensionsAndDrawTBox(windowviewid);
... ... @@ -3003,7 +3025,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
3003 3025 }
3004 3026 //This block is executed when normal body is created and no further process like highlight,extract, etc
3005 3027  
3006   - $scope.EnableUI();
  3028 + $scope.EnableDAUI(windowviewid);
3007 3029  
3008 3030 }
3009 3031 }
... ... @@ -3049,8 +3071,9 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
3049 3071 $('#typedTermName_' + windowviewid).val('');
3050 3072 $("#typedTermName_" + windowviewid).attr("name", '0');
3051 3073 //birendra
  3074 + var iskeyctrlActive= $scope.GetwindowStoreData(windowviewid, 'keyctrl');//for iPad
3052 3075 // for mac os Command key use for multi selection
3053   - if (evt.ctrlKey || evt.metaKey) {
  3076 + if (evt.ctrlKey || evt.metaKey || iskeyctrlActive) {
3054 3077 $scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',true);
3055 3078 }
3056 3079 else
... ... @@ -3251,7 +3274,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
3251 3274 }
3252 3275  
3253 3276 $scope.DrawImage = function (h, w, x, y, src, bodyRegionId, isMaskImage, windowviewid) {
3254   - $scope.DisableUI();
  3277 + $scope.DisableDAUI(windowviewid);
3255 3278  
3256 3279 var imgCanvas = document.createElement('canvas');
3257 3280  
... ... @@ -3463,7 +3486,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
3463 3486  
3464 3487 }
3465 3488  
3466   - $scope.DisableUI();
  3489 + $scope.DisableDAUI(windowviewid);
3467 3490  
3468 3491 var isHighLight=$scope.GetwindowStoreData(windowviewid,'isHighLight');
3469 3492 var isGenderChnage = $scope.GetwindowStoreData(windowviewid,'isGenderChnage');
... ... @@ -3478,7 +3501,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
3478 3501  
3479 3502 }
3480 3503 else if (isExtract == true) {
3481   - $scope.DisableUI();
  3504 + $scope.DisableDAUI(windowviewid);
3482 3505 $scope.highLightBody(windowviewid);
3483 3506  
3484 3507 }
... ... @@ -3487,7 +3510,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
3487 3510  
3488 3511 $scope.SetwindowStoreData(windowviewid,'isHighLight',true);
3489 3512  
3490   - $scope.DisableUI();
  3513 + $scope.DisableDAUI(windowviewid);
3491 3514 $scope.highLightBody(windowviewid);
3492 3515  
3493 3516 if ($scope.GetwindowStoreData(windowviewid, 'isTransparent') == true && isLexiconReload==false) {
... ... @@ -3504,7 +3527,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
3504 3527 $scope.ShowCBDataBodyView(windowviewid);
3505 3528 }
3506 3529 //This block is executed when normal body is created and no further process like highlight,extract, etc
3507   - $scope.EnableUI();
  3530 + $scope.EnableDAUI(windowviewid);
3508 3531 }
3509 3532  
3510 3533 }
... ... @@ -3548,8 +3571,9 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
3548 3571 $('#typedTermName_' + windowviewid).val('');
3549 3572 $("#typedTermName_" + windowviewid).attr("name", '0');
3550 3573 //birendra
  3574 + var iskeyctrlActive= $scope.GetwindowStoreData(windowviewid, 'keyctrl');//for iPad
3551 3575 // for mac os Command key use for multi selection
3552   - if (evt.ctrlKey || evt.metaKey) {
  3576 + if (evt.ctrlKey || evt.metaKey ||iskeyctrlActive) {
3553 3577 $scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',true);
3554 3578  
3555 3579 console.log('CTRL ON')
... ... @@ -4096,7 +4120,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4096 4120 $scope.SetwindowStoreData(windowviewid, 'CanvasDivLeftPosition', $("#canvasDivDA_" + windowviewid).scrollLeft());
4097 4121 }
4098 4122  
4099   - $scope.EnableUI();
  4123 + $scope.EnableDAUI(windowviewid);
4100 4124 ReturnMasData=[];
4101 4125 ExtractMasData=[];
4102 4126  
... ... @@ -4264,7 +4288,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4264 4288 });
4265 4289 }
4266 4290 else {
4267   - $scope.EnableUI();
  4291 + $scope.EnableDAUI(windowviewid);
4268 4292 }
4269 4293  
4270 4294 worker.onmessage = function (e) {
... ... @@ -4345,11 +4369,11 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4345 4369 $('#canvasDivDA_' + windowviewid).scrollLeft($scope.imageHorizontlScrollPosition);
4346 4370  
4347 4371 }
4348   - $scope.EnableUI();
  4372 + $scope.EnableDAUI(windowviewid);
4349 4373 }
4350 4374 else if (isHighlightBodyByBodySystem == true || isListManagerSelected == true) {
4351 4375  
4352   - $scope.EnableUI();
  4376 + $scope.EnableDAUI(windowviewid);
4353 4377 }
4354 4378 else
4355 4379 {
... ... @@ -4373,7 +4397,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4373 4397 }
4374 4398 }
4375 4399  
4376   - $scope.EnableUI();
  4400 + $scope.EnableDAUI(windowviewid);
4377 4401  
4378 4402 // terminate extract and term-number worker instances
4379 4403 if ($scope.runningWorkers != null || $scope.runningWorkers != undefined) {
... ... @@ -4404,7 +4428,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4404 4428 termSelectedName = "Skin";
4405 4429 }
4406 4430 if (document.getElementById('txtLayerNumberDA_'+windowviewid).value == "Skin" || termSelectedName == "Skin") {
4407   - $scope.EnableUI();
  4431 + $scope.EnableDAUI(windowviewid);
4408 4432 }
4409 4433 }, 100);
4410 4434  
... ... @@ -4416,7 +4440,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4416 4440  
4417 4441 $scope.isScrolledToHighlightedBR = false;
4418 4442 //disable the background till the system gets highlighted.
4419   - $scope.DisableUI();
  4443 + $scope.DisableDAUI(windowviewid);
4420 4444  
4421 4445 $("#layerChangeSliderDA_" + windowviewid + '.vert_slider').slider('disable');
4422 4446  
... ... @@ -4452,7 +4476,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4452 4476 $scope.removeCurrentHighlightedBodySystem(windowviewid);
4453 4477  
4454 4478 $("#layerChangeSliderDA_" + windowviewid + '.vert_slider').slider('enable');
4455   - $scope.EnableUI();
  4479 + $scope.EnableDAUI(windowviewid);
4456 4480  
4457 4481 $rootScope.message = AIAConstants.NO_BODY_SYSTEM_AVAILABLE;
4458 4482  
... ... @@ -4658,13 +4682,13 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4658 4682 }
4659 4683 }
4660 4684 else {
4661   - $scope.EnableUI();
  4685 + $scope.EnableDAUI(windowviewid);
4662 4686 $("#layerChangeSliderDA_" + windowviewid + '.vert_slider').slider('enable');
4663 4687 }
4664 4688  
4665 4689 });
4666 4690 $("#layerChangeSliderDA_" + windowviewid + '.vert_slider').slider('enable');
4667   - $scope.EnableUI();
  4691 + $scope.EnableDAUI(windowviewid);
4668 4692 }
4669 4693  
4670 4694 }
... ... @@ -4672,7 +4696,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4672 4696 function (error) {
4673 4697 console.log(' Error in getting term data = ' + error);
4674 4698 $("#layerChangeSliderDA_" + windowviewid + '.vert_slider').slider('enable');
4675   - $scope.EnableUI();
  4699 + $scope.EnableDAUI(windowviewid);
4676 4700 //remove existing data and draw fresh data
4677 4701 $scope.removeCurrentHighlightedBodySystem(windowviewid);
4678 4702  
... ... @@ -4730,7 +4754,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4730 4754 $timeout(function () { $scope.HighlightBodyByTermList(multiTermList,windowviewid); }, 50);
4731 4755 }
4732 4756 else {
4733   - $scope.EnableUI();
  4757 + $scope.EnableDAUI(windowviewid);
4734 4758 }
4735 4759 }
4736 4760  
... ... @@ -4849,7 +4873,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4849 4873  
4850 4874 //layer change function
4851 4875 $scope.LayerChange = function (windowviewid) {
4852   - $scope.DisableUI();
  4876 + $scope.DisableDAUI(windowviewid);
4853 4877 $rootScope.CloseListManager();
4854 4878 $scope.isLayerChange = true;
4855 4879  
... ... @@ -4987,7 +5011,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
4987 5011 }
4988 5012  
4989 5013 else {
4990   - $scope.EnableUI();
  5014 + $scope.EnableDAUI(windowviewid);
4991 5015 }
4992 5016 })
4993 5017  
... ... @@ -5006,21 +5030,26 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
5006 5030 $scope.SetwindowStoreData(windowviewid,'currentLayerNumber',parseInt($('#txtLayerNumberDA_' + windowviewid).val()));
5007 5031 }
5008 5032  
5009   - $scope.DisableUI();
  5033 + $scope.DisableDAUI(windowviewid);
5010 5034 var canDiv = document.getElementById('canvasDivDA_' + windowviewid);
5011 5035 if($rootScope.globalSetting.onLayerChange)
5012 5036 {
  5037 + $('#canvasDA_' + windowviewid).removeLayers();//remove all old shape
  5038 + //var sktch = $("#canvasPaintDA_" + windowviewid).sketch();
  5039 + $("#canvasPaintDA_" + windowviewid).sketch().actions = [];//remove old paint data
  5040 +
5013 5041 var canDivChildCount = canDiv.childElementCount;
5014 5042 if (canDivChildCount > 0) {
5015 5043 canDiv.innerHTML = '';
5016 5044 }
5017   -
5018   - //canvas is clear in search term,layer change,viewchange here. so annotationdata should also clear
5019   - $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
5020   -
  5045 + $scope.SetwindowStoreData(windowviewid, 'isCanvasReset',true);
  5046 + //canvas is clear in search term,layer change,viewchange here. so annotationdata should also clear
  5047 + $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
  5048 +
5021 5049 }
5022 5050 else
5023 5051 {
  5052 + $scope.SetwindowStoreData(windowviewid, 'isCanvasReset',false);
5024 5053 //remove all canvas except pait and drawing
5025 5054 $('#'+'canvasDivDA_' + windowviewid+' canvas').not('#canvasDA_'+windowviewid).not('#canvasPaintDA_'+windowviewid).remove();
5026 5055 }
... ... @@ -5118,7 +5147,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
5118 5147  
5119 5148 }
5120 5149  
5121   - $scope.EnableUI();
  5150 + $scope.EnableDAUI(windowviewid);
5122 5151 }
5123 5152  
5124 5153 $('layerChangeSlider').slider().on('slideStop', function (ev) {
... ... @@ -5140,6 +5169,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
5140 5169 $scope.createDynamicSpeechBubble = function (event, x, y, isAnnotationNotForTBox, tipx, tipy,windowviewid, termNumber) {
5141 5170  
5142 5171 var termNumber=parseInt(termNumber);
  5172 + var iskeyctrlActive= $scope.GetwindowStoreData(windowviewid, 'keyctrl');//for iPad
5143 5173 if (isAnnotationNotForTBox == true) {
5144 5174 if ($scope.MultiLanguageAnnationArray.length > 1) {
5145 5175 $scope.longestAnnotation = $scope.MultiLanguageAnnationArray.reduce(function (firstAnnotation, seconAnnotation) { return firstAnnotation.length > seconAnnotation.length ? firstAnnotation : seconAnnotation; });
... ... @@ -5151,8 +5181,8 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
5151 5181 //1. In transparency box we shows two annotation at a time, so we need to decide the max length of annotation in btween two annotation because based on that
5152 5182 // we decide the size of speech bubble
5153 5183 //2.
5154   -
5155   - if (event.ctrlKey || event.metaKey || event == "CBAnnotation") {
  5184 +
  5185 + if (event.ctrlKey || event.metaKey || event == "CBAnnotation" || iskeyctrlActive) {
5156 5186 console.log('ctrl pressed');
5157 5187 $scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',true);
5158 5188 //2.1 create unique speech bubbles
... ... @@ -5429,7 +5459,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
5429 5459 else {
5430 5460 $scope.longest_annotationT1 = $scope.annotationTextArrayT1.reduce(function (a, b) { return a.length > b.length ? a : b; });
5431 5461 $scope.longest_annotationT2 = $scope.annotationTextArrayT2.reduce(function (a, b) { return a.length > b.length ? a : b; });
5432   - if (event.ctrlKey || event.metaKey || event == "CBAnnotation") {
  5462 + if (event.ctrlKey || event.metaKey || event == "CBAnnotation" ||iskeyctrlActive) {
5433 5463  
5434 5464 $scope.SetwindowStoreData(windowviewid, 'multiAnnotationIsON', true);
5435 5465  
... ... @@ -6385,7 +6415,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
6385 6415 }
6386 6416 else {
6387 6417  
6388   - $scope.DisableUI();
  6418 + $scope.DisableDAUI(windowviewid);
6389 6419  
6390 6420 $('#btnTranparency_' + windowviewid).removeClass('btn-black');
6391 6421 $('#btnTranparency_' + windowviewid).addClass('tButtonActive');
... ... @@ -6453,23 +6483,15 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
6453 6483 $('#btnIdentify_' + windowviewid).addClass('btn-primary');
6454 6484  
6455 6485 // clear canvas before drawing transparency box
6456   - if ($rootScope.isAnnotationWindowOpen == true) {
6457   - // $('#canvasDA_' + windowviewid).removeLayers();
6458   - var paintCanvasObj = document.getElementById("canvasPaintDA_" + windowviewid);
6459   - if (paintCanvasObj != null) {
6460   - var ctx = paintCanvasObj.getContext("2d");
6461   - ctx.clearRect(0, 0, paintCanvasObj.width, paintCanvasObj.height);
6462   - }
6463   - var CanvasObj = document.getElementById("canvasDA_" + windowviewid);
6464   - if (CanvasObj != null) {
6465   - var ctx1 = CanvasObj.getContext("2d");
6466   - ctx1.clearRect(0, 0,CanvasObj.width, CanvasObj.height);
6467   - }
6468   - $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
6469   - $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
  6486 + $('#canvasDA_' + windowviewid).removeLayers();//remove all old shape
  6487 + //var sktch = $("#canvasPaintDA_" + windowviewid).sketch();
  6488 + $("#canvasPaintDA_" + windowviewid).sketch().actions = [];//remove old paint data
6470 6489  
6471   - var sktch = $("#canvasPaintDA_" + windowviewid).sketch();
6472   - $("#canvasPaintDA_" + windowviewid).sketch().actions = [];
  6490 + $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
  6491 + $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
  6492 +
  6493 + if ($rootScope.isAnnotationWindowOpen == true) {
  6494 +
6473 6495 $("#annotationpaintbrushsize").removeClass("activebtncolor");
6474 6496 $("#annotationpainteraser").removeClass("activebtncolor");
6475 6497 if ($("#DrawMode").hasClass("annotationtoolbartab")) {
... ... @@ -6529,13 +6551,10 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
6529 6551 if (drawCanvasZindex > paintCanvasZindex) {
6530 6552 $(".ui-wrapper").css("z-index", drawCanvasZindex);
6531 6553 $scope.SetwindowStoreData(windowviewid, 'UIWrapperZIndex', drawCanvasZindex);
6532   - $('#canvasPaintDA_' + windowviewid).css("z-index", drawCanvasZindex+2);
6533 6554 }
6534 6555 else {
6535 6556 $(".ui-wrapper").css("z-index", paintCanvasZindex);
6536   - $scope.SetwindowStoreData(windowviewid, 'UIWrapperZIndex', paintCanvasZindex);
6537   - $('#canvasPaintDA_' + windowviewid).css("z-index", paintCanvasZindex+2);
6538   -
  6557 + $scope.SetwindowStoreData(windowviewid, 'UIWrapperZIndex', paintCanvasZindex);
6539 6558 }
6540 6559  
6541 6560 }
... ... @@ -6728,7 +6747,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
6728 6747 else {
6729 6748 //when user draw TB outside body than no bodyRegion
6730 6749 //is covred and nothing is drawn so the function is not called in which we are enabling UI
6731   - $scope.EnableUI();
  6750 + $scope.EnableDAUI(windowviewid);
6732 6751 }
6733 6752 })
6734 6753  
... ... @@ -6821,6 +6840,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
6821 6840 }
6822 6841 }
6823 6842  
  6843 + //curriculum on slide load
6824 6844 $scope.CalculateDimensionsAndDrawTBox = function (windowviewid) {
6825 6845 $scope.SetwindowStoreData(windowviewid, 'isTransparent', true);
6826 6846 $scope.SetwindowStoreData(windowviewid, 'isTBDrawnOnBodyRegion', false);
... ... @@ -7004,7 +7024,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
7004 7024 else {
7005 7025 //when user draw TB outside body than no bodyRegion
7006 7026 //is covred and nothing is drawn so the function is not called in which we are enabling UI
7007   - $scope.EnableUI();
  7027 + $scope.EnableDAUI(windowviewid);
7008 7028 }
7009 7029  
7010 7030 })
... ... @@ -7065,17 +7085,6 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
7065 7085  
7066 7086 // clear canvas before drawing transparency box
7067 7087 if ($rootScope.isAnnotationWindowOpen == true) {
7068   - //$('#canvasDA_' + windowviewid).removeLayers();
7069   - var paintCanvasObj = document.getElementById("canvasPaintDA_" + windowviewid);
7070   - if (paintCanvasObj != null) {
7071   - var ctx = paintCanvasObj.getContext("2d");
7072   - ctx.clearRect(0, 0, paintCanvasObj.width, paintCanvasObj.height);
7073   - }
7074   - var CanvasObj = document.getElementById("canvasDA_" + windowviewid);
7075   - if (CanvasObj != null) {
7076   - var ctx1 = CanvasObj.getContext("2d");
7077   - ctx1.clearRect(0, 0, CanvasObj.width, CanvasObj.height);
7078   - }
7079 7088 $("#annotationpaintbrushsize").removeClass("activebtncolor");
7080 7089 $("#annotationpainteraser").removeClass("activebtncolor");
7081 7090 if ($("#DrawMode").hasClass("annotationtoolbartab")) {
... ... @@ -7119,7 +7128,6 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
7119 7128 $scope.SetwindowStoreData(windowviewid, 'UIWrapperZIndex', paintCanvasZindex);
7120 7129 $('#canvasPaintDA_' + windowviewid).css("z-index", paintCanvasZindex+2);
7121 7130 }
7122   - //$rootScope.switchToTransparencycanvas("daImagePanel_"+windowviewid);
7123 7131 }
7124 7132 }
7125 7133 else
... ... @@ -7830,7 +7838,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
7830 7838 }
7831 7839  
7832 7840 $scope.SetwindowStoreData(windowviewid, 'isTransparencyActivated', true);
7833   - $scope.EnableUI();
  7841 + $scope.EnableDAUI(windowviewid);
7834 7842  
7835 7843 $scope.SetwindowStoreData(windowviewid, 'isZoomed',false);
7836 7844 }
... ... @@ -8150,8 +8158,8 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
8150 8158 var windowviewid = (evt.currentTarget.id).split("_")[len-1];
8151 8159 var pixelData;
8152 8160 var pixelDataTrans;
8153   -
8154   - if (evt.ctrlKey || evt.metaKey) {
  8161 + var iskeyctrlActive= $scope.GetwindowStoreData(windowviewid, 'keyctrl');//for iPad
  8162 + if (evt.ctrlKey || evt.metaKey || iskeyctrlActive) {
8155 8163 $scope.SetwindowStoreData(windowviewid, 'multiAnnotationIsON', true);
8156 8164 }
8157 8165 else
... ... @@ -8372,7 +8380,8 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
8372 8380 $rootScope.UnsaveCurriculum = true;
8373 8381 var len= (evt.target.id).split("_").length;
8374 8382 var windowviewid = (evt.target.id).split("_")[len-1];
8375   - if (evt.ctrlKey || evt.metaKey) {
  8383 + var iskeyctrlActive= $scope.GetwindowStoreData(windowviewid, 'keyctrl');//for iPad
  8384 + if (evt.ctrlKey || evt.metaKey ||iskeyctrlActive) {
8376 8385 $scope.SetwindowStoreData(windowviewid, 'multiAnnotationIsON', true);
8377 8386 }
8378 8387 else
... ... @@ -9044,25 +9053,12 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9044 9053 $scope.removeAllTermTpClose(windowviewid);
9045 9054  
9046 9055 // clear canvas on closing of transparency box
9047   - if ($rootScope.isAnnotationWindowOpen == true) {
9048   - $('#canvasDA_'+windowviewid).removeLayers();
9049   - var paintCanvasObj = document.getElementById('canvasPaintDA_'+windowviewid);
9050   - if (paintCanvasObj != null) {
9051   - var ctx = paintCanvasObj.getContext("2d");
9052   - ctx.clearRect(0, 0, paintCanvasObj.width, paintCanvasObj.height);
9053   -
9054   - var CanvasObj = document.getElementById("canvasDA_" + windowviewid);
9055   - if (CanvasObj != null) {
9056   - var ctx1 = CanvasObj.getContext("2d");
9057   - ctx1.clearRect(0, 0, CanvasObj.width, CanvasObj.height);
9058   - }
9059   - $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
9060   - $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
9061   -
9062   - var sktch = $('#canvasPaintDA_'+windowviewid).sketch();
9063   - $('#canvasPaintDA_'+windowviewid).sketch().actions = [];
9064   - }
9065   - }
  9056 +
  9057 + $('#canvasDA_' + windowviewid).removeLayers();//remove all old shape
  9058 + // var sktch = $("#canvasPaintDA_" + windowviewid).sketch();
  9059 + $("#canvasPaintDA_" + windowviewid).sketch().actions = [];//remove old paint data
  9060 + $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
  9061 + $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
9066 9062  
9067 9063 var tBox = document.getElementById('transparencyCanvas_' + windowviewid);
9068 9064 if (tBox != null) {
... ... @@ -9143,6 +9139,10 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9143 9139  
9144 9140 }
9145 9141  
  9142 + $scope.removeannotationShape = function (ClickByButton,windowviewid){
  9143 +
  9144 + }
  9145 +
9146 9146 function positionTooltip(event, x, y) {
9147 9147 x = 100,
9148 9148 y = 200,
... ... @@ -9213,10 +9213,10 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9213 9213 }
9214 9214  
9215 9215 $scope.enableZoom = function (event) {
9216   - $scope.DisableUI();
9217 9216 $rootScope.UnsaveCurriculum = true;
9218 9217 var len = (event.currentTarget.id).split("_").length;
9219   - var windowviewid = (event.currentTarget.id).split("_")[len-1];
  9218 + var windowviewid = (event.currentTarget.id).split("_")[len-1];
  9219 + $scope.DisableDAUI(windowviewid);
9220 9220 $("#OnIdentify").removeClass("annotationtoolbartab");
9221 9221 $("#DrawMode").removeClass("annotationtoolbartab");
9222 9222 $('.btnCursor').removeClass('activebtncolor');
... ... @@ -9265,14 +9265,21 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9265 9265 $scope.SetwindowStoreData(windowviewid,'zoomInOut',25);
9266 9266 $('#zoomValueDA_' + windowviewid).attr('value', $scope.GetwindowStoreData(windowviewid,'zoomInOut'));
9267 9267 }
  9268 + $('#canvasDA_' + windowviewid).removeLayers();//remove all old shape
  9269 + //var sktch = $("#canvasPaintDA_" + windowviewid).sketch();
  9270 + $("#canvasPaintDA_" + windowviewid).sketch().actions = [];//remove old paint data
9268 9271  
9269 9272 var canDiv = document.getElementById('canvasDivDA_' + windowviewid);
9270 9273 var canDivChildCount = canDiv.childElementCount;
9271 9274 if (canDivChildCount > 0) {
9272 9275 canDiv.innerHTML = '';
9273 9276 }
  9277 +
  9278 + $scope.SetwindowStoreData(windowviewid, 'isCanvasReset',true);
  9279 + $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
  9280 + $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
9274 9281 var viewOrientationId = $scope.GetwindowStoreData(windowviewid, 'viewOrientationId');
9275   - $scope.CalculateImageCordinates(viewOrientationId,windowviewid);
  9282 + $scope.CalculateImageCordinates(viewOrientationId,windowviewid);
9276 9283  
9277 9284  
9278 9285 if ($scope.GetwindowStoreData(windowviewid,'zoomInOut') == 25) {
... ... @@ -9288,7 +9295,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9288 9295 }
9289 9296  
9290 9297 $scope.flushCanvas = function (windowviewid) {
9291   - $scope.DisableUI();
  9298 + $scope.DisableDAUI(windowviewid);
9292 9299 var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
9293 9300 var endIndex = 0;
9294 9301 var startIndex = 0;
... ... @@ -9365,7 +9372,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9365 9372 $scope.SetwindowStoreData(windowviewid, 'mode', "HIGHLIGHT");
9366 9373 $scope.SetwindowStoreData(windowviewid, 'isHighlightlBtnClicked', true);
9367 9374  
9368   - $scope.DisableUI();
  9375 + $scope.DisableDAUI(windowviewid);
9369 9376  
9370 9377 $('#btnTranparency_' + windowviewid).removeAttr('disabled', 'disabled');
9371 9378  
... ... @@ -9429,7 +9436,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9429 9436 $('#canvasDivDA_' + windowviewid).scrollTop(CanvasDivTopPosition);
9430 9437 $('#canvasDivDA_' + windowviewid).scrollLeft(CanvasDivLeftPosition);
9431 9438  
9432   - $scope.EnableUI();
  9439 + $scope.EnableDAUI(windowviewid);
9433 9440 }
9434 9441  
9435 9442 $scope.enableNormalMode = function (windowviewid) {
... ... @@ -9523,9 +9530,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9523 9530 $scope.enableExtract = function (isCalledFromButton,windowviewid) {
9524 9531 $scope.SetwindowStoreData(windowviewid, 'mode', "EXTRACT");
9525 9532  
9526   - $scope.DisableUI();
9527   -
9528   - console.log('isCalledFromButton= ' + isCalledFromButton);
  9533 + $scope.DisableDAUI(windowviewid);
9529 9534  
9530 9535 var CanvasDivLeftPosition = $scope.GetwindowStoreData(windowviewid, 'CanvasDivLeftPosition');
9531 9536 var CanvasDivTopPosition = $scope.GetwindowStoreData(windowviewid, 'CanvasDivTopPosition');
... ... @@ -9608,7 +9613,27 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9608 9613 }
9609 9614 }
9610 9615  
9611   - $scope.EnableUI();
  9616 + $scope.EnableDAUI(windowviewid);
  9617 + }
  9618 +
  9619 + $scope.MultipleAnnotation = function (event) {
  9620 + var len= (event.currentTarget.id).split("_").length;
  9621 + var windowviewid = (event.currentTarget.id).split("_")[len-1];
  9622 +
  9623 + //set true to false or vice versa
  9624 + var iskeyctrlActive= $scope.GetwindowStoreData(windowviewid, 'keyctrl');
  9625 + $("#multiannotation_" + windowviewid).toggleClass("disableMultiAnnotationText");
  9626 +
  9627 + if(iskeyctrlActive)
  9628 + {
  9629 + $("#multiannotation_"+windowviewid ).attr('title', 'Active Multiple Structure');
  9630 + }
  9631 + else
  9632 + {
  9633 + $("#multiannotation_"+windowviewid ).attr('title', 'Disable Multiple Structure');
  9634 + }
  9635 +
  9636 + $scope.SetwindowStoreData(windowviewid, 'keyctrl', !iskeyctrlActive);
9612 9637 }
9613 9638  
9614 9639 $scope.enableShowHideStructureBox = function (event) {
... ... @@ -9618,19 +9643,23 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9618 9643 var windowviewid = (event.currentTarget.id).split("_")[len-1];
9619 9644  
9620 9645 $scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
  9646 + $("#btnStrutureBox_" + windowviewid).toggleClass("disableHideShowStructure");
9621 9647 $rootScope.CloseListManager();
9622 9648 var btnStrutureBoxname = document.getElementById("btnStrutureBox_" + windowviewid).name;
9623 9649  
9624 9650 if (btnStrutureBoxname == "showAnnotationStructure") {
9625   - $("#btnStrutureBox_" + windowviewid).addClass("disableHideShowStructure");
  9651 + $("#btnStrutureBox_"+windowviewid ).attr('title', 'Show Structure Name Boxes');
  9652 + $("#btnStrutureBox_"+windowviewid +" i").removeClass("far fa-comment-alt-times").addClass("far fa-comment-alt");
  9653 + $("#btnStrutureBox_"+windowviewid ).attr('name', 'hideAnnotationStructure');
  9654 +
9626 9655 $scope.hideAnnotation(windowviewid);
9627   - document.getElementById("btnStrutureBox_" + windowviewid).name = "hideAnnotationStructure";
9628 9656 $scope.SetwindowStoreData(windowviewid, 'showHideAnnotations', 'hideAnnotationStructure');
9629 9657 }
9630 9658 else {
9631   - $("#btnStrutureBox_" + windowviewid).removeClass("disableHideShowStructure");
  9659 + $("#btnStrutureBox_"+windowviewid ).attr('title', 'Hide Structure Name Boxes');
  9660 + $("#btnStrutureBox_"+windowviewid +" i").removeClass("far fa-comment-alt").addClass("far fa-comment-alt-times");
  9661 + $("#btnStrutureBox_"+windowviewid ).attr('name', 'showAnnotationStructure');
9632 9662 $scope.showAnnotation(windowviewid);
9633   - document.getElementById("btnStrutureBox_" + windowviewid).name = "showAnnotationStructure";
9634 9663 $scope.SetwindowStoreData(windowviewid, 'showHideAnnotations', 'showAnnotationStructure');
9635 9664 }
9636 9665 }
... ... @@ -9770,7 +9799,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9770 9799  
9771 9800  
9772 9801 if (colorMode != undefined || colorMode != null) {
9773   - $scope.DisableUI();
  9802 + $scope.DisableDAUI(windowviewid);
9774 9803 var zeroPoint = new Point();
9775 9804  
9776 9805 DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
... ... @@ -9876,13 +9905,13 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9876 9905 var isListManagerAlreadySelected = $scope.GetwindowStoreData(windowviewid, 'isListManagerAlreadySelected');
9877 9906 var isLexiconReload= $scope.GetwindowStoreData(windowviewid, 'isannotationReload');
9878 9907 if (((isHighlightBodyByBodySystem == true)) || (isbodySystemHighlight == true && isHighLight == true)) {
9879   - $scope.DisableUI();
  9908 + $scope.DisableDAUI(windowviewid);
9880 9909 $timeout(function () { $scope.HighlightBodyByTermListForBodySystem(null, windowviewid) }, 100);
9881 9910 }
9882 9911 else if (($rootScope.isCallFromOtherModule == true)||isLexiconReload==true || (isListManagerSelected == true) || (previousHighlightList != null && previousHighlightList.length > 0) && (isGenderChnage == true || isViewChange == true) || isListManagerAlreadySelected == true) {
9883 9912  
9884 9913 $timeout(function () {
9885   - $scope.DisableUI();
  9914 + $scope.DisableDAUI(windowviewid);
9886 9915 if (AllTerms != undefined && AllTerms.length > 0) {
9887 9916 $scope.HighlightBodyByTermList(AllTerms, windowviewid);
9888 9917 }
... ... @@ -9900,7 +9929,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9900 9929 $scope.createTermListByPreviousTermsAndHighlight(windowviewid);
9901 9930 }
9902 9931  
9903   - $scope.EnableUI();
  9932 + $scope.EnableDAUI(windowviewid);
9904 9933 }
9905 9934 }, 500);
9906 9935  
... ... @@ -9912,7 +9941,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9912 9941 //for highlight when highlight button is clicked the ui got disabled,
9913 9942 //now highlight is completed so enalbe UI
9914 9943  
9915   - $scope.EnableUI();
  9944 + $scope.EnableDAUI(windowviewid);
9916 9945  
9917 9946 }
9918 9947  
... ... @@ -9931,7 +9960,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9931 9960 console.log('1. $rootScope.isExtract=true and previousHighlightList != null')
9932 9961  
9933 9962 $timeout(function () {
9934   - $scope.DisableUI();
  9963 + $scope.DisableDAUI(windowviewid);
9935 9964 $scope.HighlightBodyOnExtract(windowviewid)
9936 9965 }, 50);
9937 9966 }
... ... @@ -9939,7 +9968,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9939 9968 console.log('1. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
9940 9969  
9941 9970 $timeout(function () {
9942   - $scope.DisableUI();
  9971 + $scope.DisableDAUI(windowviewid);
9943 9972 $scope.HighlightBodyOnExtract(windowviewid)
9944 9973 }, 50);
9945 9974  
... ... @@ -9948,7 +9977,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
9948 9977 $scope.HighlightBodyByTermListForBodySystem(null, windowviewid);
9949 9978 }
9950 9979 else {
9951   - $scope.EnableUI();
  9980 + $scope.EnableDAUI(windowviewid);
9952 9981 }
9953 9982 }
9954 9983 }
... ... @@ -10024,7 +10053,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10024 10053  
10025 10054 console.log('colorMode inside else = ' + colorMode);
10026 10055 if (colorMode != undefined || colorMode != null) {
10027   - $scope.DisableUI();
  10056 + $scope.DisableDAUI(windowviewid);
10028 10057 var zeroPoint = new Point();
10029 10058  
10030 10059 DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
... ... @@ -10092,7 +10121,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10092 10121 console.log('2. $rootScope.isExtract=true and previousHighlightList != null, previousHighlightList.length= ' + previousHighlightList.length)
10093 10122  
10094 10123 $timeout(function () {
10095   - $scope.DisableUI();
  10124 + $scope.DisableDAUI(windowviewid);
10096 10125 $scope.HighlightBodyOnExtract(windowviewid)
10097 10126 }, 50);
10098 10127  
... ... @@ -10100,7 +10129,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10100 10129 else if (isListManagerSelected == true) {
10101 10130 console.log('2. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
10102 10131 $timeout(function () {
10103   - $scope.DisableUI();
  10132 + $scope.DisableDAUI(windowviewid);
10104 10133 $scope.HighlightBodyOnExtract(windowviewid)
10105 10134 }, 50);
10106 10135  
... ... @@ -10110,12 +10139,12 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10110 10139 }
10111 10140 else if ($rootScope.isCallFromOtherModule && AllTerms.length > 0) {
10112 10141 $timeout(function () {
10113   - $scope.DisableUI();
  10142 + $scope.DisableDAUI(windowviewid);
10114 10143 $scope.HighlightBodyOnExtract(windowviewid)
10115 10144 }, 50);
10116 10145 }
10117 10146 else {
10118   - $scope.EnableUI();
  10147 + $scope.EnableDAUI(windowviewid);
10119 10148  
10120 10149 }
10121 10150 }
... ... @@ -10226,7 +10255,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10226 10255 return;
10227 10256 }
10228 10257  
10229   - $scope.DisableUI();
  10258 + $scope.DisableDAUI(windowviewid);
10230 10259 $rootScope.UnsaveCurriculum = true;
10231 10260 var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
10232 10261 $scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
... ... @@ -10256,11 +10285,17 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10256 10285  
10257 10286 $rootScope.CloseListManager();
10258 10287  
  10288 + $('#canvasDA_' + windowviewid).removeLayers();//remove all old shape
  10289 + //var sktch = $("#canvasPaintDA_" + windowviewid).sketch();
  10290 + $("#canvasPaintDA_" + windowviewid).sketch().actions = [];//remove old paint data
  10291 +
10259 10292 var canDiv = document.getElementById('canvasDivDA_' + windowviewid);
10260 10293 var canDivChildCount = canDiv.childElementCount;
10261 10294 if (canDivChildCount > 0) {
10262 10295 canDiv.innerHTML = '';
10263 10296 }
  10297 +
  10298 + $scope.SetwindowStoreData(windowviewid, 'isCanvasReset',true);
10264 10299 //canvas is clear in search term,layer change,viewchange here. so annotationData should also clear
10265 10300 $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
10266 10301 $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
... ... @@ -10293,7 +10328,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10293 10328  
10294 10329 //2 first update the currentbodyviewid in local storage
10295 10330 localStorage.setItem("currentBodyViewId", currentBodyViewId);
10296   - $scope.DisableUI();
  10331 + $scope.DisableDAUI(windowviewid);
10297 10332 //3. update gender local storage
10298 10333 if (!$rootScope.isCallFromOtherModule) {
10299 10334 localStorage.setItem("currentGenderValue", 'Male');
... ... @@ -10330,7 +10365,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10330 10365 //2. first update the currentbodyviewid in local storage
10331 10366 localStorage.setItem("currentBodyViewId", currentBodyViewId);
10332 10367  
10333   - $scope.DisableUI();
  10368 + $scope.DisableDAUI(windowviewid);
10334 10369  
10335 10370 //3. update gender local storage
10336 10371 if (!$rootScope.isCallFromOtherModule) {
... ... @@ -10377,7 +10412,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10377 10412 }
10378 10413  
10379 10414 $scope.loadBodyViewChangedBySetting = function (windowviewid, isLexiconChange) {
10380   - $scope.DisableUI();
  10415 + $scope.DisableDAUI(windowviewid);
10381 10416 $scope.LoadImageToExport(windowviewid);
10382 10417 var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
10383 10418 var timeintval=$scope.GetwindowStoreData(windowviewid,'intervalObject');
... ... @@ -10395,7 +10430,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10395 10430 if (vocabTermDataArray!=null) {
10396 10431 var intval=$scope.GetwindowStoreData(panid,'intervalObject');
10397 10432 $scope.stopVocab(intval);
10398   - $scope.langSearchLoad(windowviewid);
  10433 + $scope.langSearchLoad(panid);
10399 10434 //loading da for selected panel
10400 10435 $scope.CalculateImageCordinates(viewOrientationId, panid);
10401 10436  
... ... @@ -10405,13 +10440,13 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10405 10440 var winid = (selectedPanel).split("_")[1];
10406 10441 if(winid==panid)
10407 10442 {
10408   - $scope.DisableUI();
  10443 + $scope.DisableDAUI(panid);
10409 10444 $rootScope.dalistManagerEvent(panid);
10410 10445 }
10411 10446 }
10412 10447  
10413 10448 if ($scope.GetwindowStoreData(panid,'isSearchClicked')) {
10414   - $scope.DisableUI();
  10449 + $scope.DisableDAUI(panid);
10415 10450 if ($('#searchTermListUl_' + panid).html() != "") {
10416 10451 $('#searchTermListUl_' + panid).empty();
10417 10452 }
... ... @@ -10453,12 +10488,12 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10453 10488 $scope.loadSelectedBodyView(currentBodyViewId,windowviewid);
10454 10489 $timeout(function () {
10455 10490 if ($rootScope.isListManagerMenuSelected) {
10456   - $scope.DisableUI();
  10491 + $scope.DisableDAUI(windowviewid);
10457 10492 $rootScope.dalistManagerEvent(windowviewid)
10458 10493 }
10459 10494  
10460 10495 if ($scope.GetwindowStoreData(windowviewid,'isSearchClicked')) {
10461   - $scope.DisableUI();
  10496 + $scope.DisableDAUI(windowviewid);
10462 10497 if ($('#searchTermListUl_' + windowviewid).html() != "") {
10463 10498 $('#searchTermListUl_' + windowviewid).empty();
10464 10499 }
... ... @@ -10569,7 +10604,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10569 10604 $scope.SetwindowStoreData(windowviewid,'previousHighlightList',[]);
10570 10605 }
10571 10606 $rootScope.UnsaveCurriculum = true;
10572   - $scope.DisableUI();
  10607 + $scope.DisableDAUI(windowviewid);
10573 10608 $scope.SetwindowStoreData(windowviewid,'isViewChange',true);
10574 10609  
10575 10610 var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
... ... @@ -10619,12 +10654,18 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10619 10654 $("#btnHighLight_" + windowviewid).addClass("btn-primary");
10620 10655 }
10621 10656  
  10657 + $('#canvasDA_' + windowviewid).removeLayers();//remove all old shape
  10658 + //var sktch = $("#canvasPaintDA_" + windowviewid).sketch();
  10659 + $("#canvasPaintDA_" + windowviewid).sketch().actions = [];//remove old paint data
  10660 +
10622 10661 //remove existing body view
10623 10662 var canDiv = document.getElementById("canvasDivDA_" + windowviewid);
10624 10663 var canDivChildCount = canDiv.childElementCount;
10625 10664 if (canDivChildCount > 0) {
10626 10665 canDiv.innerHTML = '';
10627 10666 }
  10667 +
  10668 + $scope.SetwindowStoreData(windowviewid, 'isCanvasReset',true);
10628 10669 //canvas is clear in search term,layer change,viewchange here. so annotationData should also clear
10629 10670 $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
10630 10671 $scope.SetwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
... ... @@ -10641,7 +10682,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10641 10682 }
10642 10683 else
10643 10684 $scope.SetwindowStoreData(windowviewid,'voId',selectedViewId);
10644   - $scope.DisableUI();
  10685 + $scope.DisableDAUI(windowviewid);
10645 10686  
10646 10687 var bodyVid= $scope.GetwindowStoreData(windowviewid,'voId')
10647 10688  
... ... @@ -10672,7 +10713,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10672 10713 selectedViewId = $scope.correspondingBodyViewIds[selectedViewId];
10673 10714 if ($scope.GetwindowStoreData(windowviewid,'voId') != selectedViewId) {
10674 10715 $scope.SetwindowStoreData(windowviewid,'voId',selectedViewId);
10675   - $scope.DisableUI();
  10716 + $scope.DisableDAUI(windowviewid);
10676 10717  
10677 10718 var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
10678 10719 //1.
... ... @@ -10722,7 +10763,6 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10722 10763  
10723 10764 //Reload DA controller Body View after setting Change
10724 10765 $rootScope.reloadDABodyViewEvent = function (bodyViewId,isLexiconChange, windowviewid) {
10725   - //console.log('reloadDABodyViewEvent');
10726 10766 $scope.SetwindowStoreData(windowviewid,'isGlobalSettingChanged',true);
10727 10767 if ($rootScope.isSettingEventAlredayDispachted == true) {
10728 10768 $rootScope.isSettingEventAlredayDispachted = false; // define at home controller
... ... @@ -10854,7 +10894,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10854 10894 var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
10855 10895 $scope.SetwindowStoreData(windowviewid,'isExtract',false);
10856 10896 $("#structureDropdownDA_" + windowviewid).toggle();
10857   - $scope.DisableUI();
  10897 + $scope.DisableDAUI(windowviewid);
10858 10898  
10859 10899 $scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
10860 10900 $rootScope.CloseListManager();
... ... @@ -10868,7 +10908,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10868 10908 $scope.removeCurrentHighlightedBodySystem(windowviewid);
10869 10909 $scope.SetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem',false);
10870 10910 $scope.SetwindowStoreData(windowviewid,'isbodySystemHighlight',false);
10871   - $scope.EnableUI();
  10911 + $scope.EnableDAUI(windowviewid);
10872 10912 }
10873 10913  
10874 10914 else {
... ... @@ -10906,7 +10946,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
10906 10946 }
10907 10947 var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
10908 10948 if (($scope.isAlreadyHighlighted == true && isHighlightBodyByBodySystem == true)) {
10909   - $scope.DisableUI();
  10949 + $scope.DisableDAUI(windowviewid);
10910 10950 $timeout(function () { $scope.HighlightBodyByTermListForBodySystem(null, windowviewid) }, 100);
10911 10951 }
10912 10952 }
... ... @@ -11153,7 +11193,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11153 11193 //event remove it fire multiple time
11154 11194 $rootScope.dalistManagerEvent = function (windowviewid) {
11155 11195  
11156   - $scope.DisableUI();
  11196 + $scope.DisableDAUI(windowviewid);
11157 11197 $('#bodySystems').empty();
11158 11198 $("#bodySystems").css("display", "block");
11159 11199 $("#AABodySystems").css("display", "none");
... ... @@ -11199,14 +11239,10 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11199 11239 // primar language
11200 11240 var lanName=languageArray[0].language;
11201 11241 $scope.loadListManger(windowviewid,lanName,totalstructure);
11202   -
11203   - $rootScope.islistManagerEventAlredayDispachted = false;
11204   - $scope.EnableUI();
11205   -
11206 11242 }
11207 11243  
11208 11244 $rootScope.changeLanguageLmEvent = function (windowviewid) {
11209   - $scope.DisableUI();
  11245 + $scope.DisableDAUI(windowviewid);
11210 11246 $('#termList').empty();
11211 11247 var totalstructure=0;
11212 11248 $scope.SetwindowStoreData(windowviewid,'totalstructure',0);
... ... @@ -11246,7 +11282,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11246 11282 }
11247 11283  
11248 11284 $rootScope.LoadMoreLmEvent = function (windowviewid) {
11249   - $scope.DisableUI();
  11285 + $scope.DisableDAUI(windowviewid);
11250 11286 var langId = $("#selectLanguageLm option:selected").val();
11251 11287 var totalstructure = $scope.GetwindowStoreData(windowviewid, 'totalstructureLm');
11252 11288  
... ... @@ -11326,15 +11362,14 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11326 11362 $('#btlLoadMoreLm').attr('disabled', 'disabled');
11327 11363 }
11328 11364  
11329   - $scope.EnableUI();
11330   -
  11365 + $scope.EnableDAUI(windowviewid);
11331 11366  
11332 11367 }
11333 11368  
11334 11369 $rootScope.refreshTermListOnSystemSelection = function (selectedBodysystemId) {
11335 11370 var windowviewid = (selectedBodysystemId).split("_")[1];
11336 11371 var bodysystemId = (selectedBodysystemId).split("_")[0];
11337   - $scope.DisableUI();
  11372 + $scope.DisableDAUI(windowviewid);
11338 11373 $("#bodySystems").find("option:not(:disabled)").css({ "background-color": "#ffffff", "color": "#000000" });
11339 11374 $("#bodySystems").find("option[id=" + selectedBodysystemId + "]").css({ "background-color": "#3399FF", "color": "#ffffff" });
11340 11375  
... ... @@ -11462,7 +11497,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11462 11497 }
11463 11498  
11464 11499 }
11465   - $scope.EnableUI();
  11500 + $scope.EnableDAUI(windowviewid);
11466 11501  
11467 11502 }
11468 11503  
... ... @@ -11490,10 +11525,10 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11490 11525 // Terms search in the Search list should be disable in the List Manager and Vice-Versa.
11491 11526 var prevId=$scope.GetwindowStoreData(windowviewid,'prevId');
11492 11527 if (prevId == actualTermNumber) {
11493   - $scope.EnableUI();
  11528 + $scope.EnableDAUI(windowviewid);
11494 11529 }
11495 11530 else {
11496   - $scope.DisableUI();
  11531 + $scope.DisableDAUI(windowviewid);
11497 11532  
11498 11533 // clear previousHighlightList and Terms and false multiAnnotation
11499 11534 $scope.SetwindowStoreData(windowviewid, 'fullTermlist', []);
... ... @@ -11633,13 +11668,18 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11633 11668  
11634 11669 $('#layerChangeSliderDA_' + windowviewid).slider("option", "value", sliderVal);
11635 11670  
  11671 + $('#canvasDA_' + windowviewid).removeLayers();//remove all old shape
  11672 + //var sktch = $("#canvasPaintDA_" + windowviewid).sketch();
  11673 + $("#canvasPaintDA_" + windowviewid).sketch().actions = [];//remove old paint data
  11674 +
11636 11675 //remove existing body view
11637 11676 var canDiv = document.getElementById('canvasDivDA_' + windowviewid);
11638 11677 var canDivChildCount = canDiv.childElementCount;
11639 11678 if (canDivChildCount > 0) {
11640 11679 canDiv.innerHTML = '';
11641 11680 }
11642   -
  11681 +
  11682 + $scope.SetwindowStoreData(windowviewid, 'isCanvasReset',true);
11643 11683 //9.
11644 11684 //canvas is clear in search term,layer change,viewchange here. so annotationData should also clear
11645 11685 $scope.SetwindowStoreData(windowviewid, 'isCBAnnotationActive',false);
... ... @@ -11656,7 +11696,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11656 11696 $('#dot_'+windowviewid).css("display", "none");
11657 11697 //DA > Annotation's Line should not displayed.
11658 11698 $('#bord_'+windowviewid).css("display", "none");
11659   - $scope.EnableUI();
  11699 + $scope.EnableDAUI(windowviewid);
11660 11700 //redraw body of respective layer
11661 11701 var viewOrientationId = $scope.GetwindowStoreData(windowviewid, 'viewOrientationId');
11662 11702  
... ... @@ -11789,7 +11829,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11789 11829 $scope.SetwindowStoreData(windowviewid,'CanvasDivLeftPosition',$('#canvasDivDA_' + windowviewid).scrollLeft());
11790 11830 $scope.SetwindowStoreData(windowviewid,'CanvasDivTopPosition',$('#canvasDivDA_' + windowviewid).scrollTop());
11791 11831  
11792   - $scope.EnableUI();
  11832 + $scope.EnableDAUI(windowviewid);
11793 11833 }
11794 11834  
11795 11835 $scope.scaleValue = function (nValue, nNewZoom, nExistingZoom) {
... ... @@ -11905,7 +11945,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
11905 11945  
11906 11946 var oldtimestamp = $scope.GetwindowStoreData(windowviewid, 'SearchTimeStampValue');
11907 11947  
11908   - if ((newtimestamp - oldtimestamp) > 500) {
  11948 + if ((newtimestamp - oldtimestamp) > 100) {
11909 11949  
11910 11950 $scope.SetwindowStoreData(windowviewid, 'SearchTimeStampValue', newtimestamp);
11911 11951 $scope.showFilteredTerms(windowviewid);
... ... @@ -12047,7 +12087,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
12047 12087 var len= (event.currentTarget.id).split("_").length;
12048 12088 var windowviewid = (event.currentTarget.id).split("_")[len-1];
12049 12089  
12050   - $scope.DisableUI();
  12090 + $scope.DisableDAUI(windowviewid);
12051 12091 $('#searchedTermListPopUp_' + windowviewid).css({
12052 12092 'background': '#fff',
12053 12093 'border-radius': '3px',
... ... @@ -12131,9 +12171,10 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
12131 12171 }
12132 12172  
12133 12173 $scope.changeLanguageList = function (event) {
12134   - $scope.DisableUI();
12135 12174 var len= (event.currentTarget.id).split("_").length;
12136 12175 var windowviewid = (event.currentTarget.id).split("_")[len-1];
  12176 +
  12177 + $scope.DisableDAUI(windowviewid);
12137 12178 if ($('#searchTermListUl_' + windowviewid).html() != "") {
12138 12179 $('#searchTermListUl_' + windowviewid).empty();
12139 12180 }
... ... @@ -12168,9 +12209,10 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
12168 12209 }
12169 12210  
12170 12211 $scope.LoadMore = function (event) {
12171   - $scope.DisableUI();
12172 12212 var len= (event.currentTarget.id).split("_").length;
12173 12213 var windowviewid = (event.currentTarget.id).split("_")[len-1];
  12214 +
  12215 + $scope.DisableDAUI(windowviewid);
12174 12216 var totalstructure = $scope.GetwindowStoreData(windowviewid, 'totalstructure');
12175 12217  
12176 12218 setTimeout(function () {
... ... @@ -12250,7 +12292,7 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
12250 12292 });
12251 12293 }
12252 12294  
12253   - $scope.EnableUI();
  12295 + $scope.EnableDAUI(windowviewid);
12254 12296  
12255 12297 }
12256 12298  
... ... @@ -12346,6 +12388,14 @@ function enableShowHideStructureBox(event) {
12346 12388 });
12347 12389 }
12348 12390  
  12391 +function keyControlDAActive(event) {
  12392 + console.log('OnBodySystem chnaged is called outside ');
  12393 + var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
  12394 + scope.$apply(function () {
  12395 + scope.MultipleAnnotation(event);
  12396 + });
  12397 +}
  12398 +
12349 12399 function OnSearch(event) {
12350 12400  
12351 12401 console.log('Show Search is called outside ');
... ... @@ -12445,9 +12495,9 @@ function onDrawingCanvasTouchMove(event) {
12445 12495  
12446 12496 function OnZoom(event) {
12447 12497 var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
12448   - scope.DisableUI();
12449 12498 var len= (event.currentTarget.id).split("_").length;
12450 12499 var windowviewid = (event.currentTarget.id).split("_")[len-1];
  12500 + scope.DisableDAUI(windowviewid);
12451 12501  
12452 12502 if ($(".btn-annotation").hasClass("activebtncolor")) //Bug #14928
12453 12503 $(".btn-annotation").removeClass("activebtncolor");
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
... ... @@ -41,7 +41,6 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
41 41  
42 42 $rootScope.isModestyOn;
43 43 $rootScope.isModestyOff;
44   - $rootScope.SetSettingActiveTab;
45 44 $("#annotationButton").addClass("disableMenuoption");
46 45 $("#Menuoptionid").addClass("disableMenuoption");
47 46 $rootScope.menuLabExer;
... ... @@ -299,18 +298,9 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
299 298 parentslag = "lab-exercise-view";
300 299 openNewlink = "lab-exercises";
301 300 }
302   - var newpanelWidth=0;
303   - var newpanelHeight=0;
304   - var newpanelLeft=0;
305   - var $ua = navigator.userAgent;
306   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
307   - newpanelWidth=screen.width;
308   - newpanelHeight=screen.height;
309   - }
310   - else{
311   - newpanelWidth=screen.width-10;
312   - newpanelHeight=screen.height-185;
313   - }
  301 + var innerWidth =$(window).innerWidth()-10;
  302 + var innerheight =$(window).innerHeight()-40;
  303 +
314 304 $.jsPanel({
315 305 id: 'dvOpenResourcePanel',
316 306 selector: '#dvOpenResoucePanel',
... ... @@ -318,7 +308,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
318 308 currentController: 'HomeController',
319 309 parentSlug: parentslag,
320 310 content: '<div>' +
321   - '<iframe src="' + homepath + '" width="100%" height="10px" frameBorder="0" name="' + openNewlink + '" id="OpenModuleInCB" onload="OpenResourcePanel(this)"></iframe>',
  311 + '<iframe src="' + homepath + '" width="100%" height="'+innerheight+'px" frameBorder="0" name="' + openNewlink + '" id="OpenModuleInCB" onload="OpenResourcePanel(this)"></iframe>',
322 312 title: "",
323 313 position: {
324 314 top: 1,
... ... @@ -328,8 +318,20 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
328 318 draggable: "disabled",
329 319  
330 320 size: {
331   - width: newpanelWidth,
332   - height: newpanelHeight
  321 + width: innerWidth,
  322 + height: innerheight
  323 + },
  324 + resizable: {
  325 + minWidth: 770,
  326 + minHeight: 770,
  327 + start:function(event, ui)
  328 + {
  329 + $("#OpenModuleInCB").css("display", "block");
  330 + },
  331 + stop: function (event, ui) {
  332 + // var canvasDIvHeight = $("#CBTinyMCEPanel .jsPanel-content").height();
  333 +
  334 + }
333 335 },
334 336  
335 337 });
... ... @@ -367,9 +369,6 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
367 369 $(head).append(css);
368 370 // $(head).append(storefunc);
369 371  
370   - var canvasDIvHeight = $("#dvOpenResourcePanel .jsPanel-content").height();
371   - $('#OpenModuleInCB').css('height', canvasDIvHeight);
372   -
373 372 $timeout(function () {
374 373 console.log('frame content loding delayed......');
375 374 $scope.loadopenresourceContent(head, iframe);
... ... @@ -386,7 +385,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
386 385 {
387 386 $timeout(function () {
388 387 sessionStorage.setItem('isModuleOpenByOpenResource', 'true');
389   - sessionStorage.removeItem('ExitsCBFileDetail');
  388 + sessionStorage.removeItem('ExitsCBFileDetail');
390 389 // OpenDefaultModule(iframe);
391 390  
392 391 }, 500);
... ... @@ -690,7 +689,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
690 689  
691 690 $rootScope.isLoading = false;
692 691 $rootScope.isLoginLoading = false;
693   -
  692 +
694 693 //unblock user
695 694 if (url.indexOf('?unb:') != -1) {
696 695  
... ... @@ -709,86 +708,104 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
709 708  
710 709 //get user is already loggedin or not
711 710 $scope.currentUserDetails = $rootScope.getLocalStorageValue('loggedInUserDetails');
712   - if ($scope.currentUserDetails != undefined) {
  711 + var siteUserParamDetail = JSON.parse($rootScope.getLocalStorageValue('siteUserParamDetail'));
  712 + if(siteUserParamDetail!=undefined && siteUserParamDetail!=null && $scope.currentUserDetails != undefined)
  713 + {
713 714 $rootScope.isVisibleLogin = false;
714 715 $location.url('/');
715   - var loggedInUser = JSON.parse($scope.currentUserDetails);
716   - if(loggedInUser.mType!=undefined)
717   - {
718   - $rootScope.isCAlink=true;
719   - $('.navbar-fixed-top').css('display','none');
720   - }
721   -
722   - ConfigurationService.getCofigValue()
723   - .then(
724   - function (configresult) {
725   - $rootScope.current_year = configresult.current_year;
726   - $rootScope.aiaIdleTime = configresult.idleTime;
727   - $rootScope.aiaIdleTimeOut = configresult.idelTimeOut;
728   - $rootScope.aiaPingInterval = configresult.pingInterval;
729   - $rootScope.aiaAnimationPath = configresult.serverPath;
730   - $rootScope.MaxOneFileSize = configresult.fileSize;
731   - $rootScope.aodDomainName = configresult.aodSiteUrl;
732   -
733   - //incase site user login userid is 0 so then using license id
734   - //logout site user while reload url without parameter
735   - var userId=loggedInUser.Id==0?loggedInUser.LicenseId:loggedInUser.Id;
736   -
737   - //licenseId would be zero for admin/gernal admin
738   - var isadminType=loggedInUser.LicenseId==0?true:false;
739   - if(loggedInUser.mType!=undefined)
740   - {
741   - $scope.checkuserstatus = {
742   - userId: userId,
743   - tagName: loggedInUser.mType.toLowerCase()=='ca'?'logout':'update',
744   - SessionId:loggedInUser.SessionId,
745   - isSiteUser:loggedInUser.isSiteUser,
746   - isAdmin:isadminType
747   - }
748   - }
749   - else
750   - {
751   - $scope.checkuserstatus = {
752   - userId: userId,
753   - tagName: loggedInUser.Id==0?'logout':'update',
754   - SessionId:loggedInUser.SessionId,
755   - isSiteUser:loggedInUser.isSiteUser,
756   - isAdmin:isadminType
757   - }
758   -
759   - }
760   -
761   -
762   - // this case found when browser closed by user after login. after long time (after 20 min) open site again
763   - // loggedInUserDetails contain user detail so user auto login but it is logout by
764   - // 1.by agent job 2. or by admin section from db
765   - // so check user session again before auto login
766   - AuthenticationService.ManageUserLoginStatus($scope.checkuserstatus)
767   - .then(
768   - function (loginStatus) {
769   - if(loginStatus!=null)
  716 + $rootScope.isCallFromSite = true;
  717 + $rootScope.isCAlink=true;
  718 + $rootScope.LoginDisableUI();
  719 + $rootScope.siteUrlInfo.siteIP = siteUserParamDetail.siteIP;
  720 + $rootScope.siteUrlInfo.accountNumber = siteUserParamDetail.accountNumber;
  721 + $rootScope.siteUrlInfo.edition = siteUserParamDetail.edition;
  722 + $rootScope.siteUrlInfo.urlReferer = siteUserParamDetail.urlReferer;
  723 + $rootScope.siteUrlInfo.remoteIPAddress = siteUserParamDetail.remoteIPAddress;
  724 + var sitedetail=$rootScope.siteUrlInfo;
  725 + $rootScope.ReloadClientSiteUser(sitedetail);
  726 + }
  727 + else
  728 + {
  729 + if ($scope.currentUserDetails != undefined) {
  730 + $rootScope.isVisibleLogin = false;
  731 + $location.url('/');
  732 + var loggedInUser = JSON.parse($scope.currentUserDetails);
  733 + if(loggedInUser.mType!=undefined)
  734 + {
  735 + $rootScope.isCAlink=true;
  736 + $('.navbar-fixed-top').css('display','none');
  737 + }
  738 +
  739 + ConfigurationService.getCofigValue()
  740 + .then(
  741 + function (configresult) {
  742 + $rootScope.current_year = configresult.current_year;
  743 + $rootScope.aiaIdleTime = configresult.idleTime;
  744 + $rootScope.aiaIdleTimeOut = configresult.idelTimeOut;
  745 + $rootScope.aiaPingInterval = configresult.pingInterval;
  746 + $rootScope.aiaAnimationPath = configresult.serverPath;
  747 + $rootScope.MaxOneFileSize = configresult.fileSize;
  748 + $rootScope.aodDomainName = configresult.aodSiteUrl;
  749 +
  750 + //incase site user login userid is 0 so then using license id
  751 + //logout site user while reload url without parameter
  752 + var userId=loggedInUser.Id==0?loggedInUser.LicenseId:loggedInUser.Id;
  753 +
  754 + //licenseId would be zero for admin/gernal admin
  755 + var isadminType=loggedInUser.LicenseId==0?true:false;
  756 + if(loggedInUser.mType!=undefined)
770 757 {
771   - if(loginStatus=='False')
772   - {
773   - $rootScope.LogoutUserSession();
  758 + $scope.checkuserstatus = {
  759 + userId: userId,
  760 + tagName: loggedInUser.mType.toLowerCase()=='ca'?'logout':'update',
  761 + SessionId:loggedInUser.SessionId,
  762 + isSiteUser:loggedInUser.isSiteUser,
  763 + isAdmin:isadminType
774 764 }
775   - else
776   - {
777   - AuthenticateAlreadyLoggedInUser();
  765 + }
  766 + else
  767 + {
  768 + $scope.checkuserstatus = {
  769 + userId: userId,
  770 + tagName: loggedInUser.Id==0?'logout':'update',
  771 + SessionId:loggedInUser.SessionId,
  772 + isSiteUser:loggedInUser.isSiteUser,
  773 + isAdmin:isadminType
778 774 }
  775 +
779 776 }
780   -
781   - }),
782   - function (error) {
783   - console.log(' Error in user login status = ' + error.statusText);
784   - $('#errorMessage').text(error);
785   - $("#messageModal").modal('show');
786   - }
787   -
788   - });
789   -
  777 +
  778 +
  779 + // this case found when browser closed by user after login. after long time (after 20 min) open site again
  780 + // loggedInUserDetails contain user detail so user auto login but it is logout by
  781 + // 1.by agent job 2. or by admin section from db
  782 + // so check user session again before auto login
  783 + AuthenticationService.ManageUserLoginStatus($scope.checkuserstatus)
  784 + .then(
  785 + function (loginStatus) {
  786 + if(loginStatus!=null)
  787 + {
  788 + if(loginStatus=='False')
  789 + {
  790 + $rootScope.LogoutUserSession();
  791 + }
  792 + else
  793 + {
  794 + AuthenticateAlreadyLoggedInUser();
  795 + }
  796 + }
  797 +
  798 + }),
  799 + function (error) {
  800 + console.log(' Error in user login status = ' + error.statusText);
  801 + $('#errorMessage').text(error);
  802 + $("#messageModal").modal('show');
  803 + }
  804 +
  805 + });
  806 + }
790 807 }
791   -
  808 +
792 809 var isRememberChecked = $rootScope.getLocalStorageValue('isRememberMeChecked');
793 810  
794 811 if ($rootScope.getLocalStorageValue('isRememberMeChecked') != "" && sessionStorage.getItem("loginSession") == null) {
... ... @@ -802,7 +819,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
802 819 }
803 820 }
804 821 }
805   - else {
  822 + else
  823 + {
806 824  
807 825 $rootScope.isVisibleLogin = true;
808 826  
... ... @@ -813,6 +831,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
813 831 if ($scope.currentUserDetails == undefined) {
814 832 $rootScope.getConfigurationValues();
815 833 }
  834 +
816 835 }
817 836  
818 837 $timeout(function () {
... ... @@ -1580,37 +1599,41 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1580 1599 }
1581 1600 else
1582 1601 {
1583   - $scope.currentUserDetails = $rootScope.getLocalStorageValue('loggedInUserDetails');
1584 1602 var sitedetail=$rootScope.siteUrlInfo;
1585   - ConfigurationService.getCofigValue()
1586   - .then(
1587   - function (configresult) {
1588   - $rootScope.current_year = configresult.current_year;
1589   - $rootScope.aiaIdleTime = configresult.idleTime;
1590   - $rootScope.aiaIdleTimeOut = configresult.idelTimeOut;
1591   - $rootScope.aiaPingInterval = configresult.pingInterval;
1592   - $rootScope.aiaAnimationPath = configresult.serverPath;
1593   - $rootScope.MaxOneFileSize = configresult.fileSize;
1594   - $rootScope.aodDomainName = configresult.aodSiteUrl;
1595   -
1596   - var loggedInUser = JSON.parse($scope.currentUserDetails);
1597   - //check already login by account number bcz no login id for site login
1598   - //maintain user session by licenseid of site login
1599   - if(loggedInUser!==null && loggedInUser.AccountNumber==sitedetail.accountNumber)
1600   - {
1601   - //using old session id
1602   - sitedetail.SessionId = loggedInUser.SessionId;
1603   - $rootScope.AuthenticateClientSiteUser(sitedetail);
1604   - }
1605   - else
1606   - {
1607   - //using new sessionid
1608   - $rootScope.AuthenticateClientSiteUser(sitedetail);
1609   - }
1610   - });
  1603 + $rootScope.ReloadClientSiteUser(sitedetail);
1611 1604 }
1612 1605 }
1613 1606  
  1607 + $rootScope.ReloadClientSiteUser = function (sitedetail) {
  1608 + $scope.currentUserDetails = $rootScope.getLocalStorageValue('loggedInUserDetails');
  1609 + ConfigurationService.getCofigValue()
  1610 + .then(
  1611 + function (configresult) {
  1612 + $rootScope.current_year = configresult.current_year;
  1613 + $rootScope.aiaIdleTime = configresult.idleTime;
  1614 + $rootScope.aiaIdleTimeOut = configresult.idelTimeOut;
  1615 + $rootScope.aiaPingInterval = configresult.pingInterval;
  1616 + $rootScope.aiaAnimationPath = configresult.serverPath;
  1617 + $rootScope.MaxOneFileSize = configresult.fileSize;
  1618 + $rootScope.aodDomainName = configresult.aodSiteUrl;
  1619 +
  1620 + var loggedInUser = JSON.parse($scope.currentUserDetails);
  1621 + //check already login by account number bcz no login id for site login
  1622 + //maintain user session by licenseid of site login
  1623 + if(loggedInUser!==null && loggedInUser.AccountNumber==sitedetail.accountNumber)
  1624 + {
  1625 + //using old session id
  1626 + sitedetail.SessionId = loggedInUser.SessionId;
  1627 + $rootScope.AuthenticateClientSiteUser(sitedetail);
  1628 + }
  1629 + else
  1630 + {
  1631 + //using new sessionid
  1632 + $rootScope.AuthenticateClientSiteUser(sitedetail);
  1633 + }
  1634 + });
  1635 + }
  1636 +
1614 1637 $rootScope.AuthenticateClientSiteUser = function (siteInfo) {
1615 1638 $rootScope.LoginDisableUI();
1616 1639 $rootScope.isCAlink=false;
... ... @@ -1815,6 +1838,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1815 1838 $rootScope.userModules = result.Modules;
1816 1839  
1817 1840 localStorage.setItem('loggedInUserDetails', JSON.stringify(result));
  1841 + //using for open resource and reloading app
  1842 + localStorage.setItem('siteUserParamDetail', JSON.stringify(siteInfo));
1818 1843  
1819 1844 if (isCommingSoonModel == true) {
1820 1845  
... ... @@ -1869,7 +1894,10 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
1869 1894 $rootScope.haveRoleAdmin = false;
1870 1895  
1871 1896 //2.
1872   - localStorage.setItem('loggedInUserDetails', JSON.stringify(result));
  1897 + localStorage.setItem('loggedInUserDetails', JSON.stringify(result));
  1898 +
  1899 + //using for open resource and reloading app
  1900 + localStorage.setItem('siteUserParamDetail', JSON.stringify(siteInfo));
1873 1901  
1874 1902 //5.
1875 1903 sessionStorage.setItem("loginSession", "true");
... ... @@ -2239,6 +2267,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2239 2267 $rootScope.LogoutUser = function () {
2240 2268 $rootScope.isSessionTimeout=true;
2241 2269 localStorage.removeItem('loggedInUserDetails');
  2270 + localStorage.removeItem('siteUserParamDetail');
  2271 +
2242 2272 localStorage.clear();
2243 2273 $rootScope.CheckUserSession('logout');
2244 2274  
... ... @@ -2247,7 +2277,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2247 2277 $rootScope.isSessionTimeout=true;
2248 2278 localStorage.removeItem('loggedInUserDetails');
2249 2279 sessionStorage.removeItem('isModuleOpenByOpenResource');
2250   - sessionStorage.removeItem('ExitsCBFileDetail');
  2280 + sessionStorage.removeItem('ExitsCBFileDetail');
  2281 + localStorage.removeItem('siteUserParamDetail');
2251 2282 localStorage.clear();
2252 2283 document.location = '/';
2253 2284 }
... ... @@ -2517,7 +2548,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2517 2548 {
2518 2549 for (var x = 0 ; x < $rootScope.AllPanelStoreObject.length; x++) {
2519 2550  
2520   - if ($rootScope.AllPanelStoreObject[x].winid == windowviewid) {
  2551 + if ($rootScope.AllPanelStoreObject[x].winid == windowviewid) {
2521 2552 var obj=$rootScope.AllPanelStoreObject[x]['panelObject'];
2522 2553 obj.maximize();
2523 2554 break;
... ... @@ -2528,13 +2559,31 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2528 2559 {
2529 2560 for (var x = 0 ; x < $rootScope.AllPanelStoreObject.length; x++) {
2530 2561  
2531   - if ($rootScope.AllPanelStoreObject[x].winid == windowviewid) {
  2562 + if ($rootScope.AllPanelStoreObject[x].winid == windowviewid) {
2532 2563 var obj=$rootScope.AllPanelStoreObject[x]['panelObject'];
2533 2564 obj.normalize();
2534 2565 break;
2535 2566 }
2536 2567 }
2537 2568 }
  2569 + $rootScope.openresourcePanelPosition=function()
  2570 + {
  2571 + if(document.getElementById("dvOpenResourcePanel") ) {
  2572 + var innerWidth =$(window).innerWidth()-10;
  2573 + var innerheight =$(window).innerHeight()-40;
  2574 +
  2575 + $("#OpenModuleInCB").css('height',innerheight);
  2576 + $("#dvOpenResourcePanel .jsPanel-hdr .jsPanel-title").css('width','300px');
  2577 +
  2578 + $("#dvOpenResourcePanel").css('height',innerheight);
  2579 + $("#dvOpenResourcePanel").css('width',innerWidth);
  2580 +
  2581 + $("#dvOpenResourcePanel .jsPanel-content").css('height',innerheight);
  2582 + $("#dvOpenResourcePanel .jsPanel-content").css('width',innerWidth);
  2583 +
  2584 + }
  2585 +
  2586 + }
2538 2587  
2539 2588 $(document).ready(function () {
2540 2589  
... ... @@ -2542,36 +2591,52 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2542 2591 if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
2543 2592 $('#arragePannel .dropdown-content').css("display","block");
2544 2593 }
2545   -
  2594 +
2546 2595 $(window).unbind('resize');
2547 2596 window.addEventListener("resize", orientationchange);
2548   - function orientationchange() {
2549   - if($location.url()!= "/curriculum-builder-detail") {
2550   - var moduleImagePanel = $("div[id*='ImagePanel']");
  2597 + function orientationchange() {
  2598 + clearTimeout(window.resizedFinished);
  2599 + window.resizedFinished = setTimeout(function(){
  2600 + console.log('Resized finished.');
  2601 + $rootScope.openresourcePanelPosition();
  2602 + if($location.url()!= "/curriculum-builder-detail") {
  2603 + var moduleImagePanel = $("div[id*='ImagePanel']");
2551 2604  
2552   - if (moduleImagePanel.length > 0) {
2553   -
2554   - for (var j = 0; j < moduleImagePanel.length; j++) {
2555   - var paneld=moduleImagePanel[j].id;
2556   - var len = (paneld).split("_").length;
2557   - var MultiWinId = (paneld).split("_")[len - 1];
  2605 + if (moduleImagePanel.length > 0) {
  2606 +
  2607 + for (var j = 0; j < moduleImagePanel.length; j++) {
  2608 + var paneld=moduleImagePanel[j].id;
  2609 + var len = (paneld).split("_").length;
  2610 + var MultiWinId = (paneld).split("_")[len - 1];
2558 2611  
2559   - //first set to normal and then to set max mode while browser resize or iPad orientation change
2560   - $rootScope.orientationchangeToNormal(MultiWinId);
2561   - $rootScope.orientationchangeToMax(MultiWinId);
2562   -
  2612 + //first set to normal and then to set max mode while browser resize or iPad orientation change
  2613 +
  2614 + $rootScope.minmaxPanelAutoEventTrue(MultiWinId,paneld);
  2615 + $rootScope.orientationchangeToNormal(MultiWinId);
  2616 + $rootScope.minmaxPanelAutoEventFalse(MultiWinId,paneld);
  2617 +
  2618 + $rootScope.orientationchangeToMax(MultiWinId);
  2619 +
  2620 + }
2563 2621 }
  2622 +
  2623 + }
  2624 + if(($location.url()== "/tile-view-list") ||($location.url()== "/clinical-illustrations")||($location.url()== "/clinical-animations")||($location.url()== "/ADAM-images")||($location.url()== "/ADAM-on-demand")) {
  2625 + $rootScope.ResetGridListLength();
2564 2626 }
2565   -
2566   - }
2567   - if(($location.url()== "/tile-view-list") ||($location.url()== "/clinical-illustrations")||($location.url()== "/clinical-animations")||($location.url()== "/ADAM-images")||($location.url()== "/ADAM-on-demand")) {
2568   - $rootScope.ResetGridListLength();
2569   - }
2570   -
2571   - };
2572   -
2573   -
2574 2627  
  2628 + if($location.url()== "/curriculum-builder")
  2629 + {
  2630 + $rootScope.ResetCBListHeight();
  2631 + }
  2632 + else if($location.url()== "/curriculum-builder-detail" )
  2633 + {
  2634 + $rootScope.ResetCBHeight();
  2635 + }
  2636 +
  2637 + }, 300);
  2638 + }
  2639 +
2575 2640 $(function () {
2576 2641 var colpick = $('.demo').each(function () {
2577 2642  
... ... @@ -2694,7 +2759,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2694 2759 else if ($location.url() == "/module-item-view") {
2695 2760 $("#annotationButton").removeClass("disableMenuoption");
2696 2761 $("#Menuoptionid").removeClass("disableMenuoption");
2697   - $("#optiontSetting").addClass("disableSubMenu");
  2762 + // $("#optiontSetting").addClass("disableSubMenu");
2698 2763 $("#labExPdfOption").addClass("disableSubMenu");
2699 2764 $("#annotationToolBarOptions").removeClass("disableSubMenu");
2700 2765 $("#fileMenuAnchor").removeClass("disableFileMenu");
... ... @@ -2853,16 +2918,11 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2853 2918 $rootScope.getModuleScrollPosition = function () {
2854 2919 $rootScope.refreshcheck = "check";
2855 2920 $('.mCSB_container ul li').click(function () {
2856   -
2857 2921 $rootScope.scrollTopPosition = $(this).position().top;
2858   -
2859 2922 });
2860 2923 setTimeout(function () {
2861 2924  
2862 2925 $(".sidebar").mCustomScrollbar("scrollTo", $rootScope.scrollTopPosition + "px");
2863   -
2864   -
2865   -
2866 2926 }, 300);
2867 2927 }
2868 2928  
... ... @@ -2883,8 +2943,11 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2883 2943 for (var j = 0; j < moduleImagePanel.length; j++) {
2884 2944 var paneld=moduleImagePanel[j].id;
2885 2945 var len = (paneld).split("_").length;
2886   - var MultiWinId = (paneld).split("_")[len - 1];
  2946 + var MultiWinId = (paneld).split("_")[len - 1];
  2947 +
  2948 + $rootScope.minmaxPanelAutoEventTrue(MultiWinId,paneld);
2887 2949 $rootScope.orientationchangeToNormal(MultiWinId);
  2950 + $rootScope.minmaxPanelAutoEventFalse(MultiWinId,paneld);
2888 2951  
2889 2952 if(j>0)
2890 2953 {
... ... @@ -2943,7 +3006,9 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2943 3006  
2944 3007 var len = (paneld).split("_").length;
2945 3008 var MultiWinId = (paneld).split("_")[len - 1];
  3009 + $rootScope.minmaxPanelAutoEventTrue(MultiWinId,paneld);
2946 3010 $rootScope.orientationchangeToNormal(MultiWinId);
  3011 + $rootScope.minmaxPanelAutoEventFalse(MultiWinId,paneld);
2947 3012  
2948 3013 //set max tiles 3 on screen width
2949 3014 if(countnumber>1 && countnumber<4)
... ... @@ -2975,8 +3040,57 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2975 3040 }
2976 3041 }
2977 3042  
  3043 + }
  3044 +
  3045 + $rootScope.minmaxPanelAutoEventTrue = function (MultiWinId,paneld)
  3046 + {
  3047 + if(paneld.match("daImagePanel"))
  3048 + {
  3049 + $rootScope.SetDAwindowData(MultiWinId, 'minmaxAutoEvent', true);
  3050 + }
  3051 + else if(paneld.match("AAImagePanel"))
  3052 + {
  3053 + $rootScope.SetAAwindowData(MultiWinId, 'minmaxAutoEvent', true);
  3054 + }
  3055 + else if(paneld.match("ciImagePanel"))
  3056 + {
  3057 + $rootScope.SetCIwindowData(MultiWinId, 'minmaxAutoEvent', true);
  3058 + }
  3059 + else if(paneld.match("aiImagePanel"))
  3060 + {
  3061 + $rootScope.SetAIwindowData(MultiWinId, 'minmaxAutoEvent', true);
  3062 + }
  3063 + else if(paneld.match("picImagePanel"))
  3064 + {
  3065 + $rootScope.SetPICwindowData(MultiWinId, 'minmaxAutoEvent', true);
  3066 + }
  3067 +
  3068 + }
  3069 + $rootScope.minmaxPanelAutoEventFalse = function (MultiWinId,paneld)
  3070 + {
  3071 + if(paneld.match("daImagePanel"))
  3072 + {
  3073 + $rootScope.SetDAwindowData(MultiWinId, 'minmaxAutoEvent', false);
  3074 + }
  3075 + else if(paneld.match("AAImagePanel"))
  3076 + {
  3077 + $rootScope.SetAAwindowData(MultiWinId, 'minmaxAutoEvent', false);
  3078 + }
  3079 + else if(paneld.match("ciImagePanel"))
  3080 + {
  3081 + $rootScope.SetCIwindowData(MultiWinId, 'minmaxAutoEvent', false);
  3082 + }
  3083 + else if(paneld.match("aiImagePanel"))
  3084 + {
  3085 + $rootScope.SetAIwindowData(MultiWinId, 'minmaxAutoEvent', false);
  3086 + }
  3087 + else if(paneld.match("picImagePanel"))
  3088 + {
  3089 + $rootScope.SetPICwindowData(MultiWinId, 'minmaxAutoEvent', false);
2978 3090 }
2979 3091  
  3092 + }
  3093 +
2980 3094 $scope.resetPanelPosition=function(MultiWinId,paneld,resetWidth,pTop,pLeft)
2981 3095 {
2982 3096 $rootScope.UnsaveCurriculum = true;
... ... @@ -2985,12 +3099,18 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2985 3099 {
2986 3100 $("#"+paneld).css('height','520');
2987 3101 $("#"+paneld+' .jsPanel-content').css('height','490');
2988   -
2989   - $('#canvasDivDA_' + MultiWinId).css('height', '440');
  3102 +
2990 3103 $rootScope.SetDAwindowData(MultiWinId,'width',resetWidth);
2991 3104 $rootScope.SetDAwindowData(MultiWinId,'height',520);
2992 3105 $rootScope.SetDAwindowData(MultiWinId,'y',pTop);
2993 3106 $rootScope.SetDAwindowData(MultiWinId,'x',pLeft);
  3107 +
  3108 + var canvasDiv='canvasDivDA_' + MultiWinId;
  3109 + var canvasDraw='canvasDA_' + MultiWinId;
  3110 + var canvasPaint='canvasPaintDA_' + MultiWinId;
  3111 + var bodyVid=$rootScope.GetDAwindowData(MultiWinId,'voId');
  3112 + var annotationData=$rootScope.GetDAwindowData(MultiWinId,'annotationData');
  3113 + $rootScope.setAADAPanelCordinate(MultiWinId,bodyVid,paneld,canvasDiv,canvasDraw,canvasPaint,440,resetWidth,annotationData);
2994 3114  
2995 3115 }
2996 3116 else if(paneld.match("AAImagePanel"))
... ... @@ -2998,44 +3118,83 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
2998 3118 $("#"+paneld).css('height','520');
2999 3119 $("#"+paneld+' .jsPanel-content').css('height','490');
3000 3120  
3001   - $('#canvasAADiv_' + MultiWinId).css('height', '440');
3002 3121 $rootScope.SetAAwindowData(MultiWinId,'width',resetWidth);
3003 3122 $rootScope.SetAAwindowData(MultiWinId,'height',520);
3004 3123 $rootScope.SetAAwindowData(MultiWinId,'y',pTop);
3005 3124 $rootScope.SetAAwindowData(MultiWinId,'x',pLeft);
  3125 + var canvasDiv='canvasAADiv_' + MultiWinId;
  3126 + var canvasDraw='canvasAA_' + MultiWinId;
  3127 + var canvasPaint='canvasPaintAA_' + MultiWinId;
  3128 + var annotationData=$rootScope.GetAAwindowData(MultiWinId,'annotationData');
  3129 +
  3130 + $rootScope.setAADAPanelCordinate(MultiWinId,0,paneld,canvasDiv,canvasDraw,canvasPaint,440,resetWidth,annotationData);
3006 3131 }
3007 3132 else if(paneld.match("ciImagePanel"))
3008 3133 {
3009 3134 $("#"+paneld).css('height','520');
3010 3135 $("#"+paneld+' .jsPanel-content').css('height','490');
3011   -
3012   - $('#canvasDivCI_' + MultiWinId).css('height', '490');
  3136 +
3013 3137 $rootScope.SetCIwindowData(MultiWinId,'width',resetWidth);
3014 3138 $rootScope.SetCIwindowData(MultiWinId,'height',520);
3015 3139 $rootScope.SetCIwindowData(MultiWinId,'y',pTop);
3016 3140 $rootScope.SetCIwindowData(MultiWinId,'x',pLeft);
  3141 +
  3142 + var canvasDiv='canvasDivCI_' + MultiWinId;
  3143 + var canvasDraw='canvasCI_' + MultiWinId;
  3144 + var canvasPaint='canvasPaintCI_' + MultiWinId;
  3145 + var imgName='ciimage_' + MultiWinId;
  3146 + var oldleft= $rootScope.GetCIwindowData(MultiWinId, 'imgLeft');
  3147 + var annotationData=$rootScope.GetCIwindowData(MultiWinId,'annotationData');
  3148 +
  3149 + $rootScope.setIMGPanelCordinate(MultiWinId,paneld,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,485,resetWidth,annotationData);
  3150 + var img = document.getElementById(imgName);
  3151 + $rootScope.SetCIwindowData(MultiWinId, 'imgLeft',img.offsetLeft);
  3152 +
3017 3153 }
3018 3154 else if(paneld.match("aiImagePanel"))
3019 3155 {
3020 3156 $("#"+paneld).css('height','520');
3021 3157 $("#"+paneld+' .jsPanel-content').css('height','490');
3022   -
3023   - $('#canvasDivAI_' + MultiWinId).css('height', '485');
  3158 +
3024 3159 $rootScope.SetAIwindowData(MultiWinId,'width',resetWidth);
3025 3160 $rootScope.SetAIwindowData(MultiWinId,'height',520);
3026 3161 $rootScope.SetAIwindowData(MultiWinId,'y',pTop);
3027 3162 $rootScope.SetAIwindowData(MultiWinId,'x',pLeft);
  3163 +
  3164 + var canvasDiv='canvasDivAI_' + MultiWinId;
  3165 + var canvasDraw='canvasAI_' + MultiWinId;
  3166 + var canvasPaint='canvasPaintAI_' + MultiWinId;
  3167 + var imgName='aimage_' + MultiWinId;
  3168 + var oldleft= $rootScope.GetAIwindowData(MultiWinId, 'imgLeft');
  3169 + var annotationData=$rootScope.GetAIwindowData(MultiWinId,'annotationData');
  3170 +
  3171 + $rootScope.setIMGPanelCordinate(MultiWinId,paneld,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,485,resetWidth,annotationData);
  3172 + var img = document.getElementById(imgName);
  3173 + $rootScope.SetAIwindowData(MultiWinId, 'imgLeft',img.offsetLeft);
  3174 +
3028 3175 }
3029 3176 else if(paneld.match("picImagePanel"))
3030 3177 {
3031 3178 $("#"+paneld).css('height','520');
3032 3179 $("#"+paneld+' .jsPanel-content').css('height','490');
3033 3180  
3034   - $('#canvasDivPIC_' + MultiWinId).css('height', '485');
  3181 + //$('#canvasDivPIC_' + MultiWinId).css('height', '485');
3035 3182 $rootScope.SetPICwindowData(MultiWinId,'width',resetWidth);
3036 3183 $rootScope.SetPICwindowData(MultiWinId,'height',520);
3037 3184 $rootScope.SetPICwindowData(MultiWinId,'y',pTop);
3038 3185 $rootScope.SetPICwindowData(MultiWinId,'x',pLeft);
  3186 +
  3187 + var canvasDiv='canvasDivPIC_' + MultiWinId;
  3188 + var canvasDraw='canvasPIC_' + MultiWinId;
  3189 + var canvasPaint='canvasPaintPIC_' + MultiWinId;
  3190 + var imgName='mypic_' + MultiWinId;
  3191 + var oldleft= $rootScope.GetPICwindowData(MultiWinId, 'imgLeft');
  3192 + var annotationData=$rootScope.GetPICwindowData(MultiWinId,'annotationData');
  3193 +
  3194 + $rootScope.setIMGPanelCordinate(MultiWinId,paneld,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,485,resetWidth,annotationData);
  3195 + var img = document.getElementById(imgName);
  3196 + $rootScope.SetPICwindowData(MultiWinId, 'imgLeft',img.offsetLeft);
  3197 +
3039 3198 }
3040 3199 else if(paneld.match("ThreeDImagePanel"))
3041 3200 {
... ... @@ -3052,9 +3211,11 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3052 3211 else if(paneld.match("caImagePanel"))
3053 3212 {
3054 3213 $("#"+paneld).css('height','520');
3055   - $("#"+paneld+' .jsPanel-content').css('height','490');
3056   - $('#playerinlineVideo_'+ MultiWinId ).css("height",370 );
3057   -
  3214 + $("#"+paneld+' .jsPanel-content').css('height','490');
  3215 +
  3216 + var summaryHeight = $('#summary_'+ MultiWinId).height()+10;
  3217 + $('#playerinlineVideo_'+ MultiWinId ).css("height",490-summaryHeight );
  3218 +
3058 3219 $rootScope.SetCAwindowData(MultiWinId,'width',resetWidth);
3059 3220 $rootScope.SetCAwindowData(MultiWinId,'height',520);
3060 3221 $rootScope.SetCAwindowData(MultiWinId,'y',pTop);
... ... @@ -3077,8 +3238,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3077 3238 {
3078 3239 $("#"+paneld).css('height','520');
3079 3240 $("#"+paneld+' .jsPanel-content').css('height','490');
3080   - $('#LabView_' + MultiWinId).css('height', 505);
3081   - $('#panelbodyDiv_' + MultiWinId).css("height",380);
  3241 + $('#panelbodyDiv_' + MultiWinId).css("height",390);
  3242 + $('#resultbodyDiv_' + MultiWinId).css("height",400);
3082 3243 $rootScope.SetLabwindowData(MultiWinId,'width',resetWidth);
3083 3244 $rootScope.SetLabwindowData(MultiWinId,'height',520);
3084 3245 $rootScope.SetLabwindowData(MultiWinId,'y',pTop);
... ... @@ -3086,7 +3247,203 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3086 3247  
3087 3248 }
3088 3249  
3089   - }
  3250 + }
  3251 +
  3252 + $rootScope.setAADAPanelCordinate = function (MultiWinId,viewid,pnlName,canvasDiv,CanvasDrawId,canvasPaintId,canvasDIvHeight,canvasDIvWidth,annotationData)
  3253 + {
  3254 + $('#' + canvasDiv).css('height', canvasDIvHeight);
  3255 + $rootScope.resetMenuOptionOnClick(pnlName);
  3256 +
  3257 + var canvas = document.getElementById(CanvasDrawId);
  3258 + var canvasPaint = document.getElementById(canvasPaintId);
  3259 + canvas.height = canvasDIvHeight-30;
  3260 + canvasPaint.height = canvasDIvHeight-30;
  3261 + canvas.width = canvasDIvWidth-20;
  3262 + canvasPaint.width = canvasDIvWidth-20;
  3263 +
  3264 + if(pnlName.match("AAImagePanel"))
  3265 + {
  3266 + //keep image position always as it is!
  3267 + var aaDetailCanvas = document.getElementById("aaDetailViewCanvas_"+MultiWinId);
  3268 + if(aaDetailCanvas.height>canvasDIvHeight)
  3269 + {
  3270 + canvas.height = aaDetailCanvas.height;
  3271 + canvasPaint.height = aaDetailCanvas.height;
  3272 + }
  3273 + if(aaDetailCanvas.width>canvasDIvWidth)
  3274 + {
  3275 + canvas.width = aaDetailCanvas.width;
  3276 + canvasPaint.width = aaDetailCanvas.width;
  3277 + }
  3278 + }
  3279 + else if(pnlName.match("daImagePanel"))
  3280 + {
  3281 + if(viewid=="1" ||viewid=="5")
  3282 + {
  3283 + var imageCanvas6MR = document.getElementById("imageCanvas6_MR_"+MultiWinId);//get width
  3284 + var imageCanvas5MR = document.getElementById("imageCanvas5_MR_"+MultiWinId);//get height
  3285 + var totalwidth=imageCanvas6MR.offsetLeft+imageCanvas6MR.width;
  3286 + var totalHeight=imageCanvas5MR.offsetTop+imageCanvas5MR.height;
  3287 + }
  3288 + else if(viewid=="4" ||viewid=="8")
  3289 + {
  3290 + var imageCanvas6 = document.getElementById("imageCanvas6_"+MultiWinId);//get width
  3291 + var imageCanvas5 = document.getElementById("imageCanvas5_"+MultiWinId);//get height
  3292 + var totalwidth=imageCanvas6.offsetLeft+imageCanvas6.width;
  3293 + var totalHeight=imageCanvas5.offsetTop+imageCanvas5.height;
  3294 + }
  3295 + else if(viewid=="2" ||viewid=="6"||viewid=="3" ||viewid=="7")
  3296 + {
  3297 + var imageCanvas2 = document.getElementById("imageCanvas2_"+MultiWinId);//get width
  3298 + var imageCanvas5 = document.getElementById("imageCanvas5_"+MultiWinId);//get height
  3299 + var totalwidth=imageCanvas2.offsetLeft+imageCanvas2.width+50;
  3300 + var totalHeight=imageCanvas5.offsetTop+imageCanvas5.height;
  3301 + }
  3302 + else if(viewid=="9" ||viewid=="11")
  3303 + {
  3304 + var imageCanvas2 = document.getElementById("imageCanvas2_"+MultiWinId);//get width
  3305 + var imageCanvas4 = document.getElementById("imageCanvas4_"+MultiWinId);//get height
  3306 + var totalwidth=imageCanvas2.offsetLeft+imageCanvas2.width+50;
  3307 + var totalHeight=imageCanvas4.offsetTop+imageCanvas4.height;
  3308 + }
  3309 + else if(viewid=="10" ||viewid=="12")
  3310 + {
  3311 + var imageCanvas6 = document.getElementById("imageCanvas6_"+MultiWinId);//get height and width
  3312 +
  3313 + var totalwidth=imageCanvas6.offsetLeft+imageCanvas6.width+50;
  3314 + var totalHeight=imageCanvas6.offsetTop+imageCanvas6.height;
  3315 + }
  3316 +
  3317 +
  3318 + if(totalHeight>canvasDIvHeight)
  3319 + {
  3320 + canvas.height = totalHeight;
  3321 + canvasPaint.height = totalHeight;
  3322 + }
  3323 + if(totalwidth>canvasDIvWidth)
  3324 + {
  3325 + canvas.width = totalwidth;
  3326 + canvasPaint.width = totalwidth;
  3327 + }
  3328 +
  3329 + }
  3330 +
  3331 + if(annotationData!="" && annotationData!=undefined)
  3332 + {
  3333 + if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
  3334 + {
  3335 + $('#' + CanvasDrawId).removeLayers();//remove all old shape
  3336 + $("#" + canvasPaintId).sketch().actions = [];//remove old paint data first
  3337 + //first draw shape and then store in object
  3338 + $rootScope.ResizeCBSavedAnnotation(pnlName,CanvasDrawId,canvasPaintId,annotationData);
  3339 + }
  3340 + }
  3341 +
  3342 + }
  3343 +
  3344 + $rootScope.setIMGPanelCordinate = function (MultiWinId,pnlName,canvasDiv,CanvasDrawId,canvasPaintId,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,annotationData)
  3345 + {
  3346 + $('#' + canvasDiv).css('height', canvasDIvHeight);
  3347 + $rootScope.resetMenuOptionOnClick(pnlName);
  3348 + var img = document.getElementById(imgName);
  3349 +
  3350 + var canvas = document.getElementById(CanvasDrawId);
  3351 + var canvasPaint = document.getElementById(canvasPaintId);
  3352 + canvas.height = canvasDIvHeight-30;
  3353 + canvasPaint.height = canvasDIvHeight-30;
  3354 + canvas.width = canvasDIvWidth-20;
  3355 + canvasPaint.width = canvasDIvWidth-20;
  3356 +
  3357 + if((canvasDIvWidth-img.width)>0)
  3358 + {
  3359 + $("#"+imgName).css("left", (canvasDIvWidth-img.width)/2 + "px");
  3360 + }
  3361 + else
  3362 + {
  3363 + //image in big size than screen
  3364 + $("#"+imgName).css("left", 0 + "px");
  3365 + }
  3366 +
  3367 + if(img.height>canvasDIvHeight)
  3368 + {
  3369 + canvas.height = img.height;
  3370 + canvasPaint.height = img.height;
  3371 + }
  3372 + if(img.width>canvasDIvWidth)
  3373 + {
  3374 + canvas.width = img.width;
  3375 + canvasPaint.width = img.width;
  3376 + }
  3377 + if(pnlName.match("ciImagePanel"))
  3378 + {
  3379 + canvas.height = canvas.height-40;
  3380 + canvasPaint.height = canvasPaint.height-40;
  3381 + }
  3382 +
  3383 + if(annotationData!="" && annotationData!=undefined)
  3384 + {
  3385 + if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
  3386 + {
  3387 + var modifiedData= {shapeStates:[],paintCanvasState:[]};
  3388 + var modifiedData=$rootScope.resetAnnotationData(imgName,oldleft,annotationData);
  3389 + if(modifiedData!="" && modifiedData!=undefined)
  3390 + {
  3391 + if(modifiedData.shapeStates.length>0||modifiedData.paintCanvasState.length>0)
  3392 + {
  3393 + $('#' + CanvasDrawId).removeLayers();//remove all old shape
  3394 + $("#" + canvasPaintId).sketch().actions = [];//remove old paint data first
  3395 +
  3396 + //first draw shape and then store in object
  3397 + $rootScope.ResizeCBSavedAnnotation(pnlName,CanvasDrawId,canvasPaintId,modifiedData);
  3398 + }
  3399 + }
  3400 +
  3401 + }
  3402 + }
  3403 + }
  3404 +
  3405 + $rootScope.resetAnnotationData = function (imgName,oldleft,annotationData)
  3406 + {
  3407 + // load annotation
  3408 + var img = document.getElementById(imgName);
  3409 + var newLeft=img.offsetLeft-oldleft;
  3410 + if(img.offsetLeft>=0)
  3411 + {
  3412 + var shapeStates=annotationData.shapeStates;
  3413 + var shapecount=shapeStates.length;
  3414 + for(var shapeindx=0;shapeindx<shapecount;shapeindx++)
  3415 + {
  3416 + // var layerName = shapeStates[shapeindx].layerName;
  3417 + var shapetype = shapeStates[shapeindx].shapeType;
  3418 + if(shapetype=="line"||shapetype=="Arrow"||shapetype=="Pin")
  3419 + {
  3420 + shapeStates[shapeindx].x1=shapeStates[shapeindx].x1+newLeft;
  3421 + shapeStates[shapeindx].x2=shapeStates[shapeindx].x2+newLeft;
  3422 + }
  3423 + else
  3424 + {
  3425 + shapeStates[shapeindx].x=shapeStates[shapeindx].x+newLeft;
  3426 + }
  3427 +
  3428 + }
  3429 +
  3430 + var paintCanvasState=annotationData.paintCanvasState;
  3431 + var paintCount=paintCanvasState.length;
  3432 + for(var paintindx=0;paintindx<paintCount;paintindx++)
  3433 + {
  3434 + var paintEvent=paintCanvasState[paintindx].events;
  3435 + for(var indx=0;indx<paintEvent.length;indx++)
  3436 + {
  3437 + paintEvent[indx].x= paintEvent[indx].x+newLeft
  3438 + }
  3439 +
  3440 + }
  3441 +
  3442 + }
  3443 +
  3444 + return annotationData;
  3445 + }
  3446 +
3090 3447  
3091 3448 $rootScope.disableTopMenuOption=function()
3092 3449 {
... ... @@ -3133,6 +3490,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3133 3490 $("#annotationButton").removeClass("disableMenuoption");
3134 3491 $("#Menuoptionid").removeClass("disableMenuoption");
3135 3492 $("#annotationToolBarOptions").removeClass("disableSubMenu");
  3493 + $("#optiontSetting").removeClass("disableSubMenu");
3136 3494  
3137 3495 $("#listManagerBody *").prop('disabled',false);
3138 3496  
... ... @@ -3332,23 +3690,22 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3332 3690 {
3333 3691 // find all panel in HomeContainerDiv and outside(while minimize);
3334 3692 var modulePanel = $(document).find("div[id*='ImagePanel']");
3335   - if (modulePanel != undefined && modulePanel.length>0) {
3336   - //if only one module left
3337   - if(slug=='clinical-animations' && $rootScope.userData.mType!=undefined)
3338   - {
3339   - if($rootScope.userData.mType.toLowerCase()=='ca')
3340   - {
3341   - $rootScope.siteUrlInfo.mType=null;
3342   - $rootScope.siteUrlInfo.id=null;
3343   - $rootScope.LogoutUser();
3344   - }
3345   -
3346   - }
3347   - else
3348   - {
3349   - if(modulePanel.length==1) $location.url('/' + slug);
3350   - }
  3693 + if (modulePanel != undefined && modulePanel.length>0) {
3351 3694  
  3695 + //if only one module left
  3696 + if(modulePanel.length==1) $location.url('/' + slug);
  3697 +
  3698 + // if(slug=='clinical-animations' && $rootScope.userData.mType!=undefined)
  3699 + // {
  3700 + // if($rootScope.userData.mType.toLowerCase()=='ca')
  3701 + // {
  3702 + // $rootScope.siteUrlInfo.mType=null;
  3703 + // $rootScope.siteUrlInfo.id=null;
  3704 + // $rootScope.LogoutUser();
  3705 + // }
  3706 +
  3707 + // }
  3708 +
3352 3709 }
3353 3710 }
3354 3711  
... ... @@ -3605,6 +3962,30 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3605 3962 // keep on top paint Canvas zindex on top
3606 3963 $rootScope.SetPaintZindexforCI = function (MultiWinId)
3607 3964 {
  3965 + //scroll issue in iPad
  3966 + var $ua = navigator.userAgent;
  3967 + if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
  3968 +
  3969 + var drawCanvasZindex = parseInt($("#canvasCI_" + MultiWinId).css("z-index"));
  3970 + var paintCanvasZindex = parseInt($("#canvasPaintCI_" + MultiWinId).css("z-index"));
  3971 +
  3972 + if (drawCanvasZindex > paintCanvasZindex) {
  3973 + paintCanvasZindex = drawCanvasZindex + 1;
  3974 + }
  3975 + else
  3976 + {
  3977 + paintCanvasZindex = paintCanvasZindex + 1;
  3978 + }
  3979 +
  3980 + $("#canvasPaintCI_" + MultiWinId).css("z-index", paintCanvasZindex);
  3981 + $('#summary_' + MultiWinId).css("z-index", paintCanvasZindex+1);
  3982 +
  3983 + }
  3984 +
  3985 + }
  3986 +
  3987 + $rootScope.SetPaintZindexforCISummary = function (MultiWinId)
  3988 + {
3608 3989 var drawCanvasZindex = parseInt($("#canvasCI_" + MultiWinId).css("z-index"));
3609 3990 var paintCanvasZindex = parseInt($("#canvasPaintCI_" + MultiWinId).css("z-index"));
3610 3991  
... ... @@ -3615,13 +3996,6 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3615 3996 {
3616 3997 paintCanvasZindex = paintCanvasZindex + 1;
3617 3998 }
3618   -
3619   - //scroll issue in iPad
3620   - var $ua = navigator.userAgent;
3621   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
3622   - $("#canvasPaintCI_" + MultiWinId).css("z-index", paintCanvasZindex);
3623   - }
3624   -
3625 3999 $('#summary_' + MultiWinId).css("z-index", paintCanvasZindex+1);
3626 4000  
3627 4001 }
... ... @@ -3631,6 +4005,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3631 4005 //clear sketch js event for paint and erase
3632 4006 $.sketch = { tools: {}};
3633 4007 $rootScope.RemoveSelectedShape();
  4008 + $rootScope.isAnnotationWindowOpen = false;
3634 4009 $rootScope.isAnnotatiomToolBarPopupActive = false;
3635 4010 $rootScope.isAnnotatiomToolBarPopupClosed = true;
3636 4011 $("#OnIdentify").removeClass("annotationtoolbartab");
... ... @@ -3718,6 +4093,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3718 4093 if(paneld.match("ciImagePanel"))
3719 4094 {
3720 4095 $rootScope.SetPaintZindexforCI(MultiWinId);
  4096 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
3721 4097 }
3722 4098  
3723 4099 if(paneld.match("aiImagePanel"))
... ... @@ -3894,12 +4270,12 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3894 4270 for (var index = 0 ; index < modulePanel.length; index++) {
3895 4271 var paneld = modulePanel[index].id;
3896 4272 if(paneld.match("daImagePanel")||paneld.match("AAImagePanel")||paneld.match("ciImagePanel")||paneld.match("aiImagePanel")||paneld.match("picImagePanel"))
3897   - {
  4273 + {
  4274 + var len = (paneld).split("_").length;
  4275 + var MultiWinId = (paneld).split("_")[len - 1];
3898 4276 $rootScope.switchCanvas(paneld);
3899 4277 if(paneld.match("AAImagePanel"))
3900   - {
3901   - var len = (paneld).split("_").length;
3902   - var MultiWinId = (paneld).split("_")[len - 1];
  4278 + {
3903 4279 var canvasId="#canvasAA_" + MultiWinId;
3904 4280 $rootScope.switchToAnnotationCanvas(paneld,MultiWinId);
3905 4281 var aaPinDataArray=$rootScope.GetAAwindowData(MultiWinId,'aaPinData');
... ... @@ -3928,7 +4304,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3928 4304 }
3929 4305 if(paneld.match("ciImagePanel"))
3930 4306 {
3931   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4307 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
3932 4308 }
3933 4309  
3934 4310 // remove event listener
... ... @@ -3944,6 +4320,40 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3944 4320  
3945 4321 // Dissectible Anatomy > Settings should be disable if Annotation is Open.
3946 4322 $rootScope.ShowSettingWindow = function () {
  4323 +
  4324 + $('#tabdissectible').removeAttr('disabled');
  4325 + var modulePanel = $("#HomeContainerDiv").find("div[id*='ImagePanel']");
  4326 + if (modulePanel != undefined && modulePanel.length>0) {
  4327 + var isdapanel=false;
  4328 + var isaapanel=false;
  4329 + for (var index = 0 ; index < modulePanel.length; index++) {
  4330 + var paneld = modulePanel[index].id;
  4331 + if(paneld.match("daImagePanel"))
  4332 + {
  4333 + isdapanel=true;
  4334 + }
  4335 + else if(paneld.match("AAImagePanel"))
  4336 + {
  4337 + isaapanel=true;
  4338 + }
  4339 + }
  4340 +
  4341 + if(isdapanel && isaapanel)
  4342 + {
  4343 + $rootScope.SettingsTab = 2;
  4344 + }
  4345 + else if(isdapanel)
  4346 + {
  4347 + $rootScope.SettingsTab = 3;
  4348 + }
  4349 + else if(isaapanel)
  4350 + {
  4351 + $('#tabdissectible').attr('disabled', 'disabled');
  4352 + $rootScope.SettingsTab = 2;
  4353 + }
  4354 +
  4355 + }
  4356 +
3947 4357 if ($("#annotationTollbar").css("display") == "block") {
3948 4358 $('#modal-settings').css("display", "none");
3949 4359 $("#modelsettingsbackground").css("display", "none");
... ... @@ -3954,7 +4364,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
3954 4364 $('#modal-settings').css("display", "block");
3955 4365 $("#modelsettingsbackground").css("display", "block");
3956 4366 }
3957   -
  4367 +
3958 4368 $rootScope.lexiconLanguageArrayLength = $rootScope.lexiconLanguageArray.length;
3959 4369 $rootScope.lexiconPrimaryLanguage = $("#primarylaxican").val();
3960 4370 $rootScope.primaryLangID = $('#primarylaxican').attr("name");
... ... @@ -4003,7 +4413,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4003 4413 }
4004 4414 if(paneld.match("ciImagePanel"))
4005 4415 {
4006   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4416 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4007 4417 }
4008 4418  
4009 4419 $scope.onDrawingCanvasOnModule(canvasElement);
... ... @@ -4076,7 +4486,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4076 4486 }
4077 4487 if(paneld.match("ciImagePanel"))
4078 4488 {
4079   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4489 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4080 4490  
4081 4491 }
4082 4492  
... ... @@ -4109,16 +4519,16 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4109 4519 var paneld = modulePanel[index].id;
4110 4520 if(paneld.match("daImagePanel")||paneld.match("AAImagePanel")||paneld.match("ciImagePanel")||paneld.match("aiImagePanel")||paneld.match("picImagePanel"))
4111 4521 {
  4522 + var len = (paneld).split("_").length;
  4523 + var MultiWinId = (paneld).split("_")[len - 1];
4112 4524 $rootScope.switchCanvas(paneld);
4113 4525 if(paneld.match("AAImagePanel"))
4114   - {
4115   - var len = (paneld).split("_").length;
4116   - var MultiWinId = (paneld).split("_")[len - 1];
  4526 + {
4117 4527 $rootScope.switchToAnnotationCanvas(paneld,MultiWinId);
4118 4528 }
4119 4529 if(paneld.match("ciImagePanel"))
4120 4530 {
4121   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4531 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4122 4532 }
4123 4533  
4124 4534 // remove event listener
... ... @@ -4171,7 +4581,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4171 4581  
4172 4582 if(paneld.match("ciImagePanel"))
4173 4583 {
4174   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4584 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4175 4585 }
4176 4586  
4177 4587 $scope.onDrawingCanvasOnModule(canvasElement);
... ... @@ -4257,7 +4667,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4257 4667  
4258 4668 if(paneld.match("ciImagePanel"))
4259 4669 {
4260   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4670 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4261 4671 }
4262 4672 // remove event listener
4263 4673 $scope.removeOnDrawingCanvas(canvasElement);
... ... @@ -4294,7 +4704,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4294 4704 $rootScope.switchCanvasToPaintCanvas(paneld);
4295 4705 if(paneld.match("ciImagePanel"))
4296 4706 {
4297   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4707 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4298 4708 }
4299 4709  
4300 4710 $('#' + canvasPaintId).sketch();
... ... @@ -4461,7 +4871,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4461 4871 }
4462 4872 if(paneld.match("ciImagePanel"))
4463 4873 {
4464   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4874 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4465 4875 }
4466 4876  
4467 4877 $scope.onDrawingCanvasOnModule(canvasElement);
... ... @@ -4511,7 +4921,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4511 4921 }
4512 4922 if(paneld.match("ciImagePanel"))
4513 4923 {
4514   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4924 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4515 4925 }
4516 4926  
4517 4927 $scope.onDrawingCanvasOnModule(canvasElement);
... ... @@ -4560,7 +4970,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4560 4970 }
4561 4971 if(paneld.match("ciImagePanel"))
4562 4972 {
4563   - $rootScope.SetPaintZindexforCI(MultiWinId);
  4973 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4564 4974 }
4565 4975  
4566 4976 $scope.onDrawingCanvasOnModule(canvasElement);
... ... @@ -4608,7 +5018,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4608 5018 }
4609 5019 if(paneld.match("ciImagePanel"))
4610 5020 {
4611   - $rootScope.SetPaintZindexforCI(MultiWinId);
  5021 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4612 5022 }
4613 5023  
4614 5024 $scope.onDrawingCanvasOnModule(canvasElement);
... ... @@ -4709,7 +5119,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4709 5119 }
4710 5120 if(paneld.match("ciImagePanel"))
4711 5121 {
4712   - $rootScope.SetPaintZindexforCI(MultiWinId);
  5122 + $rootScope.SetPaintZindexforCISummary(MultiWinId);
4713 5123 }
4714 5124 }
4715 5125 }
... ... @@ -4911,6 +5321,61 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4911 5321 //Edit Shape Style popup should open at it's default position
4912 5322 $("#modeleditstyle").css({ "left": "40%", "right": "0", "top": "70px" });
4913 5323 }
  5324 +
  5325 + $rootScope.ResizeCBSavedAnnotation = function (paneld,canvasId,canvasPaintId,annotationData) {
  5326 + var len = (paneld).split("_").length;
  5327 + var MultiWinId = (paneld).split("_")[len - 1];
  5328 +
  5329 + if(paneld.match("aiImagePanel"))
  5330 + {
  5331 + $rootScope.aiAnnotationToolEvent(MultiWinId);
  5332 + }
  5333 + else if(paneld.match("ciImagePanel"))
  5334 + {
  5335 + $rootScope.ciAnnotationToolEvent(MultiWinId);
  5336 + }
  5337 + else if(paneld.match("picImagePanel"))
  5338 + {
  5339 + $rootScope.picAnnotationToolEvent(MultiWinId);
  5340 + }
  5341 +
  5342 + var shapeStates=annotationData.shapeStates;
  5343 + var shapecount=shapeStates.length;
  5344 + var paintCanvasState=annotationData.paintCanvasState;
  5345 +
  5346 + $timeout(function () {
  5347 +
  5348 + for(var shapeindx=0;shapeindx<shapecount;shapeindx++)
  5349 + {
  5350 + var shapeData=shapeStates[shapeindx];
  5351 + var shapeName = shapeStates[shapeindx].layerName;
  5352 + $rootScope.AutoDrawShapeByData(canvasId,shapeData);
  5353 +
  5354 + annotationData.shapeStates = new jinqJs()
  5355 + .from(annotationData.shapeStates)
  5356 + .delete().at("layerName == " + shapeName).select();
  5357 +
  5358 + }
  5359 +
  5360 + if(paintCanvasState!=undefined && paintCanvasState.length>0)
  5361 + {
  5362 + //for paint brush
  5363 + $rootScope.switchCanvasToPaintCanvas(paneld);
  5364 + var drawingPoints=paintCanvasState
  5365 + //auto save last cb paint
  5366 +
  5367 + $scope.PaintEraseEvent();
  5368 + $scope.savePaintAnnotation(canvasPaintId,drawingPoints);
  5369 + $("#" + canvasPaintId).sketch({drawAction:drawingPoints});
  5370 + //clear sketch js event for paint and erase
  5371 + $.sketch = { tools: {}};
  5372 + }
  5373 +
  5374 + $rootScope.CloseAnnotationTool();
  5375 +
  5376 + }, 50);
  5377 +
  5378 + }
4914 5379  
4915 5380 $rootScope.LoadCBSavedAnnotation = function (canvasId,canvasPaintId,annotationData) {
4916 5381 var modulePanel = $("#HomeContainerDiv").find("div[id*='ImagePanel']");
... ... @@ -4945,43 +5410,45 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
4945 5410  
4946 5411 }
4947 5412 }
4948   - }
4949   - $timeout(function () {
4950   - var shapeStates=annotationData.shapeStates;
4951   - var paintCanvasState=annotationData.paintCanvasState;
  5413 + var shapeStates=annotationData.shapeStates;
  5414 + var shapecount=shapeStates.length;
  5415 + var paintCanvasState=annotationData.paintCanvasState;
  5416 +
  5417 + $timeout(function () {
  5418 +
  5419 + for(var shapeindx=0;shapeindx<shapecount;shapeindx++)
  5420 + {
  5421 + var shapeData=shapeStates[shapeindx];
  5422 + $rootScope.AutoDrawShapeByData(canvasId,shapeData);
  5423 + }
  5424 +
  5425 + if(paintCanvasState!=undefined && paintCanvasState.length>0)
  5426 + {
  5427 + if (modulePanel != undefined && modulePanel.length>0) {
  5428 + for (var index = 0 ; index < modulePanel.length; index++) {
  5429 + var paneld = modulePanel[index].id;
  5430 + if(paneld.match("daImagePanel")||paneld.match("AAImagePanel")||paneld.match("ciImagePanel")||paneld.match("aiImagePanel")||paneld.match("picImagePanel"))
  5431 + {
  5432 + //for paint brush
  5433 + $rootScope.switchCanvasToPaintCanvas(paneld);
4952 5434  
4953   - for(var shapeindx=0;shapeindx<shapeStates.length;shapeindx++)
4954   - {
4955   - var shapeData=shapeStates[shapeindx];
4956   - $rootScope.AutoDrawShapeByData(canvasId,shapeData);
4957   - }
4958   -
4959   - if(paintCanvasState!=undefined && paintCanvasState.length>0)
4960   - {
4961   - if (modulePanel != undefined && modulePanel.length>0) {
4962   - for (var index = 0 ; index < modulePanel.length; index++) {
4963   - var paneld = modulePanel[index].id;
4964   - if(paneld.match("daImagePanel")||paneld.match("AAImagePanel")||paneld.match("ciImagePanel")||paneld.match("aiImagePanel")||paneld.match("picImagePanel"))
4965   - {
4966   - //for paint brush
4967   - $rootScope.switchCanvasToPaintCanvas(paneld);
4968   -
  5435 + }
4969 5436 }
4970 5437 }
  5438 + var drawingPoints=paintCanvasState ;
  5439 +
  5440 + //auto save last cb paint
  5441 + $scope.PaintEraseEvent();
  5442 + $scope.savePaintAnnotation(canvasPaintId,drawingPoints);
  5443 + $("#" + canvasPaintId).sketch({drawAction:drawingPoints});
  5444 + //clear sketch js event for paint and erase
  5445 + $.sketch = { tools: {}};
4971 5446 }
4972   - var drawingPoints=paintCanvasState
4973   - //auto save last cb paint
4974   - $scope.PaintEraseEvent();
4975   - $scope.savePaintAnnotation(canvasPaintId,drawingPoints);
4976   - $("#" + canvasPaintId).sketch({drawAction:drawingPoints});
4977   - //clear sketch js event for paint and erase
4978   - $.sketch = { tools: {}};
4979   - }
4980   -
4981   - $rootScope.CloseAnnotationTool();
4982   -
4983   - }, 500);
4984   -
  5447 +
  5448 + $rootScope.CloseAnnotationTool();
  5449 +
  5450 + }, 500);
  5451 + }
4985 5452 }
4986 5453 $scope.savePaintAnnotation=function(canvasPaintId,drawingPoints)
4987 5454 {
... ... @@ -5281,7 +5748,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
5281 5748 name: 'Line_' + LineNumber,
5282 5749 layer: true,
5283 5750 type: 'line',
5284   - draggable: true,
  5751 + draggable: false,
5285 5752 strokeStyle: shapestyleborderColor,
5286 5753 strokeWidth: shapestyleborderWidth,
5287 5754 rounded: true,
... ... @@ -5473,7 +5940,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
5473 5940 name: 'Rect_' + RectNumber,
5474 5941 fillStyle: shapestyleFillColor,
5475 5942 type: 'rectangle',
5476   - draggable: true,
  5943 + draggable: false,
5477 5944 strokeStyle: shapestyleborderColor,
5478 5945 opacity: shapestyleOpacity,
5479 5946 strokeWidth: shapestyleborderWidth,
... ... @@ -5688,7 +6155,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
5688 6155 name: 'Circle_' + CircleNumber,
5689 6156 type: 'ellipse',
5690 6157 opacity: shapestyleOpacity,
5691   - draggable: true,
  6158 + draggable: false,
5692 6159 strokeStyle: shapestyleborderColor,
5693 6160 strokeWidth: shapestyleborderWidth,
5694 6161 fillStyle: shapestyleFillColor,
... ... @@ -5895,7 +6362,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
5895 6362 layer: true,
5896 6363 type:'Arrow',
5897 6364 name: 'Arrow_' + ArrowNumber,
5898   - draggable: true,
  6365 + draggable: false,
5899 6366 strokeStyle: shapestyleborderColor,
5900 6367 strokeWidth: shapestyleborderWidth,
5901 6368 rounded: true,
... ... @@ -6091,8 +6558,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
6091 6558 });
6092 6559 $("#"+canvasId).drawLine({
6093 6560 panelCanvasId:canvasId,
6094   - draggable: true,
6095 6561 layer: true,
  6562 + draggable: false,
6096 6563 type:'Pin',
6097 6564 name: "Pin_" + PinNumber,
6098 6565 groups: ["Pin_" + PinNumber],
... ... @@ -6111,6 +6578,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
6111 6578 mouseup: 'pointer'
6112 6579 },
6113 6580 add: function (layer) {
  6581 + layer.draggable = false;
6114 6582 var drawingPoints={
6115 6583 "layerName": layer.name,//for internal use
6116 6584 "shapeType":layer.type,
... ... @@ -6290,7 +6758,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
6290 6758 $("#" + layer.panelCanvasId).drawArc({
6291 6759 panelCanvasId:layer.panelCanvasId,
6292 6760 layer: true,
6293   - draggable: true,
  6761 + draggable: false,
6294 6762 name: pinArcName,
6295 6763 groups: [layer.groups],
6296 6764 dragGroups: [layer.dragGroups],
... ... @@ -6413,10 +6881,10 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
6413 6881 }
6414 6882 },
6415 6883 }).drawArc({
6416   - draggable: true,
6417 6884 panelCanvasId:canvasId,
6418 6885 name: "ArcPin_" + PinNumber,
6419 6886 layer: true,
  6887 + draggable: false,
6420 6888 groups: ["Pin_" + PinNumber],
6421 6889 dragGroups: ["Pin_" + PinNumber],
6422 6890 strokeStyle: 'grey',
... ... @@ -6829,7 +7297,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
6829 7297 groups: [rectDimension[0].groupName],
6830 7298 dragGroups: [rectDimension[0].groupName],
6831 7299 layer: true,
6832   - draggable: true,
  7300 + draggable: false,
6833 7301 type:'textArea',
6834 7302 opacity: rectDimension[0].shapestyle.opacity,
6835 7303 strokeStyle: rectDimension[0].shapestyle.color,
... ... @@ -6852,7 +7320,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
6852 7320 // Revert cursor on mouseup
6853 7321 mouseup: 'pointer'
6854 7322 },
6855   - add: function (layer) {
  7323 + add: function (layer) {
  7324 + layer.draggable = false;
6856 7325 var drawingPoints={
6857 7326 "layerName": layer.name,//for internal use
6858 7327 "shapeType":layer.type,
... ... @@ -7337,7 +7806,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
7337 7806 }).drawText({
7338 7807 panelCanvasId:canvasId,
7339 7808 layer: true,
7340   - draggable: true,
  7809 + draggable: false,
7341 7810 name: textDimension[0].name,
7342 7811 groups: [rectDimension[0].groupName],
7343 7812 dragGroups: [rectDimension[0].groupName],
... ... @@ -7361,7 +7830,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
7361 7830 mouseup: 'pointer'
7362 7831 },
7363 7832 add: function (layer) {
7364   - layer.draggable = true;
  7833 + layer.draggable = false;
7365 7834 //remove temptext
7366 7835 $("#" + canvasId).removeLayer('temptext').drawLayers();
7367 7836 },
... ... @@ -8395,7 +8864,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8395 8864 }
8396 8865 else if(selectedPanel.match("AAImagePanel"))
8397 8866 {
8398   - onSearchItemSelection($('#termList option[selected="selected"]').attr("id"));
  8867 + onSearchItemSelection($('#termList option[selected="selected"]').attr("id"),true);
8399 8868 }
8400 8869  
8401 8870 }
... ... @@ -8456,7 +8925,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8456 8925 $("#langaugeDivLm").css("display", "none");
8457 8926 $rootScope.aalistManagerEvent(windowviewid);
8458 8927  
8459   - $("#termList").attr("onclick", "if (typeof(this.selectedIndex) != 'undefined') onSearchItemSelection(this.options[this.selectedIndex].id)");
  8928 + $("#termList").attr("onclick", "if (typeof(this.selectedIndex) != 'undefined') onSearchItemSelection(this.options[this.selectedIndex].id,true)");
8460 8929 }
8461 8930 var modulePanel = $("#HomeContainerDiv").find("div[id*='daImagePanel']");
8462 8931 if (modulePanel != undefined && modulePanel.length>0) {
... ... @@ -8525,6 +8994,11 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8525 8994 {
8526 8995 var windowviewid=selectedPanel.split('_')[1];
8527 8996 $rootScope.changeLanguageLmEvent(windowviewid);
  8997 + }
  8998 + else if(selectedPanel.match("AAImagePanel"))
  8999 + {
  9000 + var windowviewid=selectedPanel.split('_')[1];
  9001 + $rootScope.changeLanguageLmEventAA(windowviewid);
8528 9002 }
8529 9003 }
8530 9004  
... ... @@ -8535,23 +9009,15 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8535 9009 {
8536 9010 var windowviewid=selectedPanel.split('_')[1];
8537 9011 $rootScope.LoadMoreLmEvent(windowviewid);
8538   - }
8539   - }
8540   -
8541   -
8542   - function fillListManagerTerms() {
8543   -
8544   - var len = $rootScope.openModules.length;
8545   - var openViewLen = $rootScope.openViews.length;
8546   -
8547   - var currentOpenModuleId = $rootScope.openModules[len - 1].ModuleId;
8548   - var currentOpenViewId = $rootScope.openViews[openViewLen - 1].BodyViewId;
8549   - if (currentOpenModuleId == 1) {
8550   -
8551 9012 }
8552   -
  9013 + else if(selectedPanel.match("AAImagePanel"))
  9014 + {
  9015 + var windowviewid=selectedPanel.split('_')[1];
  9016 + $rootScope.LoadMoreLmEventAA(windowviewid);
  9017 + }
8553 9018 }
8554 9019  
  9020 +
8555 9021 //setrtings
8556 9022 $rootScope.SetSettingActiveTab = function (tabToSet) {
8557 9023 $rootScope.SettingsTab = tabToSet;
... ... @@ -8604,6 +9070,9 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8604 9070 //4.
8605 9071 $rootScope.setEthncitySettings($rootScope.globalSetting.ethnicity);
8606 9072  
  9073 + //disable appreance tab still no use of it
  9074 + $('#tabappearance').attr('disabled', 'disabled');
  9075 +
8607 9076  
8608 9077 };
8609 9078  
... ... @@ -8880,7 +9349,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8880 9349  
8881 9350 isReloadingViewRequired = true;
8882 9351 }
8883   - else if (setting.modesty != null && setting.modesty != $rootScope.globalSetting.modesty) {
  9352 + else
  9353 + {
8884 9354 $rootScope.globalSetting.modesty = setting.modesty;
8885 9355 localStorage.setItem("globalModesty", $rootScope.globalSetting.modesty);
8886 9356  
... ... @@ -8895,6 +9365,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8895 9365 {
8896 9366 var len = (paneld).split("_").length;
8897 9367 var MultiWinId = (paneld).split("_")[len - 1];
  9368 + var ModestyValue= $rootScope.GetDAwindowData(MultiWinId, 'ModestyValue');
  9369 + if (setting.modesty != null && setting.modesty != ModestyValue) {
8898 9370  
8899 9371 if ($('.modestyImg_' + MultiWinId) != null) {
8900 9372 if (($rootScope.globalSetting.modesty == 'Y')) {
... ... @@ -8937,8 +9409,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8937 9409 else {
8938 9410 $('.transModestyImg_' + MultiWinId).css('visibility', 'hidden');
8939 9411 }
8940   - $rootScope.changeNavigatorModesty(MultiWinId);
8941   -
  9412 + $rootScope.changeNavigatorModesty(MultiWinId);
  9413 + }
8942 9414 }
8943 9415 }
8944 9416 }
... ... @@ -8971,6 +9443,12 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
8971 9443 var currentOpenViewId=$rootScope.GetDAwindowData(MultiWinId,"voId");
8972 9444 $rootScope.reloadDABodyViewEvent(currentOpenViewId,isLexiconChange,MultiWinId);
8973 9445 }
  9446 + if(paneld.match("AAImagePanel"))
  9447 + {
  9448 + var len = (paneld).split("_").length;
  9449 + var MultiWinId = (paneld).split("_")[len - 1];
  9450 + $rootScope.reloadAABodyViewEvent(isLexiconChange,MultiWinId);
  9451 + }
8974 9452 }
8975 9453 }
8976 9454 };
... ... @@ -9562,7 +10040,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
9562 10040 $("#HomeContainerDiv").css({ "display": "block", "pointer-events": "auto", "opacity": "1" });
9563 10041  
9564 10042 $('#dvOpenResourcePanel').remove();
9565   - sessionStorage.removeItem('isModuleOpenByOpenResource');
  10043 + sessionStorage.removeItem('isModuleOpenByOpenResource');
9566 10044 $("#jsPanel-min-container").removeAttr("style");
9567 10045 if (document.location.pathname == "/curriculum-builder-detail") {
9568 10046 if($('div.CBLeft-Sidebar').hasClass('active'))
... ... @@ -9999,7 +10477,7 @@ function closeIFrame() {
9999 10477 }
10000 10478  
10001 10479 function AIAModuleOpenResourceInfo(windowData) {
10002   - sessionStorage.removeItem('isModuleOpenByOpenResource');
  10480 + sessionStorage.removeItem('isModuleOpenByOpenResource');
10003 10481 window.parent.closeIFrame();
10004 10482 $("#jsPanel-min-container").removeAttr("style");
10005 10483  
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/LabExercController.js
... ... @@ -103,14 +103,15 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
103 103 }
104 104 }
105 105  
106   - $scope.DisableUI = function () {
107   -
108   - var leImagePanelConetent = document.getElementsByClassName("jsPanel-content");
109   - for (var i = 0; i < leImagePanelConetent.length; i++) {
110   - leImagePanelConetent[i].style.pointerEvents = "none";
111   - leImagePanelConetent[i].style.opacity = "0.7";
  106 + $scope.DisableLabUI = function (windowviewid) {
112 107  
  108 + var modulePanel = $("#labImagePanel_"+windowviewid).find(" .jsPanel-content");
  109 + if(modulePanel.length>0)
  110 + {
  111 + modulePanel[0].style.pointerEvents="none";
  112 + modulePanel[0].style.opacity="0.7";
113 113 }
  114 +
114 115 $rootScope.isLoading = true;
115 116 $('#spinner').css('visibility', 'visible');
116 117  
... ... @@ -119,12 +120,12 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
119 120 $('#HomeContainerDiv').css('opacity', '0.7');
120 121 }
121 122  
122   - $scope.EnableUI = function () {
123   -
124   - var leImagePanelConetent = document.getElementsByClassName("jsPanel-content");
125   - for (var i = 0; i < leImagePanelConetent.length; i++) {
126   - leImagePanelConetent[i].style.pointerEvents = "auto";
127   - leImagePanelConetent[i].style.opacity = "1";
  123 + $scope.EnableLabUI = function (windowviewid) {
  124 + var modulePanel = $("#labImagePanel_"+windowviewid).find(" .jsPanel-content");
  125 + if(modulePanel.length>0)
  126 + {
  127 + modulePanel[0].style.pointerEvents="auto";
  128 + modulePanel[0].style.opacity="1";
128 129 }
129 130  
130 131 $rootScope.isLoading = false;
... ... @@ -167,7 +168,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
167 168  
168 169 $scope.initializeLEWindowData($rootScope.MULTI_VIEW_ID, true, undefined);
169 170  
170   - $scope.DisableUI();
  171 + $scope.DisableLabUI($rootScope.MULTI_VIEW_ID);
171 172  
172 173 //get current path
173 174 var currentURL = $location.path();
... ... @@ -204,10 +205,10 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
204 205 function (result) {
205 206 $scope.LabExerciseModulesList = result;
206 207 $scope.SetLEwindowStoreData(windowviewid, 'LabExerciseModulesList', result);
207   - $scope.EnableUI();
  208 + $scope.EnableLabUI(windowviewid);
208 209 },
209 210 function (error) {
210   - $scope.EnableUI();
  211 + $scope.EnableLabUI(windowviewid);
211 212 console.log(error.statusText)
212 213 }
213 214 )
... ... @@ -255,7 +256,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
255 256 if ($rootScope.isCallFromOtherModule) {
256 257 $scope.LEModuleData = ModuleService.getModuleData("LAB_EXERCISE");
257 258 if($scope.LEModuleData.length<1) return;
258   - $scope.DisableUI();
  259 + $scope.DisableLabUI();
259 260 $scope.readyToLoad = true;
260 261 $rootScope.LEWindowLoadComplete = false;
261 262 $scope.wincount = 1;
... ... @@ -293,7 +294,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
293 294  
294 295 }
295 296 else {
296   - $scope.DisableUI();
  297 + $scope.DisableLabUI();
297 298 $scope.InitializeLabExercise(null);
298 299 }
299 300 }
... ... @@ -428,9 +429,10 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
428 429 }
429 430 $scope.SetLEwindowStoreData(windowviewid, 'maximised',true);
430 431 $scope.SetLEwindowStoreData(windowviewid, 'minimised',false);
431   - var canvasDIvHeight = parseInt($('#labImagePanel_' + windowviewid).outerHeight()) - 15;
432   - $('#LabView_' + windowviewid).css('height', canvasDIvHeight);
433   - $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-125);
  432 + var canvasDIvHeight = $('#labImagePanel_' + windowviewid+ " .jsPanel-content").height();
  433 + $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-100);
  434 + $('#resultbodyDiv_' + windowviewid).css("height",canvasDIvHeight-90);
  435 +
434 436 $rootScope.resetMenuOptionOnClick(pnlName);
435 437 },
436 438 onnormalized:function (panel) {
... ... @@ -444,24 +446,27 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
444 446 }
445 447 $scope.SetLEwindowStoreData(windowviewid, 'minimised',false);
446 448 $scope.SetLEwindowStoreData(windowviewid, 'maximised',false);
447   - var canvasDIvHeight = parseInt($('#labImagePanel_' + windowviewid).outerHeight()) - 15;
448   - $('#LabView_' + windowviewid).css('height', canvasDIvHeight);
449   - $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-125);
  449 + var canvasDIvHeight = $('#labImagePanel_' + windowviewid+ " .jsPanel-content").height();
  450 + $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-100);
  451 + $('#resultbodyDiv_' + windowviewid).css("height",canvasDIvHeight-90);
450 452 $rootScope.resetMenuOptionOnClick(pnlName);
451 453 },
452 454 resizable: {
  455 + minWidth: 600,
  456 + minHeight: 500,
453 457 stop: function (event, ui) {
454 458 var pnlName=event.currentTarget.id;
455 459 var len = (pnlName).split("_").length;
456 460 var windowviewid = (pnlName).split("_")[len - 1];
  461 + var canvasDIvHeight = $('#labImagePanel_' + windowviewid+ " .jsPanel-content").height();
457 462 $scope.SetLEwindowStoreData(windowviewid, 'width', ui.size.width);
458   - $scope.SetLEwindowStoreData(windowviewid, 'height', ui.size.height);
  463 + $scope.SetLEwindowStoreData(windowviewid, 'height', canvasDIvHeight);
459 464 $scope.SetLEwindowStoreData(windowviewid, 'y', ui.position.top);
460 465 $scope.SetLEwindowStoreData(windowviewid, 'x', ui.position.left);
461 466 $rootScope.UnsaveCurriculum = true;
462   - var canvasDIvHeight = parseInt($('#labImagePanel_' + windowviewid).outerHeight()) - 15;
463   - $('#LabView_' + windowviewid).css('height', canvasDIvHeight);
464   - $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-125);
  467 +
  468 + $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-100);
  469 + $('#resultbodyDiv_' + windowviewid).css("height",canvasDIvHeight-90);
465 470 $rootScope.resetMenuOptionOnClick(pnlName);
466 471 }
467 472  
... ... @@ -503,9 +508,18 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
503 508 // set false after initial call of min,max or normal
504 509 $scope.SetLEwindowStoreData(windowviewid, 'minmaxAutoEvent', false);
505 510 $scope.SetLEwindowStoreData(windowviewid, 'y', $scope.jsPanelTop);
506   - $scope.SetLEwindowStoreData(windowviewid, 'x', $scope.jsPanelLeft);
  511 + $scope.SetLEwindowStoreData(windowviewid, 'x', $scope.jsPanelLeft)
507 512 $scope.SetLEwindowStoreData(windowviewid, 'width', $scope.jsPanelWidth);
508 513 $scope.SetLEwindowStoreData(windowviewid, 'height', $scope.jsPanelHeight);
  514 +
  515 + $scope.setControlsIDs(windowviewid);
  516 + $scope.createScopeVariable(windowviewid);
  517 +
  518 + $scope.labViewID = "LabView_" + windowviewid;
  519 + var labViewElement = angular.element(document.getElementById($scope.labViewID));
  520 +
  521 + $compile(labViewElement.contents())($scope);
  522 +
509 523  
510 524 var labExerciseInfo = {
511 525 userId: userloginid,
... ... @@ -514,52 +528,34 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
514 528 LabExerciseService.GetLabExercise(labExerciseInfo)
515 529 .then(
516 530 function (labResult) {
517   - $scope.setControlsIDs(windowviewid);
518   - $scope.createScopeVariable(windowviewid);
519   -
520   - $scope.labViewID = "LabView_" + windowviewid;
521   - var labViewElement = angular.element(document.getElementById($scope.labViewID));
522   -
523   - $compile(labViewElement.contents())($scope);
524   -
525   - if ($rootScope.isCallFromOtherModule) {
526   - var canvasDIvHeight = parseInt($('#labImagePanel_' + windowviewid).outerHeight()) - 30;
527   - }
528   - else
529   - {
530   - var canvasDIvHeight = parseInt($('#labImagePanel_' + windowviewid).outerHeight())-15;
531   -
532   - $('#labBodyview').css("height", $(window).outerHeight() - 65);
533   -
534   - $('#labBodyview').css("width", $(window).outerWidth() - 15);
535   -
536   - }
537   -
538   - $('#LabView_' + windowviewid).css('height', canvasDIvHeight);
539   -
540   - $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-125);
541   -
542   -
543   - $scope.JsPanelclick(windowviewid);
  531 +
  532 + $timeout(function () {
  533 + var canvasDIvHeight = $('#labImagePanel_' + windowviewid+ " .jsPanel-content").height();
  534 + $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-100);
  535 + $('#resultbodyDiv_' + windowviewid).css("height",canvasDIvHeight-90);
  536 + $scope.JsPanelclick(windowviewid);
544 537  
545   - if (labResult != undefined && labResult.lastQuestion > 0 && labResult != AIAConstants.SAVED_LAB_EXERCISE_NOT_FOUND) {
546   -
547   - $scope.SetLEwindowStoreData(windowviewid, 'SavedLabExercise', labResult);
  538 + if (labResult != undefined && labResult.lastQuestion > 0 && labResult != AIAConstants.SAVED_LAB_EXERCISE_NOT_FOUND) {
  539 +
  540 + $scope.SetLEwindowStoreData(windowviewid, 'SavedLabExercise', labResult);
  541 +
  542 + $('#quizNo_' + windowviewid).text(labResult.lastQuestion);
  543 + $scope.SetLEwindowStoreData(windowviewid, 'quiznumber', labResult.lastQuestion);
  544 + // $scope.initialQuestioNo = labResult.lastQuestion;
  545 + $scope.SetLEwindowStoreData(windowviewid, 'initialQuestioNo', labResult.lastQuestion);
  546 + $scope.GetQuizByTopic(windowviewid);
  547 + }
  548 + else {
  549 + $scope.GetQuizByTopic(windowviewid);
  550 + }
  551 + $scope.DisableLabUI(windowviewid);
548 552  
549   - $('#quizNo_' + windowviewid).text(labResult.lastQuestion);
550   - $scope.SetLEwindowStoreData(windowviewid, 'quiznumber', labResult.lastQuestion);
551   - // $scope.initialQuestioNo = labResult.lastQuestion;
552   - $scope.SetLEwindowStoreData(windowviewid, 'initialQuestioNo', labResult.lastQuestion);
553   - $scope.GetQuizByTopic(windowviewid);
554   - }
555   - else {
556   - $scope.GetQuizByTopic(windowviewid);
557   - }
558   - $scope.DisableUI();
  553 + },300)
559 554  
560 555 },
561 556 function (error) {
562 557 console.log('error in getting save ddata');
  558 + $scope.DisableLabUI(windowviewid);
563 559 }
564 560 )
565 561  
... ... @@ -636,6 +632,8 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
636 632 $("#btnReportClose").attr("id", "btnReportClose_" + windowviewid);
637 633  
638 634 $("#panelbodyDiv").attr("id", "panelbodyDiv_" + windowviewid);
  635 + $("#resultbodyDiv").attr("id", "resultbodyDiv_" + windowviewid);
  636 +
639 637 $("#LabExPageHeading").attr("id", "LabExPageHeading_" + windowviewid);
640 638 $("#minlab").attr("id", "minlab_" + windowviewid);
641 639 $("#minlabicon").attr("id", "minlabicon_" + windowviewid);
... ... @@ -708,7 +706,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
708 706  
709 707 $scope.GetQuizByTopic = function (windowviewid) {
710 708  
711   - $scope.DisableUI();
  709 + $scope.DisableLabUI(windowviewid);
712 710  
713 711 $('.jsPanel-content').css('font-size', '14px');
714 712  
... ... @@ -853,7 +851,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
853 851 $scope.SetLEwindowStoreData(windowviewid, 'isResetClicked', false);
854 852 }
855 853 }
856   - $scope.EnableUI();
  854 + $scope.EnableLabUI(windowviewid);
857 855 if ($rootScope.isCallFromOtherModule) {
858 856 $rootScope.LEWindowLoadComplete = true;
859 857 }
... ... @@ -1580,7 +1578,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
1580 1578 $rootScope.UnsaveCurriculum = true;
1581 1579 }
1582 1580  
1583   - $scope.DisableUI();
  1581 + $scope.DisableLabUI(windowviewid);
1584 1582 var quiznumber = $scope.GetLEwindowStoreData(windowviewid, 'quiznumber');
1585 1583 $scope.CreateLabExerciseDataToSave(windowviewid, quiznumber);
1586 1584  
... ... @@ -1603,7 +1601,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
1603 1601 LabExerciseService.saveLabExerciseAttempt(labExerciseAttempt)
1604 1602 .then(
1605 1603 function (result) {
1606   - $scope.EnableUI();
  1604 + $scope.EnableLabUI(windowviewid);
1607 1605 $scope.SetLEwindowStoreData(windowviewid, 'isLabExChanged', false);
1608 1606 //saved successfully.variable name is not correct but errorMessage represnts message
1609 1607 if (!$rootScope.isCallFromOtherModule) {
... ... @@ -1614,9 +1612,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
1614 1612  
1615 1613 },
1616 1614 function (error) {
1617   -
1618   - $scope.EnableUI();
1619   -
  1615 + $scope.EnableLabUI(windowviewid);
1620 1616 console.log(' Error in saving lab exercise = ' + error.statusText);
1621 1617 $rootScope.isVisibleLogin = true;
1622 1618 $('#errorMessage').text(error);
... ... @@ -2100,7 +2096,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
2100 2096 else {
2101 2097 $("#imgdiv_" + windowviewid).css("position", "relative");
2102 2098 }
2103   - $scope.EnableUI();
  2099 + $scope.EnableLabUI(windowviewid);
2104 2100 }, 500);
2105 2101 }
2106 2102  
... ... @@ -2123,7 +2119,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
2123 2119 $("#quizSubmitBtn_" + windowviewid).css("display", "none");
2124 2120 }
2125 2121  
2126   - $scope.EnableUI();
  2122 + $scope.EnableLabUI(windowviewid);
2127 2123 }
2128 2124  
2129 2125 $scope.SendLabEXMailToUser = function ($event) {
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/MyAnimationController.js
... ... @@ -80,13 +80,12 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
80 80 }
81 81 }
82 82  
83   - $scope.DisableUI = function () {
84   -
85   - var aniImagePanelConetent = document.getElementsByClassName("jsPanel-content");
86   - for (var i = 0; i < aniImagePanelConetent.length; i++) {
87   - aniImagePanelConetent[i].style.pointerEvents = "none";
88   - aniImagePanelConetent[i].style.opacity = "0.7";
89   -
  83 + $scope.DisableVideoUI = function (windowviewid) {
  84 + var modulePanel = $("#vidImagePanel_"+windowviewid).find(" .jsPanel-content");
  85 + if(modulePanel.length>0)
  86 + {
  87 + modulePanel[0].style.pointerEvents="none";
  88 + modulePanel[0].style.opacity="0.7";
90 89 }
91 90 $rootScope.isLoading = true;
92 91 $('#spinner').css('visibility', 'visible');
... ... @@ -96,12 +95,12 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
96 95 $('#HomeContainerDiv').css('opacity', '0.7');
97 96 }
98 97  
99   - $scope.EnableUI = function () {
100   -
101   - var aniImagePanelConetent = document.getElementsByClassName("jsPanel-content");
102   - for (var i = 0; i < aniImagePanelConetent.length; i++) {
103   - aniImagePanelConetent[i].style.pointerEvents = "auto";
104   - aniImagePanelConetent[i].style.opacity = "1";
  98 + $scope.EnableVideoUI = function (windowviewid) {
  99 + var modulePanel = $("#vidImagePanel_"+windowviewid).find(" .jsPanel-content");
  100 + if(modulePanel.length>0)
  101 + {
  102 + modulePanel[0].style.pointerEvents="auto";
  103 + modulePanel[0].style.opacity="1";
105 104 }
106 105  
107 106 $rootScope.isLoading = false;
... ... @@ -159,7 +158,6 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
159 158 if ($rootScope.isCallFromOtherModule) {
160 159 $scope.VideoModuleData = ModuleService.getModuleData("MY_ANIMATIONS");
161 160 if($scope.VideoModuleData.length<1) return;
162   - $scope.DisableUI();
163 161 $scope.readyToLoad = true;
164 162 $rootScope.VideoLoadComplete = false;
165 163 $scope.wincount = 1;
... ... @@ -203,6 +201,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
203 201 $scope.VidOpenInOtherModules = vidModuleData;
204 202 $rootScope.MULTI_VIEW_ID += 1;
205 203 var windowviewid = $rootScope.MULTI_VIEW_ID;
  204 + $scope.DisableVideoUI(windowviewid);
206 205  
207 206 $scope.initializeVideoWindowData(windowviewid, false, $scope.VidOpenInOtherModules.currentWindowId);
208 207  
... ... @@ -244,7 +243,6 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
244 243 }
245 244  
246 245 $scope.loadMyAnimation = function (windowviewid) {
247   - $scope.DisableUI();
248 246 $scope.jsPanelID = 'vidImagePanel' + '_' + windowviewid;
249 247 var tittle = $scope.GetVideowindowStoreData(windowviewid, 'currentViewTitle');
250 248 var animationSource = $scope.GetVideowindowStoreData(windowviewid, 'videoSource');
... ... @@ -372,16 +370,19 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
372 370 $rootScope.resetMenuOptionOnClick(pnlName);
373 371 },
374 372 resizable: {
  373 + minWidth: 600,
  374 + minHeight: 500,
375 375 stop: function (event, ui) {
376 376 var pnlName=event.currentTarget.id;
377 377 var len = (pnlName).split("_").length;
378 378 var windowviewid = (pnlName).split("_")[len - 1];
  379 + var canvasDIvHeight = $('#vidImagePanel_' + windowviewid+ " .jsPanel-content").height();
379 380 $scope.SetVideowindowStoreData(windowviewid, 'width', ui.size.width);
380   - $scope.SetVideowindowStoreData(windowviewid, 'height', ui.size.height);
  381 + $scope.SetVideowindowStoreData(windowviewid, 'height', canvasDIvHeight);
381 382 $scope.SetVideowindowStoreData(windowviewid, 'y', ui.position.top);
382 383 $scope.SetVideowindowStoreData(windowviewid, 'x', ui.position.left);
383 384 $rootScope.UnsaveCurriculum = true;
384   - var canvasDIvHeight = $('#vidImagePanel_' + windowviewid+ " .jsPanel-content").height();
  385 +
385 386 $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight);
386 387 $rootScope.resetMenuOptionOnClick(pnlName);
387 388 }
... ... @@ -434,23 +435,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
434 435 });
435 436  
436 437 var canvasDIvHeight = $('#vidImagePanel_' + windowviewid+ " .jsPanel-content").height();
437   - $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight);
438   -
439   - var videoHeight = $('#divplayerinlineVideo_'+ windowviewid +' div').height();
440   - if (videoHeight <= 0)
441   - videoHeight = 360;
442   - var textH = $('.video-subtitle').height();
443   - textH = textH + 40;
444   - var blackBorderHeight = canvasDIvHeight - (videoHeight + textH);
445   -
446   - if ($('.jsPanel-content').length > 0) {
447   - $('.video-subtitle').css('margin-bottom', blackBorderHeight);
448   - $('#divplayerinlineVideo_'+ windowviewid ).css('background', '#fff');
449   - //Android > Clinical Animations > The animation does not fit to the screen in the Landscape mode.
450   - var $ua = navigator.userAgent;
451   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) { $('.jsPanel-content').css("width", "100%"); }
452   - }
453   -
  438 + $('#playerinlineVideo_'+ windowviewid ).css("height",canvasDIvHeight);
454 439 }
455 440  
456 441 //Calling methode for save Js Panel Activity for SaveCB
... ... @@ -459,11 +444,13 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
459 444  
460 445 $scope.MyvideoOnLoad = function (windowviewid)
461 446 {
462   - $scope.EnableUI();
463   - if ($rootScope.isCallFromOtherModule) {
464   - $rootScope.VideoLoadComplete = true;
465   - }
466   - $scope.JsPanelclick(windowviewid);
  447 +
  448 + if ($rootScope.isCallFromOtherModule) {
  449 + $rootScope.VideoLoadComplete = true;
  450 + }
  451 + $scope.JsPanelclick(windowviewid);
  452 +
  453 + $scope.EnableVideoUI(windowviewid);
467 454  
468 455 }
469 456  
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/MyPictureController.js
... ... @@ -21,6 +21,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
21 21 'maximised': false,
22 22 'minmaxAutoEvent':true,
23 23 'annotationData':{shapeStates:[],paintCanvasState:[]},
  24 + 'imgLeft': 0,
24 25  
25 26 };
26 27 return windata;
... ... @@ -93,14 +94,15 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
93 94 }
94 95 }
95 96  
96   - $scope.DisableUI = function () {
97   -
98   - var myImagePanelConetent = document.getElementsByClassName("jsPanel-content");
99   - for (var i = 0; i < myImagePanelConetent.length; i++) {
100   - myImagePanelConetent[i].style.pointerEvents = "none";
101   - myImagePanelConetent[i].style.opacity = "0.7";
  97 + $scope.DisablePicUI = function (windowviewid) {
102 98  
  99 + var modulePanel = $("#picImagePanel_"+windowviewid).find(" .jsPanel-content");
  100 + if(modulePanel.length>0)
  101 + {
  102 + modulePanel[0].style.pointerEvents="none";
  103 + modulePanel[0].style.opacity="0.7";
103 104 }
  105 +
104 106 $rootScope.isLoading = true;
105 107 $('#spinner').css('visibility', 'visible');
106 108  
... ... @@ -109,14 +111,14 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
109 111 $('#CBDetailPageDiv').css('opacity', '0.7');
110 112 }
111 113  
112   - $scope.EnableUI = function () {
  114 + $scope.EnablePicUI = function (windowviewid) {
113 115  
114   - var myImagePanelConetent = document.getElementsByClassName("jsPanel-content");
115   - for (var i = 0; i < myImagePanelConetent.length; i++) {
116   - myImagePanelConetent[i].style.pointerEvents = "auto";
117   - myImagePanelConetent[i].style.opacity = "1";
  116 + var modulePanel = $("#picImagePanel_"+windowviewid).find(" .jsPanel-content");
  117 + if(modulePanel.length>0)
  118 + {
  119 + modulePanel[0].style.pointerEvents="auto";
  120 + modulePanel[0].style.opacity="1";
118 121 }
119   -
120 122 $rootScope.isLoading = false;
121 123 $('#spinner').css('visibility', 'hidden');
122 124 // CB module enable all
... ... @@ -163,7 +165,6 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
163 165 if ($rootScope.isCallFromOtherModule) {
164 166 $scope.PicModuleData = ModuleService.getModuleData("MY_PICTURES");
165 167 if($scope.PicModuleData.length<1) return;
166   - $scope.DisableUI();
167 168 $scope.readyToLoad = true;
168 169 $rootScope.PicLoadComplete = false;
169 170 $scope.wincount = 1;
... ... @@ -204,10 +205,10 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
204 205 }
205 206  
206 207 $scope.OpenPictureView = function (picModuleData) {
207   -
208 208 $scope.picOpenInOtherModules = picModuleData;
209 209 $rootScope.MULTI_VIEW_ID += 1;
210 210 var windowviewid = $rootScope.MULTI_VIEW_ID;
  211 + $scope.DisablePicUI(windowviewid);
211 212  
212 213 $scope.initializePICWindowData(windowviewid, false, $scope.picOpenInOtherModules.currentWindowId);
213 214  
... ... @@ -217,6 +218,8 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
217 218 var imageId = $scope.picOpenInOtherModules.id;
218 219  
219 220 $scope.SetPICwindowStoreData(windowviewid, 'imageId', imageId);
  221 + var imgLeft = $scope.picOpenInOtherModules.imgLeft!=undefined?$scope.picOpenInOtherModules.imgLeft:0;
  222 + $scope.SetPICwindowStoreData(windowviewid, 'imgLeft', imgLeft);
220 223  
221 224 var imageSource=$scope.picOpenInOtherModules.imageSource;
222 225  
... ... @@ -315,45 +318,81 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
315 318 var pnlName=panel[0].id;
316 319 var len = (pnlName).split("_").length;
317 320 var windowviewid = (pnlName).split("_")[len - 1];
318   - var isAutoCalled = $scope.GetPICwindowStoreData(windowviewid, 'minmaxAutoEvent');
319   - if(!isAutoCalled)
320   - {
321   - $rootScope.UnsaveCurriculum = true;
322   - }
  321 +
323 322 $scope.SetPICwindowStoreData(windowviewid, 'maximised',true);
324 323 $scope.SetPICwindowStoreData(windowviewid, 'minimised',false);
325   - var canvasDIvHeight = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").height();
326   - $('#canvasDivPIC_' + windowviewid).css('height', canvasDIvHeight-5);
327   - $rootScope.resetMenuOptionOnClick(pnlName);
  324 + var canvasDIvHeight = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  325 + var canvasDIvWidth = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").width();
  326 + var canvasDiv='canvasDivPIC_' + windowviewid;
  327 + var canvasDraw='canvasPIC_' + windowviewid;
  328 + var canvasPaint='canvasPaintPIC_' + windowviewid;
  329 + var imgName='mypic_' + windowviewid;
  330 + var isAutoCalled = $scope.GetPICwindowStoreData(windowviewid, 'minmaxAutoEvent');
  331 + if(!isAutoCalled)
  332 + {
  333 + $rootScope.UnsaveCurriculum = true;
  334 + var oldleft= $rootScope.GetPICwindowData(windowviewid, 'imgLeft');
  335 + var annotationData=$rootScope.GetPICwindowData(windowviewid,'annotationData');
  336 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,annotationData);
  337 + var img = document.getElementById(imgName);
  338 + $rootScope.SetPICwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  339 + }
  340 +
328 341 },
329 342 onnormalized:function (panel) {
330 343 var pnlName=panel[0].id;
331 344 var len = (pnlName).split("_").length;
332 345 var windowviewid = (pnlName).split("_")[len - 1];
333   - var isAutoCalled = $scope.GetPICwindowStoreData(windowviewid, 'minmaxAutoEvent');
334   - if(!isAutoCalled)
335   - {
336   - $rootScope.UnsaveCurriculum = true;
337   - }
  346 +
338 347 $scope.SetPICwindowStoreData(windowviewid, 'minimised',false);
339 348 $scope.SetPICwindowStoreData(windowviewid, 'maximised',false);
340   - var canvasDIvHeight = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").height();
341   - $('#canvasDivPIC_' + windowviewid).css('height', canvasDIvHeight-5);
342   - $rootScope.resetMenuOptionOnClick(pnlName);
  349 + var canvasDIvHeight = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  350 + var canvasDIvWidth = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").width();
  351 + var canvasDiv='canvasDivPIC_' + windowviewid;
  352 + var canvasDraw='canvasPIC_' + windowviewid;
  353 + var canvasPaint='canvasPaintPIC_' + windowviewid;
  354 + var imgName='mypic_' + windowviewid;
  355 +
  356 + var isAutoCalled = $scope.GetPICwindowStoreData(windowviewid, 'minmaxAutoEvent');
  357 + if(!isAutoCalled)
  358 + {
  359 + $rootScope.UnsaveCurriculum = true;
  360 + var oldleft= $rootScope.GetPICwindowData(windowviewid, 'imgLeft');
  361 + var annotationData=$rootScope.GetPICwindowData(windowviewid,'annotationData');
  362 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,annotationData);
  363 + var img = document.getElementById(imgName);
  364 + $rootScope.SetPICwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  365 + }
343 366 },
344 367 resizable: {
  368 + minWidth: 600,
  369 + minHeight: 500,
345 370 stop: function (event, ui) {
346 371 var pnlName=event.currentTarget.id;
347 372 var len = (pnlName).split("_").length;
348 373 var windowviewid = (pnlName).split("_")[len - 1];
  374 + $rootScope.UnsaveCurriculum = true;
  375 +
  376 + var canvasDIvHeight = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").height();
  377 + var canvasDIvWidth = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").width();
  378 +
349 379 $scope.SetPICwindowStoreData(windowviewid, 'width', ui.size.width);
350   - $scope.SetPICwindowStoreData(windowviewid, 'height', ui.size.height);
  380 + $scope.SetPICwindowStoreData(windowviewid, 'height',canvasDIvHeight);
351 381 $scope.SetPICwindowStoreData(windowviewid, 'y', ui.position.top);
352 382 $scope.SetPICwindowStoreData(windowviewid, 'x', ui.position.left);
353   - $rootScope.UnsaveCurriculum = true;
354   - var canvasDIvHeight = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").height();
355   - $('#canvasDivPIC_' + windowviewid).css('height', canvasDIvHeight-5);
356   - $rootScope.resetMenuOptionOnClick(pnlName);
  383 +
  384 +
  385 + var canvasDiv='canvasDivPIC_' + windowviewid;
  386 + var canvasDraw='canvasPIC_' + windowviewid;
  387 + var canvasPaint='canvasPaintPIC_' + windowviewid;
  388 + var imgName='mypic_' + windowviewid;
  389 +
  390 + var oldleft= $rootScope.GetPICwindowData(windowviewid, 'imgLeft');
  391 + var annotationData=$rootScope.GetPICwindowData(windowviewid,'annotationData');
  392 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight-5,canvasDIvWidth,annotationData);
  393 + var img = document.getElementById(imgName);
  394 + $rootScope.SetPICwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  395 +
357 396 }
358 397  
359 398 },
... ... @@ -397,50 +436,45 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
397 436  
398 437 $('.jsPanel-content .jsPanel-theme-success').css('overflow-y', 'auto !important')
399 438  
400   - var canvasDIvHeight = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").height();
  439 + var canvasDIvHeight = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").height()-5;
  440 + var canvasDIvWidth = $('#picImagePanel_' + windowviewid+ " .jsPanel-content").width();
401 441  
402   - $('#canvasDivPIC_' + windowviewid).css('height', canvasDIvHeight-5);
403   - var canvas = document.getElementById("canvasPIC_" + windowviewid);
404   - var canvasPaint = document.getElementById("canvasPaintPIC_" + windowviewid);
405   -
406   - var $ua = navigator.userAgent;
407   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
408   - canvas.width = screen.width-20;
409   - canvasPaint.width = screen.width-20;
410   - canvas.height = screen.height-130;
411   - canvasPaint.height = screen.height-130;
412   - }
413   - else
414   - {
415   - canvas.height = screen.height-280;
416   - canvasPaint.height = screen.height-280;
417   - canvas.width = screen.width-40;
418   - canvasPaint.width = screen.width-40;
419   -
420   - }
421   -
422 442 var openedImage = document.getElementById('mypic_' + windowviewid );
423 443 openedImage.src = selectedpicture;
424 444 openedImage.onload = function () {
  445 + var pnlName='picImagePanel_' + windowviewid;
  446 + var canvasDiv='canvasDivPIC_' + windowviewid;
  447 + var canvasDraw='canvasPIC_' + windowviewid;
  448 + var canvasPaint='canvasPaintPIC_' + windowviewid;
  449 + var imgName='mypic_' + windowviewid;
  450 +
  451 + var demoData= {shapeStates:[],paintCanvasState:""};
  452 + var oldleft= $rootScope.GetPICwindowData(windowviewid, 'imgLeft');
  453 + $rootScope.setIMGPanelCordinate(windowviewid,pnlName,canvasDiv,canvasDraw,canvasPaint,imgName,oldleft,canvasDIvHeight,canvasDIvWidth,demoData);
  454 + var img = document.getElementById(imgName);
  455 + $rootScope.SetPICwindowData(windowviewid, 'imgLeft',img.offsetLeft);
  456 +
425 457 $scope.JsPanelclick(windowviewid);
426   - //some time get big size image
427   - if(this.height>780)
428   - {
429   - canvas.height = this.height;
430   - canvasPaint.height = this.height;
431   - }
432   -
  458 +
433 459 var annotationData= $scope.picOpenInOtherModules.annotationData;
434 460 // load annotation
435 461 if(annotationData!="" && annotationData!=undefined)
436 462 {
437 463 if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
438 464 {
  465 + var modifiedData=$rootScope.resetAnnotationData(imgName,oldleft,annotationData);
  466 + if(modifiedData!="" && modifiedData!=undefined)
  467 + {
  468 + if(modifiedData.shapeStates.length>0||modifiedData.paintCanvasState.length>0)
  469 + {
  470 + annotationData=modifiedData;
  471 + }
  472 + }
439 473 //first draw shape and then store in object
440   - $rootScope.LoadCBSavedAnnotation("canvasPIC_"+windowviewid,"canvasPaintPIC_"+windowviewid,annotationData);
  474 + $rootScope.LoadCBSavedAnnotation(canvasDraw,canvasPaint,annotationData);
441 475 }
442 476 }
443   - $scope.EnableUI();
  477 + $scope.EnablePicUI(windowviewid);
444 478 $rootScope.PicLoadComplete = true;
445 479 }
446 480  
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/TileViewListController.js
1 1 ๏ปฟ'use strict';
2 2  
3   -AIA.controller("TileViewListController", ["$scope", "$window", "$rootScope", "$compile", "$http", "$log", "$location", "$timeout", "DA", "Modules", "$routeParams", "BodyRegions", "BodySystems", "ViewOrientations", "ImageTypes", "DataService", "ModuleService","$interval",
4   -function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeout, DA, Modules, $routeParam, BodyRegions, BodySystems, ViewOrientations, ImageTypes, DataService, ModuleService, $interval) {
  3 +AIA.controller("TileViewListController", ["$scope", "$window", "$rootScope", "$compile", "$http", "$log", "$location", "$timeout", "DA", "Modules", "$routeParams", "BodyRegions", "BodySystems", "ViewOrientations", "ImageTypes", "DataService", "ModuleService","$interval","$filter",
  4 +function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeout, DA, Modules, $routeParam, BodyRegions, BodySystems, ViewOrientations, ImageTypes, DataService, ModuleService, $interval, $filter) {
5 5  
6 6 $scope.AllBodyRegion = [];
7 7 $scope.AllBodySystem = [];
... ... @@ -105,6 +105,11 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
105 105 'navigatorImage':"",
106 106 'showHideAnnotations': 'showAnnotationText',
107 107 'annotationData':{shapeStates:[],paintCanvasState:[]},
  108 + 'totalstructure': 0,
  109 + 'totalstructureLm': 0,
  110 + 'intervalObject': null,
  111 + 'SearchTimeStampValue': 0,
  112 + 'keyctrl': false,
108 113  
109 114 };
110 115 return windata;
... ... @@ -182,30 +187,33 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
182 187 }
183 188 }
184 189  
185   - $scope.DisableUI = function () {
186   -
187   - var daImagePanelConetent = document.getElementsByClassName("jsPanel-content");
188   - for (var i = 0; i < daImagePanelConetent.length; i++) {
189   - daImagePanelConetent[i].style.pointerEvents = "none";
190   - daImagePanelConetent[i].style.opacity = "0.7";
  190 + $scope.DisableAAUI = function (windowviewid) {
191 191  
  192 + var modulePanel = $("#AAImagePanel_"+windowviewid).find(" .jsPanel-content");
  193 + if(modulePanel.length>0)
  194 + {
  195 + modulePanel[0].style.pointerEvents="none";
  196 + modulePanel[0].style.opacity="0.7";
192 197 }
  198 +
193 199 $rootScope.isLoading = true;
194 200 $('#spinner').css('visibility', 'visible');
195 201  
196 202 // CB module disable all
197 203 $('#HomeContainerDiv').css('pointer-events', 'none');
198 204 $('#HomeContainerDiv').css('opacity', '0.7');
  205 +
199 206 }
200 207  
201   - $scope.EnableUI = function () {
  208 + $scope.EnableAAUI = function (windowviewid) {
202 209  
203   - var daImagePanelConetent = document.getElementsByClassName("jsPanel-content");
204   - for (var i = 0; i < daImagePanelConetent.length; i++) {
205   - daImagePanelConetent[i].style.pointerEvents = "auto";
206   - daImagePanelConetent[i].style.opacity = "1";
  210 + var modulePanel = $("#AAImagePanel_"+windowviewid).find(" .jsPanel-content");
  211 + if(modulePanel.length>0)
  212 + {
  213 + modulePanel[0].style.pointerEvents="auto";
  214 + modulePanel[0].style.opacity="1";
207 215 }
208   -
  216 +
209 217 $rootScope.isLoading = false;
210 218 $('#spinner').css('visibility', 'hidden');
211 219 // CB module enable all
... ... @@ -213,11 +221,10 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
213 221 $('#HomeContainerDiv').css('opacity', '1');
214 222 }
215 223  
216   - $scope.loadForModuleById = function (moduleId) {
217   - $scope.DisableUI();
218   -
  224 + $scope.loadForModuleById = function (moduleId) {
219 225 $rootScope.isCallFromOtherModule = undefined;
220 226 $rootScope.MULTI_VIEW_ID += 1
  227 + $scope.DisableAAUI($rootScope.MULTI_VIEW_ID);
221 228  
222 229 // store exist module in module service
223 230 var ExistData = ModuleService.getModuleData("ATLAS_ANATOMY");
... ... @@ -422,7 +429,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
422 429 if ($rootScope.isCallFromOtherModule) {
423 430 $scope.AAModuleData = ModuleService.getModuleData("ATLAS_ANATOMY");
424 431 if($scope.AAModuleData.length<1) return;
425   - $scope.DisableUI();
  432 + $scope.DisableAAUI();
426 433 $scope.readyToLoad=true;
427 434 $rootScope.AAWindowLoadComplete = false;
428 435 $scope.wincount=1;
... ... @@ -463,7 +470,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
463 470  
464 471 }
465 472 else {
466   - $scope.DisableUI();
  473 + $scope.DisableAAUI();
467 474 $scope.openModuleItem(null);
468 475 }
469 476 }
... ... @@ -517,7 +524,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
517 524  
518 525 $scope.SetAAwindowStoreData(windowviewid, 'maximised', isMaximize);
519 526 $scope.SetAAwindowStoreData(windowviewid, 'minimised', isMinimize);
520   -
  527 +
521 528 // note:: in few json like "articulation" imageId as same id
522 529 // get wrong detail by imageId
523 530 //solution: use id to get imageid from js list
... ... @@ -577,7 +584,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
577 584  
578 585 $scope.loadAAIllustration = function (windowviewid) {
579 586 //0.4 for Opening module item, load it into image
580   - $scope.DisableUI();
  587 + $scope.DisableAAUI(windowviewid);
581 588  
582 589 if ($rootScope.refreshcheck == null) {
583 590 $location.path('/');
... ... @@ -666,47 +673,77 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
666 673 var pnlName=panel[0].id;
667 674 var len = (pnlName).split("_").length;
668 675 var windowviewid = (pnlName).split("_")[len - 1];
669   - var isAutoCalled = $scope.GetAAwindowStoreData(windowviewid, 'minmaxAutoEvent');
670   - if(!isAutoCalled)
671   - {
672   - $rootScope.UnsaveCurriculum = true;
673   - }
  676 +
674 677 $scope.SetAAwindowStoreData(windowviewid, 'maximised',true);
675 678 $scope.SetAAwindowStoreData(windowviewid, 'minimised',false);
676   - var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height()-50;
677   - $('#canvasAADiv_' + windowviewid).css('height', canvasDIvHeight);
678   - $rootScope.resetMenuOptionOnClick(pnlName);
  679 +
  680 + var extraheight=$('#aastickeyarea').height()+5;
  681 + var extrawidth=$('.tools').width()+15;
  682 + var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height()-extraheight;
  683 + var canvasDIvWidth = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
  684 + var canvasDiv='canvasAADiv_' + windowviewid;
  685 + var canvasDraw='canvasAA_' + windowviewid;
  686 + var canvasPaint='canvasPaintAA_' + windowviewid;
  687 +
  688 + var isAutoCalled = $scope.GetAAwindowStoreData(windowviewid, 'minmaxAutoEvent');
  689 + if(!isAutoCalled)
  690 + {
  691 + $rootScope.UnsaveCurriculum = true;
  692 + var annotationData=$rootScope.GetAAwindowData(windowviewid,'annotationData');
  693 + $rootScope.setAADAPanelCordinate(windowviewid,0,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight,canvasDIvWidth,annotationData);
  694 + }
679 695 },
680 696 onnormalized:function (panel) {
681 697 var pnlName=panel[0].id;
682 698 var len = (pnlName).split("_").length;
683 699 var windowviewid = (pnlName).split("_")[len - 1];
  700 +
  701 + $scope.SetAAwindowStoreData(windowviewid, 'minimised',false);
  702 + $scope.SetAAwindowStoreData(windowviewid, 'maximised',false);
  703 +
  704 + var extraheight=$('#aastickeyarea').height()+5;
  705 + var extrawidth=$('.tools').width()+15;
  706 + var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height()-extraheight;
  707 + var canvasDIvWidth = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
  708 +
  709 + var canvasDiv='canvasAADiv_' + windowviewid;
  710 + var canvasDraw='canvasAA_' + windowviewid;
  711 + var canvasPaint='canvasPaintAA_' + windowviewid;
  712 +
684 713 var isAutoCalled = $scope.GetAAwindowStoreData(windowviewid, 'minmaxAutoEvent');
685 714 if(!isAutoCalled)
686 715 {
687   - $rootScope.UnsaveCurriculum = true;
  716 + $rootScope.UnsaveCurriculum = true;
  717 + var annotationData=$rootScope.GetAAwindowData(windowviewid,'annotationData');
  718 + $rootScope.setAADAPanelCordinate(windowviewid,0,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight,canvasDIvWidth,annotationData);
688 719 }
689   - $scope.SetAAwindowStoreData(windowviewid, 'minimised',false);
690   - $scope.SetAAwindowStoreData(windowviewid, 'maximised',false);
691   - var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height()-50;
692   - $('#canvasAADiv_' + windowviewid).css('height', canvasDIvHeight);
693   - $rootScope.resetMenuOptionOnClick(pnlName);
694 720 },
695 721 resizable: {
  722 + minWidth: 600,
  723 + minHeight: 500,
696 724 stop: function (event, ui) {
697 725 var pnlName=event.currentTarget.id;
698 726 var len = (pnlName).split("_").length;
699 727 var windowviewid = (pnlName).split("_")[len - 1];
  728 +
  729 + var extraheight=$('#aastickeyarea').height()+5;
  730 + var extrawidth=$('.tools').width()+15;
  731 + var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height();
  732 + var canvasDIvWidth = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
  733 +
700 734 $scope.SetAAwindowStoreData(windowviewid, 'width', ui.size.width);
701   - $scope.SetAAwindowStoreData(windowviewid, 'height', ui.size.height);
  735 + $scope.SetAAwindowStoreData(windowviewid, 'height', canvasDIvHeight);
702 736 $scope.SetAAwindowStoreData(windowviewid, 'y', ui.position.top);
703 737 $scope.SetAAwindowStoreData(windowviewid, 'x', ui.position.left);
704 738 $rootScope.UnsaveCurriculum = true;
705   - var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height()-50;
706   - $('#canvasAADiv_' + windowviewid).css('height', canvasDIvHeight);
707   - $rootScope.resetMenuOptionOnClick(pnlName);
708   - }
709   -
  739 +
  740 + var canvasDiv='canvasAADiv_' + windowviewid;
  741 + var canvasDraw='canvasAA_' + windowviewid;
  742 + var canvasPaint='canvasPaintAA_' + windowviewid;
  743 +
  744 + var annotationData=$rootScope.GetAAwindowData(windowviewid,'annotationData');
  745 + $rootScope.setAADAPanelCordinate(windowviewid,0,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight-extraheight,canvasDIvWidth,annotationData);
  746 + }
710 747 },
711 748 draggable: {
712 749 stop: function( event, ui ) {
... ... @@ -750,10 +787,10 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
750 787 $scope.SetAAwindowStoreData(windowviewid, 'height', $scope.jsPanelHeight);
751 788  
752 789 $timeout(function () {
  790 + $scope.setControlsIDs(windowviewid);
753 791 if (document.getElementById('aaBodyView') != null) {
754 792 $compile(aaViewElement.contents())($scope);
755   - $scope.setControlsIDs(windowviewid);
756   -
  793 +
757 794 var timeintval = null;
758 795 timeintval = $interval(function () {
759 796 var bodySystemListObj = document.getElementById("bodySystemList_" + windowviewid);
... ... @@ -761,6 +798,8 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
761 798 if (len>1) {
762 799 $scope.stopIntervalLoader();
763 800 //wait until DOM element load of AA
  801 + // set search for language input
  802 + $scope.langSearchLoad(windowviewid);
764 803 $scope.loadAAModule(windowviewid);
765 804 }
766 805 else
... ... @@ -768,7 +807,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
768 807 $scope.setControlsIDs(windowviewid);
769 808 console.log("waiting for loading module");
770 809 }
771   - }, 200);
  810 + },100);
772 811 $scope.stopIntervalLoader = function () {
773 812 if (angular.isDefined(timeintval)) {
774 813 $interval.cancel(timeintval);
... ... @@ -778,7 +817,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
778 817  
779 818 }
780 819  
781   - }, 500);
  820 + }, 1000);
782 821  
783 822 }
784 823  
... ... @@ -786,16 +825,10 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
786 825  
787 826 $scope.loadAAModule = function (windowviewid) {
788 827  
789   - if (!$rootScope.isCallFromOtherModule) {
790   - // $('#aaBodyView').css("height", $(window).outerHeight() - 65);
791   - // $('#aaBodyView').css("width", $(window).outerWidth() - 15);
792   - $('#aaBodyView').css("height", $(window).innerHeight()-100);
793   - $('#aaBodyView').css("width",$(window).innerWidth()-100);
794   - }
795   -
796   - var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height()-50;
797   - $('#canvasAADiv_' + windowviewid).css('height', canvasDIvHeight);
798   - // $('.canvasDivClass').css("height", canvasDIvHeight);
  828 + var extraheight=$('#aastickeyarea').height()+5;
  829 + var extrawidth=$('.tools').width()+15;
  830 + var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height()-extraheight;
  831 + var canvasDIvWidth = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
799 832  
800 833 $scope.convertToZoomValue(windowviewid);
801 834  
... ... @@ -818,16 +851,26 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
818 851 //0.5 create canvas on the top of image.
819 852 var canvas = document.createElement('canvas');
820 853 canvas.id = 'aaDetailViewCanvas_'+windowviewid;
821   - canvas.className = '.aaCanvas'
822   - canvas.height = screen.height<=768?screen.height: screen.height-300// parseInt(relativeHeight + 10);
823   - canvas.width = screen.width<=1024?screen.width: screen.width-200//parseInt(relativeWidth + 10);
  854 + canvas.className = '.aaCanvas';
  855 + canvas.height =parseInt(relativeHeight)+20;
  856 + canvas.width =parseInt(relativeWidth)+50;
824 857 canvas.style.left = '0px';
825 858 canvas.style.top = '0px';
826 859 canvas.style.position = "absolute";
827 860 canvas.style.zIndex = 12002;
828 861 $("#canvasAADiv_" + windowviewid).append(canvas);
829   -
830   - $timeout(function () {
  862 +
  863 + var pnlName='AAImagePanel_' + windowviewid;
  864 + var canvasDiv='canvasAADiv_' + windowviewid;
  865 + var canvasDraw='canvasAA_' + windowviewid;
  866 + var canvasPaint='canvasPaintAA_' + windowviewid;
  867 +
  868 + var demoData= {shapeStates:[],paintCanvasState:[]};
  869 + $rootScope.setAADAPanelCordinate(windowviewid,0,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight,canvasDIvWidth,demoData);
  870 + $scope.JsPanelclick(windowviewid);
  871 +
  872 + $timeout(function () {
  873 +
831 874 $scope.loadAllPinFirstTime(windowviewid);
832 875 //call time interval function until load pin data
833 876 //load search/vocab data
... ... @@ -841,27 +884,24 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
841 884 $scope.stopIntervalAA();
842 885 $scope.showAllPins(windowviewid);
843 886 $scope.Setslider(windowviewid);
844   - //7. Highlight all system body list in left side
845   - $scope.highlightBodySystemList(windowviewid);
846   - $scope.loadbtnNavigator(windowviewid);
847   - $scope.JsPanelclick(windowviewid);
848   -
849   - if ($rootScope.isCallFromOtherModule) {
850   - $scope.loadAAonCBData(windowviewid);
851   -
852   - //$rootScope.ShowAnnotationWindow(); //show tool if need
853   - var annotationData= $scope.aaOpenInOtherModules.annotationData;
854   - // load annotation
855   - if(annotationData!="" && annotationData!=undefined)
  887 + //7. Highlight all system body list in left side
  888 + $scope.highlightBodySystemList(windowviewid);
  889 + $scope.loadbtnNavigator(windowviewid);
  890 +
  891 + if ($rootScope.isCallFromOtherModule) {
  892 + $scope.loadAAonCBData(windowviewid);
  893 +
  894 + var annotationData= $scope.aaOpenInOtherModules.annotationData;
  895 + // load annotation
  896 + if(annotationData!="" && annotationData!=undefined)
  897 + {
  898 + if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
856 899 {
857   - if(annotationData.shapeStates.length>0||annotationData.paintCanvasState.length>0)
858   - {
859   - //first draw shape and then store in object
860   - $rootScope.LoadCBSavedAnnotation("canvasAA_"+windowviewid,"canvasPaintAA_"+windowviewid,annotationData);
861   - }
862   - }
  900 + //first draw shape and then store in object
  901 + $rootScope.LoadCBSavedAnnotation(canvasDraw,canvasPaint,annotationData);
  902 + }
863 903 }
864   -
  904 + }
865 905 }
866 906 else
867 907 {
... ... @@ -984,9 +1024,13 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
984 1024 $("#navigatorBtn").attr("id", "navigatorBtn_" + windowviewid);
985 1025 $("#navigatorDiv").attr("id", "navigatorDiv_" + windowviewid);
986 1026 $("#comment-box").attr("id", "comment-box_" + windowviewid);
  1027 + $("#multiannotation").attr("id", "multiannotation_" + windowviewid);
987 1028 $("#selectedTermName").attr("id", "selectedTermName_" + windowviewid);
  1029 + $("#searchListDivAA").attr("id", "searchListDivAA_" + windowviewid);
  1030 + $("#searchlangaugeDiv").attr("id", "searchlangaugeDiv_" + windowviewid);
988 1031 $("#termlistfilter").attr("id", "termlistfilter_" + windowviewid);
989 1032 $("#btnSearchAA").attr("id", "btnSearchAA_" + windowviewid);
  1033 +
990 1034 $("#modItemImage").attr("id", "modItemImage_" + windowviewid);
991 1035  
992 1036 }
... ... @@ -1015,6 +1059,11 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1015 1059 // $("#AAImagePanel_" + windowviewid).off("click");
1016 1060  
1017 1061 $("#AAImagePanel_" + windowviewid).on('click', function (event) {
  1062 + $timeout(function () {
  1063 + $scope.IsSearchVisible=false;
  1064 +
  1065 + }, 200);
  1066 +
1018 1067 var pnlName=event.currentTarget.id;
1019 1068 $rootScope.resetMenuOptionOnClick(pnlName);
1020 1069  
... ... @@ -1024,8 +1073,86 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1024 1073 $rootScope.StoreTitleName(currentViewTitle);
1025 1074 $rootScope.StoreOrgImageName(imageName);
1026 1075 });
  1076 +
  1077 + //hide search data
  1078 + $("#topMenuBar .dropdown-toggle").on('click', function (event) {
  1079 +
  1080 + $timeout(function () {
  1081 + $scope.IsSearchVisible=false;
  1082 +
  1083 + }, 200);
  1084 + });
  1085 +
  1086 + //hide search data
  1087 + $("#termlistfilter_"+windowviewid).scroll(function (event) {
  1088 +
  1089 + $("#termlistfilter_"+windowviewid).focus();
  1090 + $scope.IsSearchVisible=true;
  1091 + });
  1092 + // register event for search list manager
  1093 + $(document).on("mouseover", "#termlistfilter_"+windowviewid+ " option", function (e) {
  1094 + $('#termlistfilter_'+windowviewid+ ' option[selected="selected"]').removeAttr("style");
  1095 + $('#termlistfilter_'+windowviewid+ ' option[selected="selected"]').attr("selected", false);
  1096 + $(this).css("background-color", "#3399FF");
  1097 +
  1098 + $(this).attr("selected", true);
  1099 + $scope.IsSearchVisible=true;
  1100 +
  1101 + });
  1102 +
  1103 + $('#termlistfilter_'+windowviewid).unbind('keyup');
  1104 + $('#termlistfilter_'+windowviewid).on('keyup', function (event) {
  1105 + $('#termlistfilter_'+windowviewid+ ' option[selected="selected"]').removeAttr("style");
  1106 + $('#termlistfilter_'+windowviewid+ ' option[selected="selected"]').attr("selected", false);
  1107 + $(this.selectedOptions[0]).attr("selected", true);
  1108 + $scope.IsSearchVisible=true;
  1109 + });
  1110 +
  1111 + $('#termlistfilter_'+windowviewid).unbind('keypress');
  1112 + $('#termlistfilter_'+windowviewid).on('keypress', function (e) {
  1113 + if ($('#termlistfilter_'+windowviewid+ ' option[selected="selected"]').attr("id") == "undefined") {
  1114 + return false;
  1115 + }
  1116 + else {
  1117 + if ($('#termlistfilter_'+windowviewid+ ' option[selected="selected"]').attr("id")) {
  1118 + if (e.keyCode == 13) {
  1119 + onSearchItemSelection($('#termlistfilter_'+windowviewid+ ' option[selected="selected"]').attr("id"),false);
  1120 + }
  1121 + }
  1122 + }
  1123 + });
1027 1124  
1028 1125 }
  1126 +
  1127 + $scope.langSearchLoad= function(windowviewid)
  1128 + {
  1129 + $('#searchlangaugeDiv_'+windowviewid).empty();
  1130 + $('#searchlangaugeDiv_'+windowviewid).css("display","none");
  1131 + var languageArray = $rootScope.lexiconLanguageArray;
  1132 +
  1133 + $("#btnSearchAA_"+windowviewid).parent().css("margin-right", "10px");
  1134 +
  1135 + if(languageArray.length>1)
  1136 + {
  1137 + $("#btnSearchAA_"+windowviewid).parent().css("margin-right", "-10px");
  1138 + $('#searchlangaugeDiv_'+windowviewid).css("display","block");
  1139 + var option='';
  1140 + for (var i = 0; i <= languageArray.length - 1; i++) {
  1141 + option=option+'<option value="' + languageArray[i].id + '">' + languageArray[i].language + '</option>';
  1142 + }
  1143 + var $all = $('#searchlangaugeDiv_'+windowviewid).append(
  1144 + '<div class="btn-group col-sm-3 col-xs-3 col-md-2" style="margin-right:-10px;padding-left:0px;">'+
  1145 + '<select class="form-control" id="searchLanguageLm_'+windowviewid+'" onblur="hideSearchList(event)" onchange="changeaaSearchLanguage(event)" style="height:30px;padding:4px 12px">'+
  1146 + option+
  1147 + '</select>'+
  1148 + '</div>'
  1149 + )
  1150 + $compile($all)($scope);
  1151 +
  1152 + }
  1153 +
  1154 + $scope.changeSearchText(windowviewid)
  1155 + }
1029 1156  
1030 1157 $scope.setPreClickBtnCss = function (windowviewid) {
1031 1158 if ($scope.aaOpenInOtherModules.showAllPins != undefined && $scope.aaOpenInOtherModules.showAllPins) {
... ... @@ -1065,18 +1192,36 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1065 1192 //get last zindex
1066 1193 var zindex= $("#aaDetailViewCanvas_"+windowviewid).css("z-index");
1067 1194 $("#aaDetailViewCanvas_"+windowviewid).remove();
  1195 +
1068 1196 //0.5 create canvas on the top of image so that I can draw a line over the canvas.
1069 1197 var canvas = document.createElement('canvas');
1070 1198 canvas.id = "aaDetailViewCanvas_"+windowviewid;
1071 1199 canvas.className = 'aaCanvas';
1072   - canvas.height = screen.height<=768?screen.height: screen.height-300// parseInt(relativeHeight + 10);
1073   - canvas.width = screen.width<=1024?screen.width: screen.width-200//parseInt(relativeWidth + 10);
  1200 + canvas.height =parseInt(relativeHeight)+20;
  1201 + canvas.width =parseInt(relativeWidth)+50;
1074 1202 canvas.style.left = '0px';
1075 1203 canvas.style.top = '0px';
1076 1204 canvas.style.position = "absolute";
1077 1205 canvas.style.zIndex = zindex;
1078 1206  
1079 1207 $("#canvasAADiv_" + windowviewid).append(canvas);
  1208 +
  1209 + var pnlName='AAImagePanel_' + windowviewid;
  1210 + var canvasDiv='canvasAADiv_' + windowviewid;
  1211 + var canvasDraw='canvasAA_' + windowviewid;
  1212 + var canvasPaint='canvasPaintAA_' + windowviewid;
  1213 + $scope.SetAAwindowStoreData(windowviewid, 'annotationData', {shapeStates:[],paintCanvasState:[]});
  1214 +
  1215 + $('#' + canvasDraw).removeLayers();//remove all old shape
  1216 + $("#" + canvasPaint).sketch().actions = [];//remove old paint data
  1217 +
  1218 + var extraheight=$('#aastickeyarea').height()+5;
  1219 + var extrawidth=$('.tools').width()+15;
  1220 + var canvasDIvHeight = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").height()-extraheight;
  1221 + var canvasDIvWidth = $('#AAImagePanel_' + windowviewid+ " .jsPanel-content").width()-extrawidth;
  1222 +
  1223 + var demoData= {shapeStates:[],paintCanvasState:[]};
  1224 + $rootScope.setAADAPanelCordinate(windowviewid,0,pnlName,canvasDiv,canvasDraw,canvasPaint,canvasDIvHeight,canvasDIvWidth,demoData);
1080 1225  
1081 1226 $scope.SetAAwindowStoreData(windowviewid,'isSliderChange',true);
1082 1227 var toolbtnID = '';
... ... @@ -1121,6 +1266,10 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1121 1266 scope.showAllPins(windowviewid,true);
1122 1267 break;
1123 1268 }
  1269 +
  1270 + //redraw annotation
  1271 + $scope.SetAAwindowStoreData(windowviewid,'isShowBodyWithCBPinData',true);
  1272 + $scope.ShowCBAnnotation(windowviewid);
1124 1273 // }
1125 1274 });
1126 1275 }
... ... @@ -1181,19 +1330,20 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1181 1330 selectedPins = $scope.GetAAwindowStoreData(windowviewid, 'selectedPins');
1182 1331  
1183 1332 var pinid = $scope.aaOpenInOtherModules.selectedPins[i];
1184   -
1185   - selectedPins.push(pinid);
1186   -
  1333 +
1187 1334 var pinvalue = 'PinArc_' + pinid;
1188 1335 var isFound = jQuery.inArray(pinvalue, activePinArray)
1189 1336 if (isFound == -1) {
1190 1337 activePinArray.push(pinvalue);
1191 1338 clickedPins.push({ 'id': pinid });
  1339 +
  1340 + if (selectedPins != undefined) {
  1341 + selectedPins.push(pinid);
  1342 + $scope.SetAAwindowStoreData(windowviewid, 'selectedPins', selectedPins);
  1343 + }
1192 1344 }
1193 1345 }
1194   - if (selectedPins != undefined) {
1195   - $scope.SetAAwindowStoreData(windowviewid, 'selectedPins', selectedPins);
1196   - }
  1346 +
1197 1347 }
1198 1348  
1199 1349 if ($scope.aaOpenInOtherModules.selectedCallouts != undefined) {
... ... @@ -1352,7 +1502,6 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1352 1502  
1353 1503 }
1354 1504  
1355   -
1356 1505 $scope.SetAAwindowStoreData(windowviewid,'isShowBodyWithCBPinData',false);
1357 1506 $rootScope.AAWindowLoadComplete=true;
1358 1507  
... ... @@ -1474,7 +1623,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1474 1623 $scope.activePinOnSliderChange(windowviewid);
1475 1624 }
1476 1625  
1477   - $scope.EnableUI();
  1626 + $scope.EnableAAUI(windowviewid);
1478 1627 }
1479 1628  
1480 1629 }
... ... @@ -1497,13 +1646,13 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1497 1646 }
1498 1647 },
1499 1648 function (error) {
1500   - $scope.EnableUI();
  1649 + $scope.EnableAAUI(windowviewid);
1501 1650 console.log(' error in showAllPins: ' + error.statusText);
1502 1651 })
1503 1652 }
1504 1653  
1505 1654 $scope.FilterByImage = function (moduleId, query,windowviewid) {
1506   - $scope.DisableUI();
  1655 + $scope.DisableAAUI(windowviewid);
1507 1656 if (windowviewid == undefined) {
1508 1657 windowviewid = $rootScope.MULTI_VIEW_ID;
1509 1658 }
... ... @@ -1671,12 +1820,12 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1671 1820 }
1672 1821  
1673 1822 $timeout(function () {
1674   - $scope.EnableUI();
  1823 + $scope.EnableAAUI(windowviewid);
1675 1824 $rootScope.ResetGridListLength();
1676 1825 }, 500);
1677 1826 },
1678 1827 function (error) {
1679   - $timeout(function () { $scope.EnableUI(); }, 500);
  1828 + $timeout(function () { $scope.EnableAAUI(windowviewid); }, 500);
1680 1829 console.log(' error: ' + error.statusText);
1681 1830 }
1682 1831 )
... ... @@ -1684,29 +1833,18 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1684 1833  
1685 1834 $rootScope.ResetGridListLength=function()
1686 1835 {
1687   - var $ua = navigator.userAgent;
1688   -
1689   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
  1836 + var innerheight =$(window).innerHeight();
1690 1837  
1691   - var srchHeight=$('.breadcrumb').height();
1692   - var gridheight=screen.height-srchHeight-128;
1693   - var listheight=screen.height-srchHeight-352;
1694   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
1695   - $('#ListViewDiv').css({"height":listheight,"overflow":"auto"});
1696   - }
1697   - else
1698   - {
1699   - var srchHeight=$('.breadcrumb').height();
1700   - var gridheight=screen.height-srchHeight-276;
1701   - var listheight=screen.height-srchHeight-500;
1702   - $('#grid-view').css({"height":gridheight,"overflow":"auto"});
1703   - $('#ListViewDiv').css({"height":listheight,"overflow":"auto"});
1704   - }
1705   -
  1838 + var srchHeight=$('.breadcrumb').height();
  1839 + var gridheight=innerheight-srchHeight-135;
  1840 + var listheight=innerheight-srchHeight-358;
  1841 + $('#grid-view').css({"height":gridheight,"overflow":"auto","min-height":"160px"});
  1842 + $('#ListViewDiv').css({"height":listheight,"overflow":"auto","min-height":"100px"});
  1843 +
1706 1844 }
1707 1845  
1708 1846 $scope.Reset = function (moduleId, query,windowviewid) {
1709   - $scope.DisableUI();
  1847 + $scope.DisableAAUI(windowviewid);
1710 1848 if(windowviewid==undefined) // call from also home controller list manager
1711 1849 windowviewid= $rootScope.MULTI_VIEW_ID;
1712 1850  
... ... @@ -1743,6 +1881,9 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1743 1881 if (typeof event == "object") {
1744 1882 var len= (event.target.parentElement.parentElement.id).split("_").length;
1745 1883 var windowviewid = (event.target.parentElement.parentElement.id).split("_")[len-1];
  1884 +
  1885 + $('#selectedTermName_' + windowviewid).val('');
  1886 + $("#selectedTermName_" + windowviewid).attr("name", '0');
1746 1887 if (event.currentTarget.title == $("#bodySystemList_" + windowviewid + " li.activeAASystemSelect a").attr("title")) {
1747 1888  
1748 1889 }
... ... @@ -1760,6 +1901,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1760 1901 $scope.SetAAwindowStoreData(windowviewid, 'activePinArray', []);
1761 1902 $scope.SetAAwindowStoreData(windowviewid, 'selectedPins', []);
1762 1903 $scope.SetAAwindowStoreData(windowviewid, 'SelectedSystemID', id);
  1904 + $scope.SetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate', []);
1763 1905 }
1764 1906  
1765 1907 var isHidePinBtnClicked=$scope.GetAAwindowStoreData(windowviewid,'isHidePinBtnClicked');
... ... @@ -1778,7 +1920,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1778 1920 $(bodySystemListObj[i].parentElement).addClass("activeAASystemSelect");
1779 1921 }
1780 1922 }
1781   - $scope.DisableUI();
  1923 + $scope.DisableAAUI(windowviewid);
1782 1924  
1783 1925 $scope.removeSpeechBubble(windowviewid);
1784 1926 if (SelectedSystemID == "0") {
... ... @@ -1875,7 +2017,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1875 2017  
1876 2018 var SelectedSystemTitle = $("#bodySystemList_" + windowviewid + " li.activeAASystemSelect a").attr("title");
1877 2019  
1878   - $scope.DisableUI();
  2020 + $scope.DisableAAUI(windowviewid);
1879 2021  
1880 2022 var isHidePinBtnClicked=$scope.GetAAwindowStoreData(windowviewid,'isHidePinBtnClicked');
1881 2023 $scope.removeSpeechBubble(windowviewid);
... ... @@ -1908,6 +2050,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1908 2050 $scope.SetAAwindowStoreData(windowviewid, 'activePinArray', []);
1909 2051 $scope.SetAAwindowStoreData(windowviewid, 'selectedPins', []);
1910 2052 $scope.SetAAwindowStoreData(windowviewid, 'SelectedSystemID', SelectedSystemID);
  2053 + $scope.SetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate', []);
1911 2054 }
1912 2055 var clickedPins=$scope.GetAAwindowStoreData(windowviewid,'clickedPins');
1913 2056 if(clickedPins.length>0)
... ... @@ -1986,16 +2129,6 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
1986 2129 .select();
1987 2130  
1988 2131  
1989   - var activePinArray=$scope.GetAAwindowStoreData(windowviewid,'activePinArray');
1990   - for (var i = 0; i <= pinDataWithFirstTermNumber.length - 1; i++) {
1991   - var pinvalue='PinArc_' + pinDataWithFirstTermNumber[i]._PinId;
1992   - var isFound = jQuery.inArray(pinvalue, activePinArray)
1993   - if (isFound == -1) {
1994   - activePinArray.push('PinArc_' + pinDataWithFirstTermNumber[i]._PinId);
1995   - }
1996   -
1997   - }
1998   -
1999 2132 $scope.MultiLanguageAnnationArray = [];
2000 2133  
2001 2134 $scope.GetAnnotationBasedOnActualTermNo(pinTermNumber,windowviewid);
... ... @@ -2053,29 +2186,25 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2053 2186 if (pinDataWithFirstTermNumber.length > 1) {
2054 2187 isSameTermWithMultiPin = true;
2055 2188 }
2056   - var selectedPins=$scope.GetAAwindowStoreData(windowviewid,'selectedPins');
2057 2189 var clickedPins=$scope.GetAAwindowStoreData(windowviewid,'clickedPins');
  2190 + var activePinArray=$scope.GetAAwindowStoreData(windowviewid,'activePinArray');
  2191 + var selectedPins=$scope.GetAAwindowStoreData(windowviewid,'selectedPins');
  2192 +
2058 2193 angular.forEach(pinDataWithFirstTermNumber, function (value, key) {
2059   - if (isBodySystemSelected == true) {
2060   -
2061   - clickedPins.push({ 'id': value._PinId });
2062   - //selectedPins.push(value._PinId);
  2194 + if (isBodySystemSelected == true) {
2063 2195 $scope.SetAAwindowStoreData(windowviewid,'isBodySystemSelected',false);
2064 2196 }
2065 2197 var headX = (parseInt(value._HeadX));
2066 2198 var headY = (parseInt(value._HeadY));
2067   - $scope.createSpeechBubble(parseInt(headX) + 10, parseInt(headY) + 10,0,0, value._PinId, isCtrlPressed, isPinClicked, isSameTermWithMultiPin,windowviewid);
2068   -
2069   - // remove annotation/speechBubble while resize
2070   - if(isResize)
2071   - {
2072   - $scope.removeSpeechBubble(windowviewid);
2073   - }
2074   -
2075   - //Save Cordinate for show annotation as per Pin
2076   -
2077   - if ($rootScope.isCallFromOtherModule) {
2078   -
  2199 +
  2200 + var pinvalue='PinArc_' + value._PinId;
  2201 + var isFound = jQuery.inArray(pinvalue, activePinArray)
  2202 + if (isFound == -1) {
  2203 + activePinArray.push(pinvalue);
  2204 + clickedPins.push({ 'id': value._PinId });
  2205 + selectedPins.push(value._PinId);
  2206 +
  2207 + //Save Cordinate for show annotation as per Pin
2079 2208 var CBselectedpinCordinate = $scope.GetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate');
2080 2209 CBselectedpinCordinate.push(
2081 2210 {
... ... @@ -2085,12 +2214,24 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2085 2214 "lx": headX+30,
2086 2215 "pinId": value._PinId
2087 2216 });
  2217 +
2088 2218 }
  2219 +
  2220 + // remove annotation/speechBubble while resize
  2221 + if(isResize)
  2222 + {
  2223 + $scope.removeSpeechBubble(windowviewid);
  2224 + }
  2225 + else
  2226 + {
  2227 + $scope.createSpeechBubble(parseInt(headX) + 10, parseInt(headY) + 10,0,0, value._PinId, isCtrlPressed, isPinClicked, isSameTermWithMultiPin,windowviewid);
  2228 +
  2229 + }
2089 2230  
2090 2231 })
2091 2232  
2092 2233 }
2093   - $scope.EnableUI();
  2234 + $scope.EnableAAUI(windowviewid);
2094 2235  
2095 2236 }
2096 2237  
... ... @@ -2229,6 +2370,11 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2229 2370 //
2230 2371 $scope.ShowHideAnnotationText(windowviewid);
2231 2372  
  2373 + if ($("#hidePinBtn_" + windowviewid).hasClass("btn-primary")) {
  2374 +
  2375 + $scope.hideSpeechBubble(windowviewid);
  2376 + }
  2377 +
2232 2378 }
2233 2379  
2234 2380 $scope.createSpeechBubbleBasedOnAnnotationLength = function (x, y, lx, ly, PinId, windowviewid) {
... ... @@ -2425,20 +2571,17 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2425 2571 var windowviewid = (clickedSpeechBubbleId).split("_")[len - 1];
2426 2572 var sppechBubbleId = $(this).attr("id").substring(12);
2427 2573 var PinId = sppechBubbleId.split("_")[0];
  2574 + $rootScope.UnsaveCurriculum = true;
  2575 + $timeout(function () {
  2576 + var CBselectedpinCordinate = $scope.GetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate');
  2577 + var BubleObj = document.getElementById(clickedSpeechBubbleId);
  2578 + var CBselectedpinCordinate = new jinqJs()
  2579 + .from(CBselectedpinCordinate)
  2580 + .update(function (coll, index) { coll[index].lx = BubleObj.offsetLeft; coll[index].ly = BubleObj.offsetTop; })
  2581 + .at("pinId == " + PinId);
2428 2582  
2429   - if ($rootScope.isCallFromOtherModule) {
2430   - $rootScope.UnsaveCurriculum = true;
2431   - $timeout(function () {
2432   - var CBselectedpinCordinate = $scope.GetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate');
2433   - var BubleObj = document.getElementById(clickedSpeechBubbleId);
2434   - var CBselectedpinCordinate = new jinqJs()
2435   - .from(CBselectedpinCordinate)
2436   - .update(function (coll, index) { coll[index].lx = BubleObj.offsetLeft; coll[index].ly = BubleObj.offsetTop; })
2437   - .at("pinId == " + PinId);
2438   -
2439   - }, 100);
  2583 + }, 100);
2440 2584  
2441   - }
2442 2585 }
2443 2586  
2444 2587 });
... ... @@ -2454,17 +2597,29 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2454 2597 $('#speechBubble' + pinId+'_'+windowviewid).remove();
2455 2598 $("#speechBubbleDraggedLine" + pinId+'_'+windowviewid).remove();
2456 2599 $("#speechBubbleLine" + pinId + '_' + windowviewid).remove();
  2600 + var CBselectedpinCordinate = [];
  2601 + CBselectedpinCordinate = $scope.GetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate');
  2602 + CBselectedpinCordinate = new jinqJs()
  2603 + .from(CBselectedpinCordinate)
  2604 + .delete().at("pinId == " + pinId).select();
2457 2605  
2458   - if ($rootScope.isCallFromOtherModule) {
2459   - var CBselectedpinCordinate = [];
2460   - CBselectedpinCordinate = $scope.GetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate');
2461   - CBselectedpinCordinate = new jinqJs()
2462   - .from(CBselectedpinCordinate)
2463   - .delete().at("pinId == " + pinId).select();
  2606 + $scope.SetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate', CBselectedpinCordinate);
  2607 +
  2608 + var clickedPins=$scope.GetAAwindowStoreData(windowviewid,'clickedPins');
  2609 + clickedPins = new jinqJs()
  2610 + .from(clickedPins)
  2611 + .delete().at("id == " + pinId).select();
  2612 +
  2613 + $scope.SetAAwindowStoreData(windowviewid, 'clickedPins', clickedPins);
2464 2614  
2465   - $scope.SetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate', CBselectedpinCordinate);
2466   - $rootScope.UnsaveCurriculum = true;
  2615 + var activePinArray=$scope.GetAAwindowStoreData(windowviewid,'activePinArray');
  2616 +
  2617 + const index = activePinArray.indexOf("PinArc_"+pinId);
  2618 + if (index > -1) {
  2619 + activePinArray.splice(index, 1);
2467 2620 }
  2621 + $scope.GetAAwindowStoreData(windowviewid,'activePinArray',activePinArray);
  2622 + $rootScope.UnsaveCurriculum = true;
2468 2623  
2469 2624 });
2470 2625  
... ... @@ -2579,92 +2734,118 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2579 2734 click: function (clickedPin) {
2580 2735  
2581 2736 $rootScope.UnsaveCurriculum =true;
  2737 + $('#selectedTermName_' + windowviewid).val('');
  2738 + $("#selectedTermName_" + windowviewid).attr("name", '0');
2582 2739 //birendra
  2740 + var iskeyctrlActive= $scope.GetAAwindowStoreData(windowviewid, 'keyctrl');//for iPad
2583 2741 // for mac os Command key use for multi selection
2584   - if (clickedPin.event.ctrlKey == false && clickedPin.event.metaKey == false) {
  2742 + if (clickedPin.event.ctrlKey == false && clickedPin.event.metaKey == false && !iskeyctrlActive) {
2585 2743 $scope.SetAAwindowStoreData(windowviewid, 'clickedPins', []);
2586 2744 $scope.SetAAwindowStoreData(windowviewid, 'selectedPins', []);
2587 2745 $scope.SetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate', []);
  2746 + $scope.SetAAwindowStoreData(windowviewid,'activePinArray',[]);
2588 2747 }
2589   - var pinID = (clickedPin.name).substring(7, (clickedPin.name).length);
2590   - var aaPinData = $scope.GetAAwindowStoreData(windowviewid,'aaPinData');
2591   - var pinData = new jinqJs()
2592   - .from(aaPinData)
2593   - .where("_PinId == " + pinID)
2594   - .select();
2595   -
2596   -
2597   - var pinTermNumber = pinData[0]._TermId;
2598   -
2599   - var pinWithSameTerm = new jinqJs()
2600   -
2601   - .from(aaPinData)
2602   - .where("_TermId == " + pinTermNumber)
2603   - .select();
2604   - if (pinWithSameTerm != undefined && pinWithSameTerm != null && pinWithSameTerm.length > 0) {
2605   - var selectedPins = $scope.GetAAwindowStoreData(windowviewid, 'selectedPins');
2606   - var clickedPins=$scope.GetAAwindowStoreData(windowviewid,'clickedPins');
2607   - for (var i = 0; i < pinWithSameTerm.length; i++) {
2608   - clickedPins.push({ 'id': pinWithSameTerm[i]._PinId });
2609   - selectedPins.push(pinWithSameTerm[i]._PinId);
2610   - }
2611   - }
2612   -
2613   - $scope.SetAAwindowStoreData(windowviewid,'isSelectedPinBtnClickedAftrSliderCange',false);
2614   - var selectedPinData = new jinqJs()
2615   - .from(aaPinData)
2616   - .where("_PinId == " + pinID)
2617   - .select();
2618   -
  2748 +
2619 2749 var activePinArray=$scope.GetAAwindowStoreData(windowviewid,'activePinArray');
2620   - if (clickedPin.event.ctrlKey == true||clickedPin.event.metaKey == true) {
2621   - var isFound = jQuery.inArray(clickedPin.name, activePinArray)
2622   - if (isFound == -1) {
2623   - activePinArray.push(clickedPin.name);
2624   - }
2625   - var radialAfterClick = $('#aaDetailViewCanvas_' + windowviewid).createGradient({
2626   - x1: 50, y1: 50,
2627   - x2: 50, y2: 50,
2628   - r1: 10, r2: 30,
2629   - c1: 'rgba(100, 50, 0,0)',
2630   - c2: 'rgb(126, 187, 83)'
2631   - });
2632   - clickedPin.fillStyle = radialAfterClick;
2633   - $scope.showAnnotation(selectedPinData, true, true, false,false, windowviewid);
2634   - }
2635   - else {
2636   - $scope.SetAAwindowStoreData(windowviewid,'activePinArray',[]);
2637   - var activePin = [];
2638   - activePin.push(clickedPin.name);
2639   - $scope.SetAAwindowStoreData(windowviewid,'activePinArray',activePin);
2640   -
2641   - var radial = $('#aaDetailViewCanvas_' + windowviewid).createGradient({
2642   - x1: 50, y1: 50,
2643   - x2: 50, y2: 50,
2644   - r1: 10, r2: 30,
2645   - c1: 'rgba(100, 50, 0,0)',
2646   - c2: 'rgb(216, 216, 216)'
2647   - });
2648   -
2649   -
2650   - $('#aaDetailViewCanvas_' + windowviewid).setLayers({
2651   - fillStyle: radial,
2652   - }).drawLayers();
2653   -
2654   - //change the head color to green
2655   - var radialAfterClick = $('#aaDetailViewCanvas_' + windowviewid).createGradient({
2656   - x1: 50, y1: 50,
2657   - x2: 50, y2: 50,
2658   - r1: 10, r2: 30,
2659   - c1: 'rgba(100, 50, 0,0)',
2660   - c2: 'rgb(126, 187, 83)'
2661   - });
  2750 + var isFound = jQuery.inArray(clickedPin.name, activePinArray)
  2751 + if (isFound == -1) {
  2752 + activePinArray.push(clickedPin.name);
  2753 +
  2754 + var pinID = (clickedPin.name).substring(7, (clickedPin.name).length);
  2755 + var aaPinData = $scope.GetAAwindowStoreData(windowviewid,'aaPinData');
  2756 + var pinData = new jinqJs()
  2757 + .from(aaPinData)
  2758 + .where("_PinId == " + pinID)
  2759 + .select();
  2760 +
  2761 +
  2762 + var pinTermNumber = pinData[0]._TermId;
  2763 +
  2764 + var pinWithSameTerm = new jinqJs()
  2765 +
  2766 + .from(aaPinData)
  2767 + .where("_TermId == " + pinTermNumber)
  2768 + .select();
  2769 + if (pinWithSameTerm != undefined && pinWithSameTerm != null && pinWithSameTerm.length > 0) {
  2770 + var selectedPins = $scope.GetAAwindowStoreData(windowviewid, 'selectedPins');
  2771 + var clickedPins=$scope.GetAAwindowStoreData(windowviewid,'clickedPins');
  2772 + for (var i = 0; i < pinWithSameTerm.length; i++) {
  2773 + clickedPins.push({ 'id': pinWithSameTerm[i]._PinId });
  2774 + selectedPins.push(pinWithSameTerm[i]._PinId);
  2775 + //some time get multiple pinid on selected termid
  2776 + var pinvalue='PinArc_' + pinWithSameTerm[i]._PinId;
  2777 + var isFound = jQuery.inArray(pinvalue, activePinArray)
  2778 + if (isFound == -1) {
  2779 + activePinArray.push(pinvalue);
  2780 + }
2662 2781  
2663   - clickedPin.fillStyle = radialAfterClick;
2664   - $scope.showAnnotation(selectedPinData, false, true, false,false, windowviewid);
  2782 + var headX = (parseInt(pinWithSameTerm[i]._HeadX));
  2783 + var headY = (parseInt(pinWithSameTerm[i]._HeadY));
  2784 + //Save Cordinate for show annotation as per Pin
  2785 + var CBselectedpinCordinate = $scope.GetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate');
  2786 + CBselectedpinCordinate.push(
  2787 + {
  2788 + "hy": headY,
  2789 + "ly": headY+10,
  2790 + "hx": headX,
  2791 + "lx": headX+30,
  2792 + "pinId": pinWithSameTerm[i]._PinId
  2793 + });
2665 2794  
2666   - }
  2795 + }
  2796 + }
  2797 +
  2798 + $scope.SetAAwindowStoreData(windowviewid,'isSelectedPinBtnClickedAftrSliderCange',false);
  2799 + var selectedPinData = new jinqJs()
  2800 + .from(aaPinData)
  2801 + .where("_PinId == " + pinID)
  2802 + .select();
  2803 +
  2804 + if (clickedPin.event.ctrlKey == true||clickedPin.event.metaKey == true ||iskeyctrlActive) {
  2805 +
  2806 + var radialAfterClick = $('#aaDetailViewCanvas_' + windowviewid).createGradient({
  2807 + x1: 50, y1: 50,
  2808 + x2: 50, y2: 50,
  2809 + r1: 10, r2: 30,
  2810 + c1: 'rgba(100, 50, 0,0)',
  2811 + c2: 'rgb(126, 187, 83)'
  2812 + });
  2813 + clickedPin.fillStyle = radialAfterClick;
  2814 + $scope.showAnnotation(selectedPinData, true, true, false,false, windowviewid);
  2815 + }
  2816 + else
  2817 + {
  2818 + var radial = $('#aaDetailViewCanvas_' + windowviewid).createGradient({
  2819 + x1: 50, y1: 50,
  2820 + x2: 50, y2: 50,
  2821 + r1: 10, r2: 30,
  2822 + c1: 'rgba(100, 50, 0,0)',
  2823 + c2: 'rgb(216, 216, 216)'
  2824 + });
  2825 +
  2826 +
  2827 + $('#aaDetailViewCanvas_' + windowviewid).setLayers({
  2828 + fillStyle: radial,
  2829 + }).drawLayers();
  2830 +
  2831 + //change the head color to green
  2832 + var radialAfterClick = $('#aaDetailViewCanvas_' + windowviewid).createGradient({
  2833 + x1: 50, y1: 50,
  2834 + x2: 50, y2: 50,
  2835 + r1: 10, r2: 30,
  2836 + c1: 'rgba(100, 50, 0,0)',
  2837 + c2: 'rgb(126, 187, 83)'
  2838 + });
  2839 +
  2840 + clickedPin.fillStyle = radialAfterClick;
  2841 + $scope.showAnnotation(selectedPinData, false, true, false,false, windowviewid);
  2842 +
  2843 + }
  2844 +
  2845 +
  2846 + }
2667 2847  
  2848 +
2668 2849 }
2669 2850  
2670 2851 }).drawLayers();
... ... @@ -2702,77 +2883,87 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2702 2883  
2703 2884 }
2704 2885  
  2886 + //Reload Body View after setting Change
  2887 + $rootScope.reloadAABodyViewEvent = function (isLexiconChange, windowviewid) {
  2888 +
  2889 + $scope.loadaaBodyViewChangedBySetting(windowviewid,isLexiconChange);
  2890 + }
  2891 +
  2892 + $scope.loadaaBodyViewChangedBySetting = function (windowviewid, isLexiconChange) {
  2893 + $scope.DisableAAUI(windowviewid);
  2894 +
  2895 + // store image for export while click on panel
  2896 + var currentViewTitle = $scope.GetAAwindowStoreData(windowviewid, 'currentViewTitle');
  2897 + var imageName = $scope.GetAAwindowStoreData(windowviewid, 'imageName');
  2898 +
  2899 + $rootScope.StoreTitleName(currentViewTitle);
  2900 + $rootScope.StoreOrgImageName(imageName);
  2901 +
  2902 + var timeintval=$scope.SetAAwindowStoreData(windowviewid,'intervalObject');
  2903 + if(isLexiconChange)
  2904 + {
  2905 + // remove first annotation text
  2906 + $scope.removeSpeechBubble(windowviewid);
  2907 +
  2908 + //load term data and also language data
  2909 + $rootScope.loadPinSearchData(windowviewid);
  2910 + timeintval = $interval(function(){loadaaBodyViewBySetting(windowviewid)},5);
  2911 + $scope.SetAAwindowStoreData(windowviewid,'intervalObject',timeintval);
  2912 + function loadaaBodyViewBySetting(panid) {
  2913 + var pinTermData = $scope.GetAAwindowStoreData(panid, 'pinTermData');
  2914 + if (pinTermData!=null) {
  2915 + var intval=$scope.GetAAwindowStoreData(panid,'intervalObject');
  2916 + $scope.stopVocab(intval);
  2917 + $scope.langSearchLoad(panid);
  2918 + $scope.SetAAwindowStoreData(panid,'isShowBodyWithCBPinData',true);
  2919 + //loading annotation
  2920 + $scope.ShowCBAnnotation(panid);
  2921 +
  2922 + $timeout(function () {
  2923 + if ($rootScope.isListManagerMenuSelected) {
  2924 + var selectedPanel = $("#viewName option:selected").val();
  2925 + var winid = (selectedPanel).split("_")[1];
  2926 + if(winid==panid)
  2927 + {
  2928 + $scope.DisableAAUI(panid);
  2929 + $rootScope.aalistManagerEvent(panid);
  2930 + }
  2931 + }
  2932 +
  2933 + }, 200);
  2934 +
  2935 + $scope.EnableAAUI(panid);
  2936 + }
  2937 + else
  2938 + {
  2939 + console.log("waiting for search term Data");
  2940 + }
  2941 + }
  2942 +
  2943 + $scope.stopVocab = function (intvalobj) {
  2944 + if (angular.isDefined(intvalobj)) {
  2945 + $interval.cancel(intvalobj);
  2946 + intvalobj = undefined;
  2947 + }
  2948 + };
  2949 +
  2950 + }
  2951 +
  2952 + }
  2953 +
2705 2954 $rootScope.aaloadSearchData = function (windowviewid) {
2706 2955  
2707 2956 var imageId= $scope.GetAAwindowStoreData(windowviewid,'imageId');
  2957 + $scope.SetAAwindowStoreData(windowviewid,'pinTermData',[]);
2708 2958 var promise = ModuleService.getTermTextDataForAAImage(imageId)
2709 2959 .then(
2710 2960 function (response) {
2711 2961 var AAPinTermData = response.data.PinTermData.TermData;
2712 2962 $scope.SetAAwindowStoreData(windowviewid,'AAPinTermData',AAPinTermData)
2713 2963  
2714   - $scope.EnableUI();
2715   -
2716   - $scope.SetAAwindowStoreData(windowviewid,'pinTermData',[]);
  2964 + $scope.EnableAAUI(windowviewid);
  2965 + $rootScope.loadPinSearchData(windowviewid);
2717 2966  
2718   - var primaryLexicon = $rootScope.lexiconLanguageArray[0].id;
2719   - var matchedLanguageTermData = new jinqJs()
2720   - .from(AAPinTermData)
2721   - .where('_LanguageId == ' + primaryLexicon)
2722   - .select();
2723   - var sortedTermTextArray = [];
2724   - for (var i = 0; i < matchedLanguageTermData.length; i++) {
2725   - sortedTermTextArray.push(matchedLanguageTermData[i]._TermText);
2726   - sortedTermTextArray.sort();
2727   - }
2728   -
2729   - var pinTermData=$scope.GetAAwindowStoreData(windowviewid,'pinTermData');
2730   -
2731   - for (var i = 0; i <= sortedTermTextArray.length - 1; i++) {
2732   - for (var j = 0; j <= matchedLanguageTermData.length - 1; j++) {
2733   - if (matchedLanguageTermData[j]._TermText == sortedTermTextArray[i]) {
2734   - pinTermData.push({ "LanguageId": matchedLanguageTermData[j]._LanguageId, "TermNumber": matchedLanguageTermData[j]._TermNumber, "TermTxt": matchedLanguageTermData[j]._TermText });
2735   - break;
2736   - }
2737   - }
2738   - }
2739   -
2740   - $("#AABodySystems").empty();
2741   - $("#bodySystems").css("display", "none");
2742   - $("#langaugeDivLm").css("display", "none");
2743   - $("#AABodySystems").css("display", "block");
2744   - $("#bodySystemList_" + windowviewid + " li a").each(function (key, value) {
2745   - var sysid= $(this).attr('id') + '_' +windowviewid;
2746   -
2747   - if ($(this).parent().hasClass("disabledSelectedSystem")) {
2748   - var $systemOptions = $('<option id=' + sysid+' disabled style="color:#d0c9c9" >' + $(this).text() + '</option>').appendTo("#AABodySystems")
2749   - $compile($systemOptions)($scope);
2750   - }
2751   - else{
2752   - var $systemOptions = $('<option id=' + sysid+' >' + $(this).text() + '</option>').appendTo("#AABodySystems")
2753   - $compile($systemOptions)($scope);
2754   - }
2755   -
2756   - });
2757   -
2758   - $scope.$watch('pinTermData', function (newValue, oldValue, scope) {
2759   -
2760   - $('#termlistfilter_' + windowviewid).empty();
2761   - if (pinTermData.length > 0) {
2762   - $timeout(function () {
2763   - console.log('pinTermData= ' + pinTermData.length);
2764   - $('#termList').empty();
2765   - $('#termlistfilter_' + windowviewid).empty();
2766   - for (var j = 0; j < pinTermData.length; j++) {
2767   - var $el = $('<li><a id= "' + pinTermData[j].TermNumber +'_' +windowviewid+ '" href="" onclick="onSearchItemSelection(this.id)" >' + pinTermData[j].TermTxt + '</a></li>').appendTo('#termlistfilter_' + windowviewid)
2768   - $compile($el)($scope);
2769   - var $selectedOptions = $('<option title= "' + pinTermData[j].TermTxt + '" id= "' + pinTermData[j].TermNumber +'_' +windowviewid+ '" >' + pinTermData[j].TermTxt + '</option>').appendTo('#termList')
2770   -
2771   - $compile($selectedOptions)($scope);
2772   - }
2773   - }, 500);
2774   - }
2775   - })
2776 2967 },
2777 2968 function (error) {
2778 2969 // handle errors here
... ... @@ -2782,118 +2973,349 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2782 2973  
2783 2974  
2784 2975 }
  2976 + $rootScope.loadPinSearchData = function (windowviewid) {
  2977 + var AAPinTermData= $scope.GetAAwindowStoreData(windowviewid,'AAPinTermData')
  2978 + for (var i = 0; i <= $rootScope.lexiconLanguageArray.length - 1; i++) {
  2979 +
  2980 + var lexiconId = $rootScope.lexiconLanguageArray[i].id;
  2981 + var matchedLanguageTermData = new jinqJs()
  2982 + .from(AAPinTermData)
  2983 + .where('_LanguageId == ' + lexiconId)
  2984 + .select();
  2985 +
  2986 + if(matchedLanguageTermData.length>0)
  2987 + {
  2988 + if(i==0)
  2989 + {
  2990 + $scope.SetAAwindowStoreData(windowviewid, 'pinTermData', matchedLanguageTermData);
  2991 + }
  2992 + else
  2993 + {
  2994 + var pinTermData = $scope.GetAAwindowStoreData(windowviewid, 'pinTermData');
  2995 + var result=pinTermData.concat(matchedLanguageTermData);
  2996 + $scope.SetAAwindowStoreData(windowviewid, 'pinTermData', result);
  2997 +
  2998 + }
  2999 + }
  3000 +
  3001 + }
  3002 +
  3003 + }
  3004 +
2785 3005 //event remove it fire multiple time
2786 3006 $rootScope.aalistManagerEvent=function(windowviewid){
2787   - $scope.DisableUI();
2788 3007  
2789   - $rootScope.aaloadSearchData(windowviewid);
  3008 + $scope.DisableAAUI(windowviewid);
  3009 + $("#langaugeDivLm").css("display", "none");
  3010 +
  3011 + $("#AABodySystems").empty();
  3012 + $("#bodySystems").css("display", "none");
  3013 + $("#langaugeDivLm").css("display", "none");
  3014 + $("#AABodySystems").css("display", "block");
  3015 + $('#termList').empty();
  3016 +
  3017 + var totalstructure=0;
  3018 + $rootScope.isListManagerMenuSelected = true;
  3019 +
  3020 + $scope.SetAAwindowStoreData(windowviewid,'totalstructureLm',0);
  3021 + var languageArray = $rootScope.lexiconLanguageArray;
  3022 +
  3023 + if(languageArray.length>1)
  3024 + {
  3025 + $("#langaugeDivLm").css("display", "block");
  3026 + $("#selectLanguageLm").empty();
  3027 + for (var i = 0; i <= languageArray.length - 1; i++) {
  3028 + $('#selectLanguageLm').append('<option value="' + languageArray[i].id + '">' + languageArray[i].language + '</option>');
  3029 + }
  3030 + }
  3031 +
  3032 + var $all = $('<option id="0_'+windowviewid+'" selected="">All</option>').appendTo('#AABodySystems');
  3033 + $compile($all)($scope);
  3034 +
  3035 + $("#bodySystemList_" + windowviewid + " li a").each(function (key, value) {
  3036 + if($(this).attr('id')!="0")
  3037 + {
  3038 + var sysid= $(this).attr('id') + '_' +windowviewid;
  3039 +
  3040 + if ($(this).parent().hasClass("disabledSelectedSystem")) {
  3041 + var $systemOptions = $('<option id=' + sysid+' disabled style="color:#d0c9c9" >' + $(this).text() + '</option>').appendTo("#AABodySystems")
  3042 + $compile($systemOptions)($scope);
  3043 + }
  3044 + else{
  3045 + var $systemOptions = $('<option id=' + sysid+' >' + $(this).text() + '</option>').appendTo("#AABodySystems")
  3046 + $compile($systemOptions)($scope);
  3047 + }
  3048 + }
  3049 +
  3050 + });
  3051 +
  3052 +
  3053 + // primary language
  3054 + var langId=languageArray[0].id;
  3055 + $scope.loadaaListManger(windowviewid,langId,totalstructure);
  3056 +
  3057 + }
  3058 +
  3059 + $rootScope.changeLanguageLmEventAA = function (windowviewid) {
  3060 + $scope.DisableAAUI(windowviewid);
  3061 + $('#termList').empty();
  3062 + var totalstructure=0;
  3063 + $scope.SetAAwindowStoreData(windowviewid,'totalstructure',0);
  3064 +
  3065 + var langIdvalue = $("#selectLanguageLm option:selected").val();
  3066 +
  3067 + setTimeout(function () {
  3068 +
  3069 + if(langIdvalue!=undefined)
  3070 + {
  3071 + var selectedLanguage = new jinqJs()
  3072 + .from( $rootScope.lexiconLanguageArray)
  3073 + .where('id == ' + langIdvalue)
  3074 + .select()[0];
  3075 +
  3076 + var langId=selectedLanguage.id;
  3077 +
  3078 + }
  3079 + else
  3080 + {
  3081 + var langId=$rootScope.lexiconLanguageArray[0].id;
  3082 + }
  3083 +
  3084 + var sysid = $("#AABodySystems option:selected").attr("id");
  3085 + var bodysystemId = (sysid).split("_")[0];
  3086 + if(bodysystemId=="0")
  3087 + {
  3088 + $scope.loadaaListManger(windowviewid,langId,totalstructure);
  3089 + }
  3090 + else
  3091 + {
  3092 + $scope.aasystemMatchTermLoad(bodysystemId,windowviewid,langId,totalstructure);
  3093 + }
  3094 +
  3095 + },100)
  3096 +
  3097 + }
  3098 +
  3099 + $rootScope.LoadMoreLmEventAA = function (windowviewid) {
  3100 + $scope.DisableAAUI(windowviewid);
  3101 + var langIdvalue = $("#selectLanguageLm option:selected").val();
  3102 + var totalstructure = $scope.GetAAwindowStoreData(windowviewid, 'totalstructureLm');
  3103 +
  3104 + setTimeout(function () {
  3105 +
  3106 + if(langIdvalue!=undefined)
  3107 + {
  3108 + var selectedLanguage = new jinqJs()
  3109 + .from( $rootScope.lexiconLanguageArray)
  3110 + .where('id == ' + langIdvalue)
  3111 + .select()[0];
  3112 +
  3113 + var langId=selectedLanguage.id;
  3114 +
  3115 + }
  3116 + else
  3117 + {
  3118 + var langId=$rootScope.lexiconLanguageArray[0].id;
  3119 + }
  3120 +
  3121 + var sysid = $("#AABodySystems option:selected").attr("id");
  3122 + var bodysystemId = (sysid).split("_")[0];
  3123 + if(bodysystemId=="0")
  3124 + {
  3125 + $scope.loadaaListManger(windowviewid,langId,totalstructure);
  3126 + }
  3127 + else
  3128 + {
  3129 + $scope.aasystemMatchTermLoad(bodysystemId,windowviewid,langId,totalstructure);
  3130 + }
  3131 +
  3132 + }, 100);
  3133 +
  3134 + }
  3135 +
  3136 + $scope.loadaaListManger = function (windowviewid,langId,totalstructure) {
2790 3137  
2791   - $timeout(function () {
2792   - $("#totalTermsLm").empty();
2793   - $("#totalTermsLm").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");
2794   - $scope.EnableUI();
2795   - }, 1000);
  3138 + var selectedpinTermData=$scope.GetAAwindowStoreData(windowviewid,'pinTermData');//term data for selected language
2796 3139  
  3140 + var languageTermDataArray = new jinqJs()
  3141 + .from( selectedpinTermData)
  3142 + .where('_LanguageId == ' + langId)
  3143 + .select();
  3144 +
  3145 +
  3146 + var afterskipdata = new jinqJs()
  3147 + .from(languageTermDataArray)
  3148 + .skip(totalstructure)
  3149 + .select();
  3150 +
  3151 + var limitTofilterdata = $filter('limitTo')(afterskipdata, 500);
  3152 +
  3153 + var matchTermDataFilter = new jinqJs()
  3154 + .from(limitTofilterdata)
  3155 + .distinct('_TermText', '_TermNumber')
  3156 + .orderBy([{ field: '_TermText', sort: 'asc' }])
  3157 + .select('_TermNumber', '_TermText');
  3158 +
  3159 + var option='';
  3160 +
  3161 + angular.forEach(matchTermDataFilter, function (value2, key2) {
  3162 + totalstructure=totalstructure+1;
  3163 + option=option+'<option id=' + value2._TermNumber +'_' +windowviewid+ ' style="margin-right:-12px">' + value2._TermText + '</option>';
  3164 +
  3165 + })
  3166 + var $el = $(option).appendTo('#termList')
  3167 + $compile($el)($scope);
  3168 +
  3169 + $scope.SetAAwindowStoreData(windowviewid,'totalstructureLm',totalstructure);
  3170 + var termsTotal = '<span class="pull-left marginTop5">' + totalstructure + ' Structures</span>';
  3171 +
  3172 + $("#totalTermsLm").empty();
  3173 + $("#totalTermsLm").append(termsTotal);
  3174 +
  3175 + if(totalstructure < languageTermDataArray.length)
  3176 + {
  3177 + $("#totalTermsLm").append('<button type="button" id="btlLoadMoreLm" class="btn btn-primary btn-block" onclick="LoadMoreLm(event)" style="width:65%;float:right">Load More Structures..</button>');
  3178 + }
  3179 + else
  3180 + {
  3181 + $("#totalTermsLm").append('<button type="button" id="btlLoadMoreLm" class="btn btn-primary btn-block" onclick="LoadMoreLm(event)" style="width:65%;float:right">Load More Structures..</button>');
  3182 + $('#btlLoadMoreLm').attr('disabled', 'disabled');
  3183 + }
  3184 +
  3185 + $scope.EnableAAUI(windowviewid);
  3186 +
2797 3187 }
2798 3188  
2799 3189 $rootScope.refreshTermListOnAASystemSelection = function (selectedBodysystemId) {
2800 3190 var windowviewid = (selectedBodysystemId).split("_")[1];
  3191 + var bodysystemId = (selectedBodysystemId).split("_")[0];
2801 3192 $("#AABodySystems").find("option:not(:disabled)").css({ "background-color": "#ffffff", "color": "#000000" });
2802 3193 $("#AABodySystems").find("option[id=" + selectedBodysystemId + "]").css({ "background-color": "#3399FF", "color": "#ffffff" });
2803 3194 $('#termList').empty();
2804   - var bodySystemName = $("#AABodySystems #" + selectedBodysystemId).val();
  3195 + // var bodySystemName = $("#AABodySystems #" + selectedBodysystemId).val();
2805 3196  
2806   - if (bodySystemName == "All") {
2807   - var pinTermData=$scope.GetAAwindowStoreData(windowviewid,'pinTermData');
2808   - for (var j = 0; j <= pinTermData.length - 1; j++) {
2809   - var $selectedOptions = $('<option title= "' + pinTermData[j].TermTxt + '" id= "' + pinTermData[j].TermNumber +'_'+windowviewid+ '">' + pinTermData[j].TermTxt + '</option>').appendTo("#termList")
  3197 + $scope.SetAAwindowStoreData(windowviewid, 'totalstructureLm',0);
  3198 + var totalstructure = 0;
  3199 + var langIdvalue = $("#selectLanguageLm option:selected").val();
  3200 + if(langIdvalue!=undefined)
  3201 + {
  3202 + var selectedLanguage = new jinqJs()
  3203 + .from( $rootScope.lexiconLanguageArray)
  3204 + .where('id == ' + langIdvalue)
  3205 + .select()[0];
  3206 +
  3207 + var langId=selectedLanguage.id;
2810 3208  
2811   - $compile($selectedOptions)($scope);
2812 3209 }
2813   - $("#totalTermsLm").empty();
2814   - $("#totalTermsLm").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");
2815   - }
2816   - else {
2817   - var imageId = $scope.GetAAwindowStoreData(windowviewid,'imageId');
2818   - var pinDataUrl = "aa_dat_pinterm_" + imageId;
2819   - var bodySystemTermArray = [];
2820   - var sortedListArray = [];
2821   - var duplicateListArray = [];
2822   - $.ajax({
2823   - url: '~/../content/data/json/aa/aa_pinterm/' + pinDataUrl + '.json',
2824   - type: 'GET',
2825   - dataType: "json",
2826   - async: false,
2827   - success: function (result) {
2828   - $(result.PinTermData.TermData).each(function (key, value) {
2829   - bodySystemTermArray.push({ "termNumbr": result.PinTermData.TermData[key]._TermNumber, "text": result.PinTermData.TermData[key]._TermText, "language": result.PinTermData.TermData[key]._LanguageId });
2830   - });
  3210 + else
  3211 + {
  3212 + var langId=$rootScope.lexiconLanguageArray[0].id;
  3213 + }
2831 3214  
2832   - var aaPinData = $scope.GetAAwindowStoreData(windowviewid,'aaPinData');
2833   - for (var i = 0; i <= aaPinData.length - 1; i++) {
  3215 + if(bodysystemId=="0")
  3216 + {
  3217 + setTimeout(function () {
  3218 + $scope.loadaaListManger(windowviewid,langId,totalstructure);
  3219 +
  3220 + }, 100);
  3221 + }
  3222 + else
  3223 + {
  3224 + $scope.aasystemMatchTermLoad(bodysystemId,windowviewid,langId,totalstructure);
  3225 + }
2834 3226  
2835   - if (aaPinData[i]._BodySystemName.toLowerCase() == bodySystemName.toLowerCase()) {
  3227 + }
2836 3228  
2837   - for (var j = 0 ; j <= bodySystemTermArray.length - 1; j++) {
2838   - if (aaPinData[i]._TermId == bodySystemTermArray[j].termNumbr) {
2839   - if (bodySystemTermArray[j].language == $rootScope.lexiconLanguageArray[0].id) {
2840   - duplicateListArray.push({ "title": bodySystemTermArray[j].text, "id": bodySystemTermArray[j].termNumbr });
2841   - }
2842   - }
2843   - }
2844   - }
2845   - }
2846   - var temp = [];
2847   - for (var i = 0; i <= duplicateListArray.length - 1; i++) {
2848   - var termID = duplicateListArray[i].id;
2849   - if ($.inArray(termID, temp) == -1) {
2850   - temp.push(termID);
2851   - sortedListArray.push({ "title": duplicateListArray[i].title, "id": termID });
  3229 + $scope.aasystemMatchTermLoad=function(bodysystemId,windowviewid,langId,totalstructure)
  3230 + {
  3231 + var aaPinData = $scope.GetAAwindowStoreData(windowviewid,'aaPinData');
  3232 + var systemMatchedTermList = new jinqJs()
  3233 + .from(aaPinData)
  3234 + .where('_BodySystemId == ' + bodysystemId)
  3235 + .select();
  3236 + if (systemMatchedTermList != null || systemMatchedTermList != undefined) {
  3237 + $scope.refreshTerms(systemMatchedTermList,windowviewid,langId,totalstructure);
  3238 + }
2852 3239  
2853   - }
2854   - }
  3240 + }
2855 3241  
2856   - for (var i = 0; i <= sortedListArray.length - 1; i++) {
  3242 +
  3243 + $scope.refreshTerms = function (termList,windowviewid,langId,totalstructure) {
  3244 + var matchTermData = [];
  3245 + var selectedpinTermData=$scope.GetAAwindowStoreData(windowviewid,'pinTermData');
2857 3246  
2858   - for (j = i + 1; j <= sortedListArray.length - 1; j++) {
  3247 + var languageTermDataArray = new jinqJs()
  3248 + .from( selectedpinTermData)
  3249 + .where('_LanguageId == ' + langId)
  3250 + .select();
2859 3251  
2860   - if (sortedListArray[i].title.substr(0, 1) > sortedListArray[j].title.substr(0, 1)) {
  3252 +
  3253 + for (var i = 0; i < termList.length; i++) {
2861 3254  
2862   - var termText = sortedListArray[i].title;
2863   - var termNumbr = sortedListArray[i].id;
2864   - var termLanguage = sortedListArray[i].language;
  3255 + var actulaTerm = new jinqJs()
  3256 + .from(languageTermDataArray)
  3257 + .where('_TermNumber == ' + termList[i]._TermId)
  3258 + .select()[0];
  3259 +
  3260 + if (actulaTerm != null || actulaTerm != undefined) {
  3261 + matchTermData.push(
  3262 + {
  3263 + "_TermNumber": actulaTerm._TermNumber,
  3264 + "_TermText": actulaTerm._TermText
  3265 +
  3266 + });
  3267 + }
2865 3268  
2866   - sortedListArray[i].title = sortedListArray[j].title;
2867   - sortedListArray[i].id = sortedListArray[j].id;
2868   - sortedListArray[i].language = sortedListArray[j].language;
  3269 + }
2869 3270  
2870   - sortedListArray[j].title = termText;
2871   - sortedListArray[j].id = termNumbr;
2872   - sortedListArray[j].language = termLanguage;
2873   - }
2874   - }
2875   - }
2876 3271  
2877   - for (var j = 0; j <= sortedListArray.length - 1; j++) {
2878   - var $selectedOptions = $('<option title= "' + sortedListArray[j].title + '" id= "' + sortedListArray[j].id +'_'+windowviewid+ '" >' + sortedListArray[j].title + '</option>').appendTo("#termList");
  3272 + var matchTermDataFilter = new jinqJs()
  3273 + .from(matchTermData)
  3274 + .distinct('_TermText', '_TermNumber')
  3275 + .orderBy([{ field: '_TermText', sort: 'asc' }])
  3276 + .select('_TermNumber', '_TermText');
  3277 +
  3278 + var option='';
  3279 + if (matchTermDataFilter != null || matchTermDataFilter != undefined) {
  3280 +
  3281 + angular.forEach(matchTermDataFilter, function (value2, key2) {
  3282 + totalstructure=totalstructure+1;
  3283 + option=option+'<option id=' + value2._TermNumber +'_' +windowviewid+ ' style="margin-right:-12px">' + value2._TermText + '</option>';
  3284 +
  3285 + })
  3286 + var $el = $(option).appendTo('#termList')
  3287 + $compile($el)($scope);
  3288 +
  3289 + $scope.SetAAwindowStoreData(windowviewid,'totalstructureLm',totalstructure);
  3290 + var termsTotal = '<span class="pull-left marginTop5">' + totalstructure + ' Structures</span>';
2879 3291  
2880   - $compile($selectedOptions)($scope);
2881   - }
2882   - }
2883   - });
2884 3292 $("#totalTermsLm").empty();
2885   - $("#totalTermsLm").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");
  3293 + $("#totalTermsLm").append(termsTotal);
  3294 +
  3295 + if(totalstructure < matchTermDataFilter.length)
  3296 + {
  3297 + $("#totalTermsLm").append('<button type="button" id="btlLoadMoreLm" class="btn btn-primary btn-block" onclick="LoadMoreLm(event)" style="width:65%;float:right">Load More Structures..</button>');
  3298 + }
  3299 + else
  3300 + {
  3301 + $("#totalTermsLm").append('<button type="button" id="btlLoadMoreLm" class="btn btn-primary btn-block" onclick="LoadMoreLm(event)" style="width:65%;float:right">Load More Structures..</button>');
  3302 + $('#btlLoadMoreLm').attr('disabled', 'disabled');
  3303 + }
  3304 +
2886 3305 }
2887   - }
  3306 + $scope.EnableAAUI(windowviewid);
  3307 +
  3308 + }
  3309 +
2888 3310 $scope.GetAnnotationBasedOnActualTermNo = function (actualTermNo,windowviewid) {
2889 3311  
2890   - var languageArray = $rootScope.lexiconLanguageArray;
2891   - var AAPinTermData= $scope.GetAAwindowStoreData(windowviewid,'AAPinTermData');
  3312 + var languageArray = $rootScope.lexiconLanguageArray;
  3313 + var pinTermData = $scope.GetAAwindowStoreData(windowviewid, 'pinTermData');
2892 3314  
2893   - if (AAPinTermData != null || AAPinTermData != undefined) {
  3315 + if (pinTermData != null || pinTermData != undefined) {
2894 3316  
2895 3317 var matchedTermNoData = new jinqJs()
2896   - .from(AAPinTermData)
  3318 + .from(pinTermData)
2897 3319 .where('_TermNumber == ' + actualTermNo)
2898 3320 .select();
2899 3321  
... ... @@ -2917,7 +3339,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2917 3339 }
2918 3340 $rootScope.hidePins = function (windowviewid) {
2919 3341 $scope.ToolBoxStyle("HidePin",windowviewid);
2920   - $scope.DisableUI();
  3342 + $scope.DisableAAUI(windowviewid);
2921 3343 $scope.hideSpeechBubble(windowviewid);
2922 3344 $scope.SetAAwindowStoreData(windowviewid, 'isShowSelectedPins', false);
2923 3345 $scope.SetAAwindowStoreData(windowviewid, 'isShowAllPins', false);
... ... @@ -2937,7 +3359,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2937 3359 visible: false // set to true instead to show the layer again
2938 3360 }).drawLayers();
2939 3361 })
2940   - $scope.EnableUI();
  3362 + $scope.EnableAAUI(windowviewid);
2941 3363  
2942 3364 }
2943 3365  
... ... @@ -2949,7 +3371,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2949 3371  
2950 3372 $scope.ToolBoxStyle("ShowAllPin",windowviewid);
2951 3373  
2952   - $scope.DisableUI();
  3374 + $scope.DisableAAUI(windowviewid);
2953 3375  
2954 3376 $scope.SetAAwindowStoreData(windowviewid, 'isShowAllPins', true);
2955 3377 $scope.SetAAwindowStoreData(windowviewid,'isHidePinBtnClicked',false);
... ... @@ -2990,17 +3412,16 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
2990 3412 $("#listManager").css("display", "none");
2991 3413 $("#optionsListManagerTab").removeClass("active");
2992 3414  
2993   - $scope.DisableUI();
  3415 + $scope.DisableAAUI(windowviewid);
2994 3416  
2995   - //if ($rootScope.isCallFromOtherModule) {
2996   - var isHidePinBtnClicked = $scope.GetAAwindowStoreData(windowviewid, 'isHidePinBtnClicked');
2997   - if (isHidePinBtnClicked) {
2998   - $scope.showAllPins(windowviewid);
2999   - setTimeout(function () {
3000   - $scope.activePinOnSliderChange(windowviewid);
3001   - }, 200);
3002   - }
3003   - //}
  3417 + var isHidePinBtnClicked = $scope.GetAAwindowStoreData(windowviewid, 'isHidePinBtnClicked');
  3418 + if (isHidePinBtnClicked) {
  3419 + $scope.showAllPins(windowviewid);
  3420 + setTimeout(function () {
  3421 + $scope.activePinOnSliderChange(windowviewid);
  3422 + }, 200);
  3423 + }
  3424 +
3004 3425 $scope.SetAAwindowStoreData(windowviewid, 'isShowAllPins', false);
3005 3426 $scope.SetAAwindowStoreData(windowviewid, 'isHidePinBtnClicked', false);
3006 3427 $scope.SetAAwindowStoreData(windowviewid, 'isShowSelectedPins', true);
... ... @@ -3103,84 +3524,267 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
3103 3524 }).drawLayers();
3104 3525 })
3105 3526 }
3106   - $scope.EnableUI();
  3527 + $scope.EnableAAUI(windowviewid);
3107 3528  
3108 3529 }
3109 3530  
3110   - $scope.showItemsForSearch = function (event) {
3111   - var len= (event.currentTarget.id).split("_").length;
3112   - var windowviewid = (event.currentTarget.id).split("_")[len-1];
  3531 + $scope.showItemsForSearch = function (windowviewid, isbuttionclick) {
  3532 +
  3533 + if ($('#searchListDivAA_' + windowviewid).html() != "")
  3534 + $('#termlistfilter_'+windowviewid).empty();
  3535 +
  3536 + $scope.IsSearchVisible = true;
  3537 + // clear time stamp on text box click
  3538 + $scope.SetAAwindowStoreData(windowviewid, 'SearchTimeStampValue', 0);
  3539 +
  3540 + var langIdvalue = $("#searchLanguageLm_"+windowviewid+" option:selected").val();
  3541 + if(langIdvalue!=undefined)
  3542 + {
  3543 + var selectedLanguage = new jinqJs()
  3544 + .from( $rootScope.lexiconLanguageArray)
  3545 + .where('id == ' + langIdvalue)
  3546 + .select()[0];
  3547 +
  3548 + var langId=selectedLanguage.id;
  3549 + }
  3550 + else
  3551 + {
  3552 + // get default language
  3553 + var langId=$rootScope.lexiconLanguageArray[0].id
  3554 + }
3113 3555  
3114   - console.log('showItemsForSearch is called');
3115   - //this check is for log only because we are writing length so need to check if its not null or undefined
  3556 + var selectedpinTermData=$scope.GetAAwindowStoreData(windowviewid,'pinTermData');//term data for selected language
  3557 +
  3558 + var languageTermDataArray = new jinqJs()
  3559 + .from( selectedpinTermData)
  3560 + .where('_LanguageId == ' + langId)
  3561 + .select();
3116 3562  
3117   - var AAPinTermData=$scope.GetAAwindowStoreData(windowviewid,'AAPinTermData');
3118   - $timeout(function () {
3119   - if ((AAPinTermData != null || AAPinTermData != undefined) && (AAPinTermData.length > 0)) {
  3563 + var searchvalue = $("#selectedTermName_" + windowviewid).val();
  3564 +
  3565 + var searchfilterdata = $filter('filter')(languageTermDataArray, searchvalue);
  3566 + if(searchvalue.trim()!="")
  3567 + {
  3568 + searchfilterdata = $filter('orderBy')(searchfilterdata, '_TermText.length');
  3569 + }
  3570 + else
  3571 + {
  3572 + searchfilterdata = $filter('orderBy')(searchfilterdata, '_TermText');
  3573 + }
3120 3574  
3121   - $scope.IsSearchVisible = true;
3122   - $("#termlistfilter_" + windowviewid).css("display", "block");
  3575 + $scope.limitTofilterdata = $filter('limitTo')(searchfilterdata, 500);
3123 3576  
3124   - $("#backdrop > #searchListDivAA > #termlistfilter_" + windowviewid + " > li").each(function (key, value) {
  3577 + $('#termlistfilter_'+windowviewid).css("display", "block");
3125 3578  
3126   - if ($(this).find("a").html() == document.getElementById("selectedTermName_"+windowviewid).value) {
3127   - $("#termlistfilter_" + windowviewid + " li a").css({ "background-color": "#ffffff", "color": "#000000" });
3128   - $(this).find("a").css({ "background-color": "#3399FF", "color": "#ffffff" });
3129   - }
3130   - });
  3579 + angular.forEach($scope.limitTofilterdata, function (value2, key2) {
  3580 + var $el = $('<option id=' + value2._TermNumber +'_' +windowviewid+ '>' + value2._TermText + '</option>').appendTo('#termlistfilter_' + windowviewid);
  3581 + $compile($el)($scope);
  3582 + })
  3583 +
  3584 + var $all = $('#termlistfilter_'+windowviewid).appendTo('#searchListDivAA_' + windowviewid);
  3585 + $compile($all)($scope);
  3586 +
  3587 + if(isbuttionclick)
  3588 + {
  3589 + $timeout(function () {
  3590 + $('#termlistfilter_'+windowviewid).focus();
  3591 + }, 200);
  3592 + }
3131 3593  
3132   - }
3133   - else {
3134   - $rootScope.aaloadSearchData(windowviewid);
3135   - if (AAPinTermData.length > 0) {
3136   - $scope.showItemsForSearch(event);
3137   - }
3138   - }
  3594 + }
  3595 +
  3596 + $scope.resetSearchListView = function (event) {
  3597 +
  3598 + var len = (event.target.id).split("_").length;
  3599 + var windowviewid = (event.target.id).split("_")[len - 1];
  3600 + var date = new Date();
  3601 + var newtimestamp = date.getTime();
3139 3602  
3140   - }, 500);
  3603 + var oldtimestamp = $scope.GetAAwindowStoreData(windowviewid, 'SearchTimeStampValue');
  3604 +
  3605 + if ((newtimestamp - oldtimestamp) > 100) {
  3606 +
  3607 + $scope.SetAAwindowStoreData(windowviewid, 'SearchTimeStampValue', newtimestamp);
  3608 + $scope.showFilteredTerms(windowviewid);
  3609 + }
3141 3610  
3142 3611 }
3143 3612  
3144 3613 $scope.HideSearchList = function (event) {
3145 3614 var len= (event.currentTarget.id).split("_").length;
3146 3615 var windowviewid = (event.currentTarget.id).split("_")[len-1];
  3616 +
3147 3617 $timeout(function () {
  3618 + if(!$scope.IsSearchVisible)
  3619 + {
  3620 + $("#termlistfilter_" + windowviewid).empty();
  3621 + $("#termlistfilter_" + windowviewid).css("display", "none");
  3622 + }
  3623 +
  3624 + }, 600);
3148 3625  
3149   - $("#termlistfilter_"+windowviewid).css("display", "none");
  3626 + }
3150 3627  
  3628 + $scope.showFilteredTerms = function (windowviewid) {
  3629 + var langIdvalue = $("#searchLanguageLm_"+windowviewid+" option:selected").val();
  3630 + if(langIdvalue!=undefined)
  3631 + {
  3632 + var selectedLanguage = new jinqJs()
  3633 + .from( $rootScope.lexiconLanguageArray)
  3634 + .where('id == ' + langIdvalue)
  3635 + .select()[0];
3151 3636  
3152   - }, 500);
  3637 + var langId=selectedLanguage.id;
  3638 + }
  3639 + else
  3640 + {
  3641 + // get default language
  3642 + var langId=$rootScope.lexiconLanguageArray[0].id
  3643 + }
  3644 +
  3645 + var selectedpinTermData=$scope.GetAAwindowStoreData(windowviewid,'pinTermData');//term data for selected language
  3646 +
  3647 + var languageTermDataArray = new jinqJs()
  3648 + .from( selectedpinTermData)
  3649 + .where('_LanguageId == ' + langId)
  3650 + .select();
  3651 +
  3652 + var searchvalue = $("#selectedTermName_" + windowviewid).val();
  3653 +
  3654 + var searchfilterdata = $filter('filter')(languageTermDataArray, searchvalue);
  3655 + if(searchvalue.trim()!="")
  3656 + {
  3657 + searchfilterdata = $filter('orderBy')(searchfilterdata, '_TermText.length');
  3658 + }
  3659 + else
  3660 + {
  3661 + searchfilterdata = $filter('orderBy')(searchfilterdata, '_TermText');
  3662 + }
3153 3663  
  3664 + $scope.limitTofilterdata = $filter('limitTo')(searchfilterdata, 20);
  3665 +
  3666 + $('#termlistfilter_'+windowviewid).css("display", "block");
  3667 + $('#termlistfilter_'+windowviewid).empty();
  3668 +
  3669 + angular.forEach($scope.limitTofilterdata, function (value2, key2) {
  3670 + var $el = $('<option id=' + value2._TermNumber +'_' +windowviewid+ '>' + value2._TermText + '</option>').appendTo('#termlistfilter_' + windowviewid);
  3671 + $compile($el)($scope);
  3672 + })
  3673 +
  3674 + var $all = $('#termlistfilter_'+windowviewid).appendTo('#searchListDivAA_' + windowviewid);
  3675 + $compile($all)($scope);
  3676 +
  3677 + $("#selectedTermName_" + windowviewid).attr("name", "0");
  3678 +
  3679 + };
  3680 +
  3681 + $scope.changeaaSearchLanguage = function (event) {
  3682 +
  3683 + var len= (event.currentTarget.id).split("_").length;
  3684 + var windowviewid = (event.currentTarget.id).split("_")[len-1];
  3685 +
  3686 + $scope.changeSearchText(windowviewid);
  3687 +
3154 3688 }
3155   - $scope.highlightPinBasedOnSerachItemEvent = function (termid) {
  3689 +
  3690 + $scope.changeSearchText = function (windowviewid) {
  3691 +
  3692 + setTimeout(function () {
  3693 +
  3694 + var term_num = $("#selectedTermName_" + windowviewid).attr("name");
  3695 + if(term_num!=undefined && term_num!="0")
  3696 + {
  3697 + var langIdvalue = $("#searchLanguageLm_"+windowviewid+" option:selected").val();
  3698 + if(langIdvalue!=undefined)
  3699 + {
  3700 + var selectedLanguage = new jinqJs()
  3701 + .from( $rootScope.lexiconLanguageArray)
  3702 + .where('id == ' + langIdvalue)
  3703 + .select()[0];
  3704 +
  3705 + var langId=selectedLanguage.id;
  3706 +
  3707 + }
  3708 + else
  3709 + {
  3710 + var langId=$rootScope.lexiconLanguageArray[0].id;
  3711 + }
  3712 + var selectedpinTermData=$scope.GetAAwindowStoreData(windowviewid,'pinTermData');//term data for selected language
  3713 +
  3714 + var languageTermDataArray = new jinqJs()
  3715 + .from( selectedpinTermData)
  3716 + .where('_LanguageId == ' + langId)
  3717 + .select();
  3718 +
  3719 +
  3720 + var selectedTerm = new jinqJs()
  3721 + .from( languageTermDataArray)
  3722 + .where('_TermNumber == '+term_num)
  3723 + .select()[0];
  3724 +
  3725 +
  3726 + if(selectedTerm!=undefined)
  3727 + {
  3728 +
  3729 + $("#selectedTermName_" + windowviewid).attr("name", selectedTerm._TermNumber);
  3730 + $("#selectedTermName_" + windowviewid).val(selectedTerm._TermText);
  3731 +
  3732 + }
  3733 + else
  3734 + {
  3735 + $("#selectedTermName_" + windowviewid).attr("name", "0");
  3736 + $("#selectedTermName_" + windowviewid).val('');
  3737 + }
  3738 +
  3739 + }
  3740 + else
  3741 + {
  3742 + $("#selectedTermName_" + windowviewid).attr("name", "0");
  3743 + $("#selectedTermName_" + windowviewid).val('');
  3744 + }
  3745 +
  3746 + },100)
  3747 +
  3748 +
  3749 + }
  3750 +
  3751 +
  3752 + $scope.highlightPinBasedOnSerachItemEvent = function (termid,isTermListOptionClicked) {
3156 3753 $rootScope.UnsaveCurriculum = true;
3157   - $scope.highlightPinBasedOnSerachItem(termid);
  3754 + $scope.highlightPinBasedOnSerachItem(termid,isTermListOptionClicked);
3158 3755 }
3159 3756  
3160   - $scope.highlightPinBasedOnSerachItem = function (termid) {
  3757 + $scope.highlightPinBasedOnSerachItem = function (termid,isTermListOptionClicked) {
3161 3758  
3162 3759 var windowviewid = (termid).split("_")[1];
3163   - var id=(termid).split("_")[0];
  3760 + var TermNumber= termid.split('_')[0];
3164 3761 var currenttermidTxt = $('#' + termid).text();
  3762 + $scope.IsSearchVisible=false;
  3763 +
  3764 +
  3765 + if (isTermListOptionClicked == true) {
  3766 + $('#selectedTermName_' + windowviewid).val('');
  3767 + $("#selectedTermName_" + windowviewid).attr("name", '0');
  3768 + }
  3769 + else
  3770 + {
  3771 + $('#selectedTermName_' + windowviewid).val(currenttermidTxt);
  3772 + $("#selectedTermName_" + windowviewid).attr("name", TermNumber);
  3773 + $("#termlistfilter_" + windowviewid).empty();
  3774 + $("#termlistfilter_" + windowviewid).css("display", "none");
  3775 + }
3165 3776  
3166 3777 $scope.showAllPinsAfterHide(windowviewid);
3167 3778  
3168   - $('#termList option[selected="selected"]').prop("selected", false);
3169   - $('#termList option[value="' + currenttermidTxt + '"]').attr("selected", true);
3170 3779 $("#termList").find("option").css({ "background-color": "#ffffff", "color": "#000000" });
3171   - $('#termList option[value="' + currenttermidTxt + '"]').css({ "background-color": "#3399FF", "color": "#ffffff" });
3172   -
3173   - $("#termlistfilter_" + windowviewid + " li").find("a").css({ "background-color": "#ffffff", "color": "#000000" });
3174   - $("#termlistfilter_" + windowviewid + " li").find("a[id=" + termid + "]").css({ "background-color": "#3399FF", "color": "#ffffff" });
3175   -
3176   - $('#selectedTermName_' + windowviewid).val(currenttermidTxt);
3177   -
  3780 + $("#termList").find("option[id=" + termid + "]").css({ "background-color": "#3399FF", "color": "#ffffff" });
  3781 +
3178 3782 //get data from pindata for this trem
3179 3783  
3180 3784 var aaPinData = $scope.GetAAwindowStoreData(windowviewid,'aaPinData');
3181 3785 var pinDataForTerm = new jinqJs()
3182 3786 .from(aaPinData)
3183   - .where("_TermId == " + id)
  3787 + .where("_TermId == " + TermNumber)
3184 3788 .select();
3185 3789  
3186 3790 // birendra
... ... @@ -3201,23 +3805,12 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
3201 3805 $('#aaDetailViewCanvas_'+windowviewid).setLayers({
3202 3806 fillStyle: radial,
3203 3807 }).drawLayers();
3204   - console.log(pinDataForTerm[0]._PinId);
3205   - var pinID = "PinArc_" + pinDataForTerm[0]._PinId;
3206   -
  3808 +
3207 3809 $scope.SetAAwindowStoreData(windowviewid,'clickedPins',[]);
3208   - var clickpin = [];
3209   - clickpin.push({ 'id': pinDataForTerm[0]._PinId });
3210   - $scope.SetAAwindowStoreData(windowviewid, 'clickedPins', clickpin);
3211   -
3212 3810 $scope.SetAAwindowStoreData(windowviewid, 'selectedPins', []);
3213   - var selectedPins = [];
3214   - selectedPins.push(pinDataForTerm[0]._PinId);
3215   - $scope.SetAAwindowStoreData(windowviewid, 'selectedPins', selectedPins);
3216   -
3217   - $scope.SetAAwindowStoreData(windowviewid,'activePinArray',[]);
3218   - var activePin = [];
3219   - activePin.push(pinID);
3220   - $scope.SetAAwindowStoreData(windowviewid,'activePinArray',activePin);
  3811 + $scope.SetAAwindowStoreData(windowviewid,'activePinArray',[]);
  3812 + //clear all cb data
  3813 + $scope.SetAAwindowStoreData(windowviewid, 'CBselectedpinCordinate', []);
3221 3814  
3222 3815 $scope.showAnnotation(pinDataForTerm, false, false, true,false,windowviewid);
3223 3816 // maintaing scroll position on selection of options in list manager.
... ... @@ -3229,23 +3822,48 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
3229 3822  
3230 3823 }
3231 3824  
  3825 + $scope.MultipleAnnotation = function (event) {
  3826 + var len= (event.currentTarget.id).split("_").length;
  3827 + var windowviewid = (event.currentTarget.id).split("_")[len-1];
  3828 +
  3829 + //set true to false or vice versa
  3830 + var iskeyctrlActive= $scope.GetAAwindowStoreData(windowviewid, 'keyctrl');
  3831 +
  3832 + $("#multiannotation_" + windowviewid).toggleClass("disableAAMultiAnnotationText");
  3833 +
  3834 + if(iskeyctrlActive)
  3835 + {
  3836 + $("#multiannotation_"+windowviewid ).attr('title', 'Active Multiple Structure');
  3837 + }
  3838 + else
  3839 + {
  3840 + $("#multiannotation_"+windowviewid ).attr('title', 'Disable Multiple Structure');
  3841 + }
  3842 +
  3843 + $scope.SetAAwindowStoreData(windowviewid, 'keyctrl', !iskeyctrlActive);
  3844 + }
  3845 +
3232 3846 $scope.ShowHideAnnotation = function (event) {
3233 3847 var len= (event.currentTarget.id).split("_").length;
3234 3848 var windowviewid = (event.currentTarget.id).split("_")[len-1];
3235 3849 $rootScope.UnsaveCurriculum = true;
3236 3850  
3237 3851 var btnStrutureBoxname = document.getElementById("comment-box_"+windowviewid).name;
  3852 + $("#comment-box_" + windowviewid).toggleClass("disableAAAnnotationText");
3238 3853  
3239 3854 if (btnStrutureBoxname == "showAnnotationText") {
3240   - $("#comment-box_"+windowviewid).addClass("disableAnnotationText");
3241   - document.getElementById("comment-box_"+windowviewid).name = "hideAnnotationText";
3242   - $scope.SetAAwindowStoreData(windowviewid, 'showHideAnnotations', 'hideAnnotationText');
  3855 + $("#comment-box_"+windowviewid ).attr('title', 'Show Structure Name Boxes');
  3856 + $("#comment-box_"+windowviewid +" i").removeClass("far fa-comment-alt-times").addClass("far fa-comment-alt");
  3857 + $("#comment-box_"+windowviewid ).attr('name', 'hideAnnotationText');
  3858 + $scope.SetAAwindowStoreData(windowviewid, 'showHideAnnotations', 'hideAnnotationText');
3243 3859 }
3244 3860 else
3245 3861 {
3246   - $("#comment-box_"+windowviewid).removeClass("disableAnnotationText");
3247   - document.getElementById("comment-box_"+windowviewid).name = "showAnnotationText";
  3862 + $("#comment-box_"+windowviewid ).attr('title', 'Hide Structure Name Boxes');
  3863 + $("#comment-box_"+windowviewid +" i").removeClass("far fa-comment-alt").addClass("far fa-comment-alt-times");
  3864 + $("#comment-box_"+windowviewid ).attr('name', 'showAnnotationText');
3248 3865 $scope.SetAAwindowStoreData(windowviewid, 'showHideAnnotations', 'showAnnotationText');
  3866 +
3249 3867 }
3250 3868  
3251 3869 $scope.ShowHideAnnotationText(windowviewid);
... ... @@ -3263,7 +3881,7 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
3263 3881 }
3264 3882 }
3265 3883 else {
3266   - $("#comment-box_"+windowviewid).addClass("disableAnnotationText");
  3884 + $("#comment-box_"+windowviewid).addClass("disableAAAnnotationText");
3267 3885  
3268 3886 for (var i = 0; i <= speechBubbleDimaensions.length - 1; i++) {
3269 3887 $("#" + speechBubbleDimaensions[i].speechBuubleId).css("display", "none");
... ... @@ -3454,10 +4072,28 @@ function onSearchAA(event) {
3454 4072 console.log('AA search is called')
3455 4073 var scope = angular.element(document.getElementById("aaBodyView")).scope();
3456 4074 scope.$apply(function () {
3457   - scope.showItemsForSearch(event);
  4075 + var len= (event.currentTarget.id).split("_").length;
  4076 + var windowviewid = (event.currentTarget.id).split("_")[len-1];
  4077 +
  4078 + if((event.currentTarget.id).match('btnSearchAA'))
  4079 + scope.showItemsForSearch(windowviewid,true);
  4080 + else
  4081 + {
  4082 + scope.showItemsForSearch(windowviewid,false);
  4083 + }
  4084 +
3458 4085 });
3459 4086 }
3460 4087  
  4088 +function changeaaSearchLanguage(event) {
  4089 + event.stopPropagation();
  4090 + var scope = angular.element(document.getElementsByClassName("aaBodyView")).scope();
  4091 + scope.$apply(function () {
  4092 + scope.changeaaSearchLanguage(event);
  4093 + });
  4094 +}
  4095 +
  4096 +
3461 4097 function hideSearchList(event) {
3462 4098 console.log('AA hide search is called')
3463 4099 var scope = angular.element(document.getElementById("aaBodyView")).scope();
... ... @@ -3466,12 +4102,20 @@ function hideSearchList(event) {
3466 4102 });
3467 4103 }
3468 4104  
3469   -function onSearchItemSelection(termid) {
  4105 +function resetSearchListView(event) {
  4106 + console.log('AA keyup search is called')
  4107 + var scope = angular.element(document.getElementById("aaBodyView")).scope();
  4108 + scope.$apply(function () {
  4109 + scope.resetSearchListView(event);
  4110 + });
  4111 +}
  4112 +
  4113 +function onSearchItemSelection(termid, isTermListOptionClicked) {
3470 4114  
3471 4115 console.log('AA hide search is called');
3472 4116 var scope = angular.element(document.getElementById("aaBodyView")).scope();
3473 4117 scope.$apply(function () {
3474   - scope.highlightPinBasedOnSerachItemEvent(termid);
  4118 + scope.highlightPinBasedOnSerachItemEvent(termid,isTermListOptionClicked);
3475 4119 });
3476 4120 }
3477 4121  
... ... @@ -3484,6 +4128,14 @@ function showHideAnnotation(event) {
3484 4128 });
3485 4129 }
3486 4130  
  4131 +function keyControlAAActive(event) {
  4132 +
  4133 + var scope = angular.element(document.getElementById("aaBodyView")).scope();
  4134 + scope.$apply(function () {
  4135 + scope.MultipleAnnotation(event);
  4136 + });
  4137 +}
  4138 +
3487 4139 function showSelectedPins(event) {
3488 4140  
3489 4141 console.log('showSelectedPins is called')
... ...
400-SOURCECODE/AIAHTML5.Web/app/services/ModuleService.js
... ... @@ -176,7 +176,8 @@ AIA.service(&#39;ModuleService&#39;, function ($http, DataService) {
176 176 position: windowData.position,
177 177 size: windowData.size,
178 178 contextMenu: windowData.contextMenu,
179   - annotationData: windowData.annotationData
  179 + annotationData: windowData.annotationData,
  180 + imgLeft:windowData.imgLeft
180 181 });
181 182 }
182 183 else if (windowData.mType == "MY_ANIMATIONS") {
... ... @@ -193,7 +194,7 @@ AIA.service(&#39;ModuleService&#39;, function ($http, DataService) {
193 194 id: windowData.id,
194 195 position: windowData.position,
195 196 size: windowData.size,
196   - contextMenu: windowData.contextMenu
  197 + contextMenu: windowData.contextMenu
197 198 });
198 199 }
199 200 else if (windowData.mType == "LAB_EXERCISE") {
... ... @@ -243,7 +244,8 @@ AIA.service(&#39;ModuleService&#39;, function ($http, DataService) {
243 244 position: windowData.position,
244 245 size: windowData.size,
245 246 contextMenu: windowData.contextMenu,
246   - annotationData: windowData.annotationData
  247 + annotationData: windowData.annotationData,
  248 + imgLeft:windowData.imgLeft
247 249 });
248 250 }
249 251 else if (windowData.mType == "CLINICAL_ANIMATIONS") {
... ... @@ -278,7 +280,8 @@ AIA.service(&#39;ModuleService&#39;, function ($http, DataService) {
278 280 position: windowData.position,
279 281 size: windowData.size,
280 282 contextMenu: windowData.contextMenu,
281   - annotationData: windowData.annotationData
  283 + annotationData: windowData.annotationData,
  284 + imgLeft:windowData.imgLeft
282 285 });
283 286 }
284 287 else if (windowData.mType == "ATLAS_ANATOMY") {
... ... @@ -305,8 +308,7 @@ AIA.service(&#39;ModuleService&#39;, function ($http, DataService) {
305 308 size: windowData.size,
306 309 contextMenu: windowData.contextMenu,
307 310 showHideAnnotations: windowData.showHideAnnotations
308   - // selectedSearchId: windowData.selectedSearchId
309   -
  311 +
310 312 });
311 313 }
312 314 else if (windowData.mType == "DISSECTIBLE_ANATOMY") {
... ... @@ -354,7 +356,6 @@ AIA.service(&#39;ModuleService&#39;, function ($http, DataService) {
354 356 transparencyY: windowData.transparencyY,
355 357 layerNumberBeforeTBDraw: windowData.layerNumberBeforeTBDraw,
356 358 showHideAnnotations: windowData.showHideAnnotations
357   -
358 359 });
359 360 }
360 361  
... ...
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 3 <div class="main" ng-init="loadAIModuleById(13)">
4   - <div id="grid-view" class="col-sm-12" style="padding-left:25px; width:99%">
  4 + <div id="grid-view" class="col-sm-12" style="padding-left:25px;">
5 5 </div>
6 6 </div>
7 7 </div>
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/CBuild/CBuild-view.html
... ... @@ -2,7 +2,7 @@
2 2 <div ng-include="'app/widget/MainMenu.html'" />
3 3 <div class="main" ng-init="loadCurriculumBuiderData()">
4 4 <div class="col-sm-12">
5   - <div class="well" style=" height:90vh">
  5 + <div class="well" style="min-height: 360px;margin-bottom: 0px;" id="cblist">
6 6 <div class="col-sm-6">
7 7 <ul class="list-group" id="leftBodyViewList"></ul>
8 8 </div>
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/LabExerc/lab-exercises-detail.html
1   -๏ปฟ<div class="" ng-controller="LabExercController" id="LabView" style="overflow: scroll;">
  1 +๏ปฟ<div class="" ng-controller="LabExercController" id="LabView" style="">
2 2  
3 3 <div id="labexmodalbackground" class="labExModalbackground"></div>
4 4 <!-- Lab Ex -->
... ... @@ -119,109 +119,100 @@
119 119 </div>
120 120 </div>
121 121  
122   - <div class="col-sm-12">
123   -
124   - <div class="container-fluid">
125   - <div class="row">
126   - <div class="panel panel-default" id="questionHtml" style="margin-bottom:0;margin-top:10px">
127   - <div class="col-xs-12 panel-heading">
128   - <div class="col-xs-3" style="padding-left:5px;" id="activityTitle">
129   - </div>
130   - <div class="col-xs-6 text-primary text-center" id="Title"></div>
131   - <div class="text-right col-xs-3" style="padding-right:5px;">
132   - Question <strong id="quizNo"></strong> of <span id="totalquiz"></span>
133   - </div>
  122 + <div class="container-fluid">
  123 + <div class="row">
  124 + <div class="panel panel-default" id="questionHtml" style="margin-bottom:0;margin-top:10px">
  125 + <div class="col-xs-12 panel-heading">
  126 + <div class="col-xs-3" style="padding-left:5px;" id="activityTitle">
134 127 </div>
135   - <div id="panelbodyDiv" class="panel-body" style="padding:2px;overflow:scroll">
136   - </div>
137   -
138   - <div class="panel-footer">
139   - <div class="pull-left">
140   - </div>
141   - <div class="pull-right">
142   - <div class="btn-group pull-left marginR5">
143   - <button class="btn btn-sm btn-primary" style="display:none;" ng-click="SubmitAttempt($event)" id="quizSubmitBtn">Submit</button>
144   - <button class="btn btn-sm btn-primary" style="display:none;" id="reportBtn" ng-click="ReportGen($event)">Report</button>
145   - <button class="btn btn-sm btn-primary" id="saveBtn" ng-click="SaveAnswer($event)">Save</button>
146   - <button class="btn btn-sm btn-primary" id="reviewBtn" ng-click="ReviewAttempt($event)">Review Your Attempt</button>
147   - <button class="btn btn-sm btn-primary" id="resetBtn" ng-click="OnResetClick($event)">Reset</button>
148   - </div>
149   - <div class="btn-group">
150   - <button id="btnBackward" class="btn btn-sm btn-black" ng-click="prevQuiz($event)"><i id="btnBackwardIcon" class="fa fa-arrow-left"></i></button>
151   - <button id="btnForward" class="btn btn-sm btn-black" ng-click="nextQuiz($event)"><i id="btnForwardIcon" class="fa fa-arrow-right"></i></button>
152   - </div>
153   - </div>
154   - <div class="clearfix"></div>
  128 + <div class="col-xs-6 text-primary text-center" id="Title"></div>
  129 + <div class="text-right col-xs-3" style="padding-right:5px;">
  130 + Question <strong id="quizNo"></strong> of <span id="totalquiz"></span>
155 131 </div>
156 132 </div>
157   - </div>
158   -
159   -
160   - <div class="panel panel-default" id="submitResultHtml" style="display:none;">
161   - <div class="panel-heading">
162   - <div class="row">
163   - <div class="col-sm-4 text-left"><strong id="reporttitle"></strong></div>
164   - <div class="col-sm-4 text-center">Performance Report</div>
165   - <div class="col-sm-4 text-right">Score:<span id="scoreResult"></span>% </div>
166   - </div>
  133 + <div id="panelbodyDiv" class="panel-body" style="padding:2px;overflow:scroll">
167 134 </div>
168   - <div class="panel-body no-padding">
169   - <div class="row">
170   - <div class="col-sm-12 table-responsive ">
171   - <table class="table table-hover table-condensed bg-white" id="questionStatus">
172   - <thead>
173   - <tr class="active">
174   - <th class="text-center">Total Question</th>
175   - <th class="text-center">Correct Answers</th>
176   - <th class="text-center">Incorrect Answers</th>
177   - </tr>
178   - </thead>
179   - <tbody>
180   - <tr class="text-center">
181   - <td id="tdTotalQuiz"></td>
182   - <td id="tdCorrectAnswer"></td>
183   - <td id="tdinCorrectAnswer"></td>
184   - </tr>
185   - </tbody>
186   - </table>
187 135  
  136 + <div class="panel-footer">
  137 + <div class="pull-left">
  138 + </div>
  139 + <div class="pull-right">
  140 + <div class="btn-group pull-left marginR5">
  141 + <button class="btn btn-sm btn-primary" style="display:none;" ng-click="SubmitAttempt($event)" id="quizSubmitBtn">Submit</button>
  142 + <button class="btn btn-sm btn-primary" style="display:none;" id="reportBtn" ng-click="ReportGen($event)">Report</button>
  143 + <button class="btn btn-sm btn-primary" id="saveBtn" ng-click="SaveAnswer($event)">Save</button>
  144 + <button class="btn btn-sm btn-primary" id="reviewBtn" ng-click="ReviewAttempt($event)">Review Your Attempt</button>
  145 + <button class="btn btn-sm btn-primary" id="resetBtn" ng-click="OnResetClick($event)">Reset</button>
188 146 </div>
189   - <div class="col-sm-12 table-responsive">
190   - <table class="table table-hover table-condensed bg-white">
191   - <thead>
192   - <tr class="active">
193   - <th>Question</th>
194   - <th>Activity Title</th>
195   - <th>Status</th>
196   - <th>Action</th>
197   - </tr>
198   - </thead>
199   - <tbody id="resultLabData"></tbody>
200   - </table>
  147 + <div class="btn-group">
  148 + <button id="btnBackward" class="btn btn-sm btn-black" ng-click="prevQuiz($event)"><i id="btnBackwardIcon" class="fa fa-arrow-left"></i></button>
  149 + <button id="btnForward" class="btn btn-sm btn-black" ng-click="nextQuiz($event)"><i id="btnForwardIcon" class="fa fa-arrow-right"></i></button>
201 150 </div>
202 151 </div>
203   - </div>
204   - <div class="panel-footer">
205   - <div class="text-center">
206   - <button class="btn btn-sm btn-primary" id="btnSendMail" ng-click="sendMail($event)">
207   - Email
208   - </button>
209   - <button class="btn btn-sm btn-primary" id="btnReportClose" ng-click="CloseReport($event)">
210   - Close
211   - </button>
212   -
213   - </div>
214 152 <div class="clearfix"></div>
215 153 </div>
216   -
217 154 </div>
  155 + </div>
  156 + </div>
218 157  
  158 + <div class="panel panel-default" id="submitResultHtml" style="display:none;">
  159 + <div class="panel-heading">
  160 + <div class="row">
  161 + <div class="col-sm-4 text-left"><strong id="reporttitle"></strong></div>
  162 + <div class="col-sm-4 text-center">Performance Report</div>
  163 + <div class="col-sm-4 text-right">Score:<span id="scoreResult"></span>% </div>
  164 + </div>
  165 + </div>
  166 + <div class="panel-body no-padding" id="resultbodyDiv" style="overflow-x: hidden;">
  167 + <div class="row">
  168 + <div class="col-sm-12 table-responsive ">
  169 + <table class="table table-hover table-condensed bg-white" id="questionStatus">
  170 + <thead>
  171 + <tr class="active">
  172 + <th class="text-center">Total Question</th>
  173 + <th class="text-center">Correct Answers</th>
  174 + <th class="text-center">Incorrect Answers</th>
  175 + </tr>
  176 + </thead>
  177 + <tbody>
  178 + <tr class="text-center">
  179 + <td id="tdTotalQuiz"></td>
  180 + <td id="tdCorrectAnswer"></td>
  181 + <td id="tdinCorrectAnswer"></td>
  182 + </tr>
  183 + </tbody>
  184 + </table>
219 185  
  186 + </div>
  187 + <div class="col-sm-12 table-responsive">
  188 + <table class="table table-hover table-condensed bg-white">
  189 + <thead>
  190 + <tr class="active">
  191 + <th>Question</th>
  192 + <th>Activity Title</th>
  193 + <th>Status</th>
  194 + <th>Action</th>
  195 + </tr>
  196 + </thead>
  197 + <tbody id="resultLabData"></tbody>
  198 + </table>
  199 + </div>
  200 + </div>
220 201 </div>
221   - </div>
222   - <!--</div>-->
  202 + <div class="panel-footer">
  203 + <div class="text-center">
  204 + <button class="btn btn-sm btn-primary" id="btnSendMail" ng-click="sendMail($event)">
  205 + Email
  206 + </button>
  207 + <button class="btn btn-sm btn-primary" id="btnReportClose" ng-click="CloseReport($event)">
  208 + Close
  209 + </button>
223 210  
  211 + </div>
  212 + <div class="clearfix"></div>
  213 + </div>
224 214  
  215 + </div>
225 216  
226 217 </div>
227 218  
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/aa/atlas-anatomy-detail.html
... ... @@ -58,10 +58,8 @@
58 58 .pad0 {
59 59 padding: 0;
60 60 }
61   - .disableAnnotationText {
62   - background: #4b4b4b;
63   - border-color: #3f3f3f !important;
64   - }
  61 +
  62 +
65 63 </style>
66 64 <div id="aaDetailPageDiv" class="ng-scope" ng-controller="TileViewListController">
67 65 <div class="tools pull-left">
... ... @@ -89,38 +87,49 @@
89 87 <li class="disabledSelectedSystem"><a id="11" href="#" title="Skeletal" onclick="showSelectedSystemPins(event)">Skeletal</a></li>
90 88 <li class="disabledSelectedSystem"><a id="12" href="#" title="Urinary" onclick="showSelectedSystemPins(event)">Urinary</a></li>
91 89 </ul>
92   - </div>
93   - <div class="col-sm-12" style="width:50%;float:left" >
94   - <button onclick="showHideAnnotation(event)" class="btn btn-primary btn-sm marginTop5 btn-block" id="comment-box" name="showAnnotationText" style="background-position: 28px -73px;width:80px;" title="Show/Hide Structure Name Boxes"></button>
95 90 </div>
  91 +
  92 + </div>
  93 + <div class="col-sm-12" style="float:left" >
  94 + <button onclick="showHideAnnotation(event)" class="btn btn-primary btn-sm marginTop5 tooltip-custom btn-block" data-toggle="tooltip" id="comment-box" name="showAnnotationText" title="Hide Structure Name Boxes">
  95 + <i class="far fa-comment-alt-times" style="font-size:20px;"></i>
  96 + </button>
  97 + </div>
  98 + <div class="col-sm-12" style="float:left">
  99 + <button onclick="keyControlAAActive(event)" class="btn btn-primary btn-sm marginTop5 btn-block tooltip-custom disableAAMultiAnnotationText" data-toggle="tooltip" id="multiannotation" title="Active Multiple Structure">
  100 + <!-- <img src="content/images/mult-annotation.png" alt="" style="height:26px;margin-top:-2px"> -->
  101 + <i class="far fa-comments" style="font-size:20px;"></i>
  102 + </button>
96 103 </div>
97   - <div class="pips-slider" style="margin-top:125px">
  104 + <div class="pips-slider" style="margin-top:155px">
98 105 <h3>Zoom <i class="fa fa-search-plus"></i></h3>
99 106 <div class="slider" id="Vslider" style="margin:40px 0 30px 20px;height:150px"></div>
100 107 </div>
101 108 </div>
102 109  
103 110 <div class="main2">
104   - <div class="stickey-area" style="margin-left:7px">
  111 + <div class="stickey-area" id="aastickeyarea" style="margin-left:7px;height:44px">
105 112 <div class="breadcrumb">
106 113 <div class="">
107   - <div class="input-group col-sm-8 col-xs-7 col-md-8 pull-left">
108   - <input type="text" class="form-control input-sm pull-left" id="selectedTermName" onclick="onSearchAA(event)" ondblclick="onSearchAA(event)" onblur="hideSearchList(event)" ng-model="searchFilter" placeholder=" search...">
  114 + <div id="searchlangaugeDiv"></div>
  115 + <div class="input-group col-sm-6 col-xs-7 col-md-7 pull-left"">
  116 + <input type="text" class="form-control input-sm pull-left" id="selectedTermName" onclick="onSearchAA(event)" ondblclick="onSearchAA(event)" onkeyup="resetSearchListView(event)" onblur="hideSearchList(event)" ng-model="searchFilter" placeholder=" search..." autocomplete="off">
109 117  
110   - <div id="backdrop" ng-show="IsSearchVisible">
  118 + <div id="backdrop">
111 119 <div id="searchListDivAA" class="col-sm-12 col-xs-12 col-md-12 col-lg-12 pull-left">
112   - <ul id="termlistfilter" class="form-control dropdown-menu" style="height:90px;width:100%;overflow-y:scroll;position:absolute;display:none;z-index:60001;"></ul>
  120 + <select id="termlistfilter" class="form-control" style="height:130px;width:100%;overflow-y:scroll;position:absolute;z-index:60001;display:none;padding:0px;left:0px;" size="10" onclick="if (typeof (this.selectedIndex) != 'undefined') onSearchItemSelection(this.options[this.selectedIndex].id, false)" onblur="hideSearchList(event)"></select>
113 121 </div>
114 122 </div>
115 123 </div>
116   - &nbsp;
  124 +
117 125 <!-- Single button -->
118   - <div class="btn-group pull-left" style="vertical-align:top;">
  126 + <div class="btn-group pull-left" style="vertical-align:top; float:left;margin-right: -10px;">
119 127  
120   - <button type="button" style="padding: 5px 10px 4px 10px !important;border: none;" class="btn btn-success btn-sm" id=btnSearchAA onclick="onSearchAA(event)" onblur="hideSearchList(event)">
  128 + <button type="button" style="padding: 5px 10px 4px 10px !important;border: none;" class="btn btn-success btn-sm" id=btnSearchAA onclick="onSearchAA(event)">
121 129 <i class="fa fa-caret-down" style="font-size:20px;"></i>
122 130 </button>
123   - </div>
  131 + </div>
  132 +
124 133 <div class="btn-group open" id="da-body-nav" style="float: right; margin-left: 2px;right: 100px;">
125 134 <button id="navigatorBtn" type="button" style="padding:0px 0px 10px 1px !important;background-color:rgba(255,255,255,0.0); border:none; right: -80px;" class="btn btn-primary dropdown-toggle btn-sm">
126 135 <img src="~/../content/images/DA/navigator-view.png" style="height:30px; width:50px" />
... ... @@ -136,7 +145,6 @@
136 145 </div>
137 146 </div>
138 147  
139   -
140 148 </div>
141 149 </div>
142 150 </div>
... ... @@ -145,8 +153,8 @@
145 153 <div class="row">
146 154  
147 155 <div class="img-thumbnail" id="canvasDiv" style="overflow: scroll;width:100%;position:relative">
148   - <canvas id="canvasPaint" ng-click="FreeStylePaint($event)" width="2277" height="1024" class="canvas-annotationStyle1"></canvas>
149   - <canvas id="canvas" width="2277" height="1024" class="canvas-annotationStyle"></canvas>
  156 + <canvas id="canvasPaint" ng-click="FreeStylePaint($event)" width="2277" height="1024" class="canvas-annotationStyle1" style="left:0px;position:absolute"></canvas>
  157 + <canvas id="canvas" width="2277" height="1024" class="canvas-annotationStyle" style="left:0px;position:absolute"></canvas>
150 158  
151 159 <img id="modItemImage" alt="" title="" style="left:0px;top:0px;position:absolute">
152 160 </div>
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/da/da-view.html
... ... @@ -212,7 +212,16 @@
212 212 </div>
213 213  
214 214 <div class="col-xs-12">
215   - <button id="btnStrutureBox" onclick="enableShowHideStructureBox(event)" class="btn btn-primary btn-sm marginTop5 btn-block tooltip-custom" data-toggle="tooltip" data-placement="bottom" name="showAnnotationStructure" title="Show/Hide Structure Name Boxes"> <img src="content/images/comment-box.png" alt=""></button>
  215 + <button id="btnStrutureBox" onclick="enableShowHideStructureBox(event)" class="btn btn-primary btn-sm marginTop5 btn-block tooltip-custom" data-toggle="tooltip" data-placement="bottom" name="showAnnotationStructure" title="Hide Structure Name Boxes">
  216 + <i class="far fa-comment-alt-times" style="font-size:20px;"></i>
  217 + </button>
  218 + </div>
  219 +
  220 + <div class="col-xs-12">
  221 + <button id="multiannotation" onclick="keyControlDAActive(event)" class="btn btn-primary btn-sm marginTop5 btn-block tooltip-custom disableMultiAnnotationText" data-toggle="tooltip" data-placement="bottom" title="Active Multiple Structure" >
  222 + <!-- <img src="content/images/mult-annotation.png" alt="" style="height:23px;margin-top:-1px"> -->
  223 + <i class="far fa-comments" style="font-size:20px;"></i>
  224 + </button>
216 225 </div>
217 226  
218 227 </div>
... ... @@ -231,9 +240,10 @@
231 240 </div>
232 241  
233 242 <div class="main2">
234   - <div class="stickey-area" style="margin-left:7px">
  243 + <div class="stickey-area" id="dastickeyarea" style="margin-left:7px;height:44px">
235 244 <div class="breadcrumb " style="margin-bottom:0px">
236 245 <div class="">
  246 + <div id="searchlangaugeDiv"></div>
237 247 <div class="input-group col-sm-6 col-xs-7 col-md-7 pull-left" id="da-input">
238 248  
239 249 <div id="backdrop">
... ... @@ -244,17 +254,14 @@
244 254 </div>
245 255  
246 256 </div>
247   - <div class="btn-group" style="vertical-align:top; float:left;margin-right: -10px;">
  257 + <div class="btn-group" style="vertical-align:top; float:left;margin-right: 5px;">
248 258  
249 259 <button type="button" id="btnDATermSearch" style="padding: 5px 10px 4px 10px !important;border: none;" class="btn btn-success btn-sm" onclick="OnSearch(event)">
250 260 <!--<img src="~/../content/images/DA/go-to.png" style="height: 30px;width:50px">-->
251 261 <i class="fa fa-caret-down" style="font-size:20px;"></i>
252 262 </button>
253   - </div>
254   - <div id="searchlangaugeDiv">
255   -
256   - </div>
257   - <div class="btn-group" style="vertical-align:top;margin-right: 10px;">
  263 + </div>
  264 + <div class="btn-group" style="vertical-align:top;">
258 265 <!-- <h6 class="text-center text-primary txt-white f11 col-xs-12">Search</h6>-->
259 266 <button type="button" id="btnSearchList" class="btn btn-primary btn-sm col-xs-12" onclick="ApplySearch(event)" style="margin-right:2px;">
260 267 <!-- <i class="fa fa-search"></i>-->
... ...
400-SOURCECODE/AIAHTML5.Web/content/images/mult-annotation.png 0 โ†’ 100644

1023 Bytes

400-SOURCECODE/AIAHTML5.Web/index.aspx
1 1 ๏ปฟ<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="ADAM.AIA.index" %>
  2 +<%@ OutputCache NoStore="True" Duration="1" VaryByParam='*' Location="None" %>
2 3  
3 4 <!DOCTYPE html>
4 5 <html lang="en" ng-cloak ng-app="AIA">
... ... @@ -16,12 +17,13 @@
16 17 <title>A.D.A.M. Interactive Anatomy</title>
17 18 <link rel="icon" type="image/x-icon" href="/content/images/favicon.ico">
18 19  
19   - <link href="themes/default/css/bootstrap/3.3.6/bootstrap.css?v=1.0.0" rel="stylesheet" />
  20 + <link href="themes/default/css/bootstrap/3.3.6/bootstrap.css?v=<%= version %>" rel="stylesheet" />
20 21  
21   - <link href="themes/default/css/bootstrap/3.3.6/main.css?v=1.0.0" rel="stylesheet" />
  22 + <link href="themes/default/css/bootstrap/3.3.6/main.css?v=<%= version %>" rel="stylesheet" />
22 23  
23 24 <link href="themes/default/css/bootstrap/3.3.6/secondeffect.css" rel="stylesheet" />
24 25  
  26 + <link href="https://kit-pro.fontawesome.com/releases/v5.15.4/css/pro.min.css" rel="stylesheet">
25 27 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
26 28 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,800,700,600,400italic">
27 29  
... ... @@ -36,12 +38,12 @@
36 38  
37 39 <link href="themes/default/css/bootstrap/3.3.6/jquery-ui.css" rel="stylesheet" />
38 40 <link href="themes/default/css/bootstrap/3.3.6/jstreestyle.min.css" rel="stylesheet" />
39   - <link href="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.css?v=1.0.0" rel="stylesheet" />
  41 + <link href="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.css?v=<%= version %>" rel="stylesheet" />
40 42 <link href="libs/video_4_12_11/css/video-js_4_12_11.css" rel="stylesheet" />
41 43 <link href="libs/jquery/jquery_plugin/SpeechBubble/css/bubble.css" rel="stylesheet" />
42 44 <link href="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.css" rel="stylesheet" />
43 45 <link href="themes/default/css/bootstrap/3.3.6/jquery.minicolors.css" rel="stylesheet" />
44   - <link href="content/css/print-main.css?v=1.0.0" rel="stylesheet" />
  46 + <link href="content/css/print-main.css?v=<%= version %>" rel="stylesheet" />
45 47  
46 48 <!--Annotation Toolbar: Jcanvas-->
47 49 <style>
... ... @@ -494,9 +496,9 @@
494 496 <div class="paddTop15">
495 497 <!-- Nav tabs -->
496 498 <ul class="nav nav-tabs" role="tablist">
497   - <li role="presentation" ng-class="{'active':SettingsTab==1}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(1)" style="cursor: pointer;">Appearance</a></li>
498   - <li role="presentation" ng-class="{'active':SettingsTab==2}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(2)" style="cursor: pointer;">Lexicons</a></li>
499   - <li role="presentation" ng-class="{'active':SettingsTab==3}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(3)" style="cursor: pointer;">Dissectible</a></li>
  499 + <li role="presentation" ng-class="{'active':SettingsTab==1}"><a id="tabappearance" role="tab" class="padd5" ng-click="SetSettingActiveTab(1)" style="cursor: pointer;">Appearance</a></li>
  500 + <li role="presentation" ng-class="{'active':SettingsTab==2}"><a id="tablexicons" role="tab" class="padd5" ng-click="SetSettingActiveTab(2)" style="cursor: pointer;">Lexicons</a></li>
  501 + <li role="presentation" ng-class="{'active':SettingsTab==3}"><a id="tabdissectible" role="tab" class="padd5" ng-click="SetSettingActiveTab(3)" style="cursor: pointer;">Dissectible</a></li>
500 502  
501 503 </ul>
502 504 <!-- Tab panes -->
... ... @@ -1556,15 +1558,14 @@
1556 1558  
1557 1559 }
1558 1560 </script>
1559   -
1560   -
  1561 +
1561 1562 <!--<script src="libs/jquery/1.11.3/jquery.min.js"></script>-->
1562 1563 <script src="libs/jquery/2.1.3/jquery.min.js"></script>
1563 1564 <script src="libs/jquery/1.11.4/jquery-ui.js"></script>
1564 1565 <script src="libs/xml2json.js"></script>
1565 1566  
1566 1567 <script src="libs/jquery/jquery_plugin/jquery.mCustomScrollbar.concat.min.js"></script>
1567   - <script src="themes/default/scripts/bootstrap/3.3.5/bootstrap.js?v=1.0.0"></script>
  1568 + <script src="themes/default/scripts/bootstrap/3.3.5/bootstrap.js?v=<%= version %>"></script>
1568 1569 <script src="libs/angular/1.4.9/angular.min.js"></script>
1569 1570 <script src="libs/angular/1.4.9/angular-route.min.js"></script>
1570 1571 <script src="libs/angular/1.4.9/angular-sanitize.min.js"></script>
... ... @@ -1579,12 +1580,11 @@
1579 1580  
1580 1581 <script src="libs/jinqJs.js"></script>
1581 1582  
1582   - <script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js?v=1.0.0"></script>
  1583 + <script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js?v=<%= version %>"></script>
1583 1584 <script src="libs/video_4_12_11/video_4_12_11.js"></script>
1584 1585 <script src="libs/jquery/jquery_plugin/SpeechBubble/bubble.js"></script>
1585   - <!--<script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.min.js"></script>-->
1586   - <script src="app/main/AIA.js?v=1.0.0"></script>
1587   - <script src="app/main/Link.js?v=1.0.0"></script>
  1586 + <script src="app/main/AIA.js?v=<%= version %>"></script>
  1587 + <script src="app/main/Link.js?v=<%= version %>"></script>
1588 1588 <script src="content/scripts/js/custom/custom.js"></script>
1589 1589 <script src="app/filters/ColorMatrixFilter.js"></script>
1590 1590 <script src="app/utility/Matrix.js"></script>
... ... @@ -1592,48 +1592,43 @@
1592 1592 <script src="app/utility/Rectangle.js"></script>
1593 1593 <script src="app/utility/BitmapData.js"></script>
1594 1594 <script src="app/utility/Paint.js"></script>
1595   - <script src="app/controllers/DAController.js?v=1.0.0"></script>
1596   - <script src="app/controllers/CIController.js?v=1.0.0"></script>
1597   - <script src="app/controllers/AIController.js?v=1.0.0"></script>
1598   - <script src="app/controllers/CAController.js?v=1.0.0"></script>
1599   - <script src="app/controllers/3dAController.js?v=1.0.0"></script>
1600   - <script src="app/controllers/CurrBuildController.js?v=1.0.0"></script>
1601   - <script src="app/controllers/AnatTestController.js?v=1.0.0"></script>
1602   - <script src="app/controllers/LabExercController.js?v=1.0.0"></script>
1603   - <script src="app/controllers/ADAMImgController.js?v=1.0.0"></script>
1604   - <script src="app/controllers/AODController.js?v=1.0.0"></script>
1605   - <script src="app/controllers/HomeController.js?v=1.0.0"></script>
1606   - <script src="app/controllers/LinkController.js?v=1.0.0"></script>
1607   - <script src="app/services/AuthenticationService.js?v=1.0.0"></script>
1608   - <script src="app/services/ConfigurationService.js?v=1.0.0"></script>
1609   - <script src="app/services/AdminService.js?v=1.0.0"></script>
1610   - <script src="app/controllers/TileViewListController.js?v=1.0.0"></script>
1611   - <script src="app/controllers/MyPictureController.js?v=1.0.0"></script>
1612   - <script src="app/controllers/MyAnimationController.js?v=1.0.0"></script>
1613   - <script src="app/services/ModuleService.js?v=1.0.0"></script>
1614   - <script src="../app/filters/AIAFilter.js?v=1.0.0"></script>
1615   - <script src="app/services/DataService.js?v=1.0.0"></script>
1616   - <script src="app/services/TermService.js?v=1.0.0"></script>
1617   - <script src="app/directives/AIADirectives.js?v=1.0.0"></script>
  1595 + <script src="app/controllers/DAController.js?v=<%= version %>"></script>
  1596 + <script src="app/controllers/CIController.js?v=<%= version %>"></script>
  1597 + <script src="app/controllers/AIController.js?v=<%= version %>"></script>
  1598 + <script src="app/controllers/CAController.js?v=<%= version %>"></script>
  1599 + <script src="app/controllers/3dAController.js?v=<%= version %>"></script>
  1600 + <script src="app/controllers/CurrBuildController.js?v=<%= version %>"></script>
  1601 + <script src="app/controllers/AnatTestController.js?v=<%= version %>"></script>
  1602 + <script src="app/controllers/LabExercController.js?v=<%= version %>"></script>
  1603 + <script src="app/controllers/ADAMImgController.js?v=<%= version %>"></script>
  1604 + <script src="app/controllers/AODController.js?v=<%= version %>"></script>
  1605 + <script src="app/controllers/HomeController.js?v=<%= version %>"></script>
  1606 + <script src="app/controllers/LinkController.js?v=<%= version %>"></script>
  1607 + <script src="app/services/AuthenticationService.js?v=<%= version %>"></script>
  1608 + <script src="app/services/ConfigurationService.js?v=<%= version %>"></script>
  1609 + <script src="app/services/AdminService.js?v=<%= version %>"></script>
  1610 + <script src="app/controllers/TileViewListController.js?v=<%= version %>"></script>
  1611 + <script src="app/controllers/MyPictureController.js?v=<%= version %>"></script>
  1612 + <script src="app/controllers/MyAnimationController.js?v=<%= version %>"></script>
  1613 + <script src="app/services/ModuleService.js?v=<%= version %>"></script>
  1614 + <script src="app/filters/AIAFilter.js?v=<%= version %>"></script>
  1615 + <script src="app/services/DataService.js?v=<%= version %>"></script>
  1616 + <script src="app/services/TermService.js?v=<%= version %>"></script>
  1617 + <script src="app/directives/AIADirectives.js?v=<%= version %>"></script>
1618 1618 <script src="libs/jquery/jquery_plugin/jqueryui.js"></script>
1619 1619 <script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>
1620 1620 <script src="libs/jstree.min.js"></script>
1621   - <script src="../app/services/LabExerciseService.js?v=1.0.0"></script>
  1621 + <script src="app/services/LabExerciseService.js?v=<%= version %>"></script>
1622 1622 <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
1623 1623  
1624 1624 <script src="libs/jquery/jquery_plugin/color-picker/jquery.minicolors.min.js"></script>
1625   - <!--<script src="libs/colorpicker/jquery.minicolors.min.js"></script>-->
1626   - <!--<script src="libs/color-picker/jquery.minicolors.min.js"></script>-->
1627   -
1628   - <script src="libs/sketch.js"></script>
  1625 +
  1626 + <script src="libs/sketch.js?v=<%= version %>"></script>
1629 1627 <script src="libs/tinymce/tinymce.min.js"></script>
1630 1628 <script src="libs/tinymce/jquery.tinymce.min.js"></script>
1631   - <!-- <script src="libs/tinymce/tinymce.min.js"></script> -->
1632   - <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>-->
1633 1629 <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
1634   - <script src="libs/html2canvas.js?v=1.0.0"></script>
  1630 + <script src="libs/html2canvas.js?v=<%= version %>"></script>
1635 1631 <script src="libs/FileSaverNew.js"></script>
1636   - <script src="app/services/LabExerciseService.js?v=1.0.0"></script>
1637 1632 <script src="libs/clipboard.min.js"></script>
1638 1633  
1639 1634 <script>
... ...
400-SOURCECODE/AIAHTML5.Web/index.aspx.cs
... ... @@ -19,6 +19,8 @@ namespace ADAM.AIA
19 19 public string test = "";
20 20 public bool isCalsCredantial = false;
21 21  
  22 + public string version = "1.0." + DateTime.Now.Hour.ToString();//refresh script and css by adding version every hour
  23 +
22 24 protected void Page_Load(object sender, EventArgs e)
23 25 {
24 26  
... ...
400-SOURCECODE/AIAHTML5.Web/libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js
... ... @@ -1061,7 +1061,8 @@ var jsPanel = {
1061 1061  
1062 1062 panel.css({
1063 1063 width: panel.option.size.width,
1064   - height: currentController == 'CIController' ? parseInt(panel.option.size.height, 10) : currentController == 'CAController' ? parseInt(panel.option.size.height, 10) : parseInt(panel.option.size.height, 10) + 35,
  1064 + height:panel.option.size.height,
  1065 + //height: currentController == 'CIController' ? parseInt(panel.option.size.height, 10) : currentController == 'CAController' ? parseInt(panel.option.size.height, 10) : parseInt(panel.option.size.height, 10) + 35,
1065 1066 top: panelTop,
1066 1067 left: panel.option.position.left
1067 1068 });
... ...
400-SOURCECODE/AIAHTML5.Web/libs/sketch.js
... ... @@ -20,10 +20,23 @@ var __slice = Array.prototype.slice;
20 20 } else {
21 21 return $.error('Sketch.js did not recognize the given command.');
22 22 }
23   - } else if (sketch) {
  23 + }
  24 + else if (sketch)
  25 + {
  26 + if(key!=undefined)
  27 + {
  28 + // redraw action while resize panel
  29 + this.data('sketch', new Sketch(this.get(0), key));
  30 + return this;
  31 + }
  32 +
24 33 return sketch;
25   - } else {
  34 + }
  35 + else
  36 + {
  37 +
26 38 this.data('sketch', new Sketch(this.get(0), key));
  39 +
27 40 return this;
28 41 }
29 42 };
... ... @@ -46,8 +59,12 @@ var __slice = Array.prototype.slice;
46 59 if(opts!=undefined)
47 60 {
48 61 this.actions= opts.drawAction;
49   - // Redraw image by using the data
50   - this.redraw();
  62 + if(this.actions!=undefined)
  63 + {
  64 + // Redraw image by using the data
  65 + this.redraw();
  66 + }
  67 +
51 68 }
52 69 this.action = [];
53 70 this.canvas.bind('click mousedown mouseup mousemove mouseleave mouseout touchstart touchmove touchend touchcancel', this.onEvent);
... ...
400-SOURCECODE/AIAHTML5.Web/themes/default/css/bootstrap/3.3.6/main.css
... ... @@ -1035,11 +1035,50 @@ background-size:cover;
1035 1035 background-color: lightgrey;
1036 1036 }
1037 1037  
1038   - .disableHideShowStructure
1039   - {
1040   - background:#4b4b4b !important;
1041   - border-color:#3f3f3f !important;
1042   - }
  1038 +.disableAAAnnotationText {
  1039 + background:#4b4b4b !important;
  1040 + border-color:#3f3f3f !important;
  1041 + }
  1042 +.disableAAAnnotationText:hover {
  1043 + color: #ffffff;
  1044 + background-color: #0072a7 !important;
  1045 + border-color: #005076 !important;
  1046 + }
  1047 +
  1048 +.disableAAMultiAnnotationText
  1049 + {
  1050 + background:#4b4b4b !important;
  1051 + border-color:#3f3f3f !important;
  1052 + }
  1053 +.disableAAMultiAnnotationText:hover {
  1054 + color: #ffffff;
  1055 + background-color: #0072a7 !important;
  1056 + border-color: #005076 !important;
  1057 + }
  1058 +
  1059 +.disableHideShowStructure
  1060 + {
  1061 + background:#4b4b4b !important;
  1062 + border-color:#3f3f3f !important;
  1063 + }
  1064 +.disableHideShowStructure:hover {
  1065 + color: #ffffff;
  1066 + background-color: #0072a7 !important;
  1067 + border-color: #005076 !important;
  1068 + }
  1069 +
  1070 +.disableMultiAnnotationText
  1071 + {
  1072 + background:#4b4b4b !important;
  1073 + border-color:#3f3f3f !important;
  1074 + }
  1075 +
  1076 +.disableMultiAnnotationText:hover {
  1077 + color: #ffffff;
  1078 + background-color: #0072a7 !important;
  1079 + border-color: #005076 !important;
  1080 + }
  1081 +
1043 1082 .btn-annotation-erase:hover
1044 1083 {
1045 1084 color: #fff;
... ... @@ -1262,7 +1301,7 @@ a[disabled] {
1262 1301  
1263 1302  
1264 1303 /*06-12-2017*/
1265   -.customTable .table-responsive{padding-left:0; padding-right:0;width: 99%; margin-left: 11px;}
  1304 +.customTable .table-responsive{padding-left:0; padding-right:0;width: 99%; margin-left: 8px;}
1266 1305 .customTable .table-fixed .table {
1267 1306 max-width:980px;
1268 1307 table-layout:fixed;
... ...
400-SOURCECODE/Admin/package-lock.json
... ... @@ -122,6 +122,19 @@
122 122 "zone.js": "^0.8.14"
123 123 },
124 124 "dependencies": {
  125 + "ajv": {
  126 + "version": "6.12.6",
  127 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
  128 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
  129 + "dev": true,
  130 + "optional": true,
  131 + "requires": {
  132 + "fast-deep-equal": "^3.1.1",
  133 + "fast-json-stable-stringify": "^2.0.0",
  134 + "json-schema-traverse": "^0.4.1",
  135 + "uri-js": "^4.2.2"
  136 + }
  137 + },
125 138 "ansi-styles": {
126 139 "version": "3.2.1",
127 140 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
... ... @@ -131,6 +144,20 @@
131 144 "color-convert": "^1.9.0"
132 145 }
133 146 },
  147 + "assert-plus": {
  148 + "version": "1.0.0",
  149 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
  150 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
  151 + "dev": true,
  152 + "optional": true
  153 + },
  154 + "aws-sign2": {
  155 + "version": "0.7.0",
  156 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
  157 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
  158 + "dev": true,
  159 + "optional": true
  160 + },
134 161 "chalk": {
135 162 "version": "2.4.2",
136 163 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
... ... @@ -142,12 +169,175 @@
142 169 "supports-color": "^5.3.0"
143 170 }
144 171 },
  172 + "cross-spawn": {
  173 + "version": "3.0.1",
  174 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
  175 + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
  176 + "dev": true,
  177 + "optional": true,
  178 + "requires": {
  179 + "lru-cache": "^4.0.1",
  180 + "which": "^1.2.9"
  181 + }
  182 + },
  183 + "fast-deep-equal": {
  184 + "version": "3.1.3",
  185 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
  186 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
  187 + "dev": true,
  188 + "optional": true
  189 + },
  190 + "form-data": {
  191 + "version": "2.3.3",
  192 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
  193 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
  194 + "dev": true,
  195 + "optional": true,
  196 + "requires": {
  197 + "asynckit": "^0.4.0",
  198 + "combined-stream": "^1.0.6",
  199 + "mime-types": "^2.1.12"
  200 + }
  201 + },
  202 + "har-schema": {
  203 + "version": "2.0.0",
  204 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
  205 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
  206 + "dev": true,
  207 + "optional": true
  208 + },
  209 + "har-validator": {
  210 + "version": "5.1.5",
  211 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
  212 + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
  213 + "dev": true,
  214 + "optional": true,
  215 + "requires": {
  216 + "ajv": "^6.12.3",
  217 + "har-schema": "^2.0.0"
  218 + }
  219 + },
145 220 "has-flag": {
146 221 "version": "3.0.0",
147 222 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
148 223 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
149 224 "dev": true
150 225 },
  226 + "http-signature": {
  227 + "version": "1.2.0",
  228 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
  229 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
  230 + "dev": true,
  231 + "optional": true,
  232 + "requires": {
  233 + "assert-plus": "^1.0.0",
  234 + "jsprim": "^1.2.2",
  235 + "sshpk": "^1.7.0"
  236 + }
  237 + },
  238 + "json-schema-traverse": {
  239 + "version": "0.4.1",
  240 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
  241 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
  242 + "dev": true,
  243 + "optional": true
  244 + },
  245 + "node-gyp": {
  246 + "version": "3.8.0",
  247 + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
  248 + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
  249 + "dev": true,
  250 + "optional": true,
  251 + "requires": {
  252 + "fstream": "^1.0.0",
  253 + "glob": "^7.0.3",
  254 + "graceful-fs": "^4.1.2",
  255 + "mkdirp": "^0.5.0",
  256 + "nopt": "2 || 3",
  257 + "npmlog": "0 || 1 || 2 || 3 || 4",
  258 + "osenv": "0",
  259 + "request": "^2.87.0",
  260 + "rimraf": "2",
  261 + "semver": "~5.3.0",
  262 + "tar": "^2.0.0",
  263 + "which": "1"
  264 + },
  265 + "dependencies": {
  266 + "nopt": {
  267 + "version": "3.0.6",
  268 + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
  269 + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
  270 + "dev": true,
  271 + "optional": true,
  272 + "requires": {
  273 + "abbrev": "1"
  274 + }
  275 + },
  276 + "semver": {
  277 + "version": "5.3.0",
  278 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
  279 + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
  280 + "dev": true,
  281 + "optional": true
  282 + }
  283 + }
  284 + },
  285 + "node-sass": {
  286 + "version": "4.14.1",
  287 + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
  288 + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
  289 + "dev": true,
  290 + "optional": true,
  291 + "requires": {
  292 + "async-foreach": "^0.1.3",
  293 + "chalk": "^1.1.1",
  294 + "cross-spawn": "^3.0.0",
  295 + "gaze": "^1.0.0",
  296 + "get-stdin": "^4.0.1",
  297 + "glob": "^7.0.3",
  298 + "in-publish": "^2.0.0",
  299 + "lodash": "^4.17.15",
  300 + "meow": "^3.7.0",
  301 + "mkdirp": "^0.5.1",
  302 + "nan": "^2.13.2",
  303 + "node-gyp": "^3.8.0",
  304 + "npmlog": "^4.0.0",
  305 + "request": "^2.88.0",
  306 + "sass-graph": "2.2.5",
  307 + "stdout-stream": "^1.4.0",
  308 + "true-case-path": "^1.0.2"
  309 + },
  310 + "dependencies": {
  311 + "ansi-styles": {
  312 + "version": "2.2.1",
  313 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
  314 + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
  315 + "dev": true,
  316 + "optional": true
  317 + },
  318 + "chalk": {
  319 + "version": "1.1.3",
  320 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
  321 + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
  322 + "dev": true,
  323 + "optional": true,
  324 + "requires": {
  325 + "ansi-styles": "^2.2.1",
  326 + "escape-string-regexp": "^1.0.2",
  327 + "has-ansi": "^2.0.0",
  328 + "strip-ansi": "^3.0.0",
  329 + "supports-color": "^2.0.0"
  330 + }
  331 + },
  332 + "supports-color": {
  333 + "version": "2.0.0",
  334 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
  335 + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
  336 + "dev": true,
  337 + "optional": true
  338 + }
  339 + }
  340 + },
151 341 "nopt": {
152 342 "version": "4.0.1",
153 343 "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
... ... @@ -158,6 +348,56 @@
158 348 "osenv": "^0.1.4"
159 349 }
160 350 },
  351 + "oauth-sign": {
  352 + "version": "0.9.0",
  353 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
  354 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
  355 + "dev": true,
  356 + "optional": true
  357 + },
  358 + "performance-now": {
  359 + "version": "2.1.0",
  360 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
  361 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
  362 + "dev": true,
  363 + "optional": true
  364 + },
  365 + "qs": {
  366 + "version": "6.5.2",
  367 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
  368 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
  369 + "dev": true,
  370 + "optional": true
  371 + },
  372 + "request": {
  373 + "version": "2.88.2",
  374 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
  375 + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
  376 + "dev": true,
  377 + "optional": true,
  378 + "requires": {
  379 + "aws-sign2": "~0.7.0",
  380 + "aws4": "^1.8.0",
  381 + "caseless": "~0.12.0",
  382 + "combined-stream": "~1.0.6",
  383 + "extend": "~3.0.2",
  384 + "forever-agent": "~0.6.1",
  385 + "form-data": "~2.3.2",
  386 + "har-validator": "~5.1.3",
  387 + "http-signature": "~1.2.0",
  388 + "is-typedarray": "~1.0.0",
  389 + "isstream": "~0.1.2",
  390 + "json-stringify-safe": "~5.0.1",
  391 + "mime-types": "~2.1.19",
  392 + "oauth-sign": "~0.9.0",
  393 + "performance-now": "^2.1.0",
  394 + "qs": "~6.5.2",
  395 + "safe-buffer": "^5.1.2",
  396 + "tough-cookie": "~2.5.0",
  397 + "tunnel-agent": "^0.6.0",
  398 + "uuid": "^3.3.2"
  399 + }
  400 + },
161 401 "supports-color": {
162 402 "version": "5.5.0",
163 403 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
... ... @@ -166,6 +406,18 @@
166 406 "requires": {
167 407 "has-flag": "^3.0.0"
168 408 }
  409 + },
  410 + "tar": {
  411 + "version": "2.2.2",
  412 + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
  413 + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
  414 + "dev": true,
  415 + "optional": true,
  416 + "requires": {
  417 + "block-stream": "*",
  418 + "fstream": "^1.0.12",
  419 + "inherits": "2"
  420 + }
169 421 }
170 422 }
171 423 },
... ... @@ -272,6 +524,75 @@
272 524 "tsickle": "^0.21.0"
273 525 }
274 526 },
  527 + "@babel/code-frame": {
  528 + "version": "7.15.8",
  529 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
  530 + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
  531 + "dev": true,
  532 + "requires": {
  533 + "@babel/highlight": "^7.14.5"
  534 + }
  535 + },
  536 + "@babel/helper-validator-identifier": {
  537 + "version": "7.15.7",
  538 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
  539 + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
  540 + "dev": true
  541 + },
  542 + "@babel/highlight": {
  543 + "version": "7.14.5",
  544 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
  545 + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
  546 + "dev": true,
  547 + "requires": {
  548 + "@babel/helper-validator-identifier": "^7.14.5",
  549 + "chalk": "^2.0.0",
  550 + "js-tokens": "^4.0.0"
  551 + },
  552 + "dependencies": {
  553 + "ansi-styles": {
  554 + "version": "3.2.1",
  555 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
  556 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
  557 + "dev": true,
  558 + "requires": {
  559 + "color-convert": "^1.9.0"
  560 + }
  561 + },
  562 + "chalk": {
  563 + "version": "2.4.2",
  564 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
  565 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
  566 + "dev": true,
  567 + "requires": {
  568 + "ansi-styles": "^3.2.1",
  569 + "escape-string-regexp": "^1.0.5",
  570 + "supports-color": "^5.3.0"
  571 + }
  572 + },
  573 + "has-flag": {
  574 + "version": "3.0.0",
  575 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
  576 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
  577 + "dev": true
  578 + },
  579 + "js-tokens": {
  580 + "version": "4.0.0",
  581 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
  582 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
  583 + "dev": true
  584 + },
  585 + "supports-color": {
  586 + "version": "5.5.0",
  587 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
  588 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
  589 + "dev": true,
  590 + "requires": {
  591 + "has-flag": "^3.0.0"
  592 + }
  593 + }
  594 + }
  595 + },
275 596 "@ng-idle/core": {
276 597 "version": "2.0.0-beta.9",
277 598 "resolved": "https://registry.npmjs.org/@ng-idle/core/-/core-2.0.0-beta.9.tgz",
... ... @@ -345,11 +666,23 @@
345 666 "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.46.tgz",
346 667 "integrity": "sha512-U64bkZqTfFi4HXHqOckD1Uxvg+oPooCjD5bQ10t9xOG5Ke6cR8tFnvERXrQtrRWvgS428nhAL1V8qv1b88kgyQ=="
347 668 },
  669 + "@types/minimist": {
  670 + "version": "1.2.2",
  671 + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
  672 + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
  673 + "dev": true
  674 + },
348 675 "@types/node": {
349 676 "version": "6.14.7",
350 677 "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.7.tgz",
351 678 "integrity": "sha512-YbPXbaynBTe0pVExPhL76TsWnxSPeFAvImIsmylpBWn/yfw+lHy+Q68aawvZHsgskT44ZAoeE67GM5f+Brekew=="
352 679 },
  680 + "@types/normalize-package-data": {
  681 + "version": "2.4.1",
  682 + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
  683 + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
  684 + "dev": true
  685 + },
353 686 "@types/q": {
354 687 "version": "0.0.32",
355 688 "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
... ... @@ -491,8 +824,7 @@
491 824 "version": "1.0.1",
492 825 "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
493 826 "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
494   - "dev": true,
495   - "optional": true
  827 + "dev": true
496 828 },
497 829 "angular2-json2csv": {
498 830 "version": "1.1.2",
... ... @@ -700,11 +1032,10 @@
700 1032 "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
701 1033 },
702 1034 "are-we-there-yet": {
703   - "version": "1.1.5",
704   - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
705   - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
  1035 + "version": "1.1.7",
  1036 + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
  1037 + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
706 1038 "dev": true,
707   - "optional": true,
708 1039 "requires": {
709 1040 "delegates": "^1.0.0",
710 1041 "readable-stream": "^2.0.6"
... ... @@ -871,8 +1202,7 @@
871 1202 "version": "0.1.3",
872 1203 "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
873 1204 "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
874   - "dev": true,
875   - "optional": true
  1205 + "dev": true
876 1206 },
877 1207 "asynckit": {
878 1208 "version": "0.4.0",
... ... @@ -2015,8 +2345,7 @@
2015 2345 "version": "1.1.0",
2016 2346 "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
2017 2347 "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
2018   - "dev": true,
2019   - "optional": true
  2348 + "dev": true
2020 2349 },
2021 2350 "constants-browserify": {
2022 2351 "version": "1.0.0",
... ... @@ -2489,6 +2818,16 @@
2489 2818 "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
2490 2819 "dev": true
2491 2820 },
  2821 + "decamelize-keys": {
  2822 + "version": "1.1.0",
  2823 + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
  2824 + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
  2825 + "dev": true,
  2826 + "requires": {
  2827 + "decamelize": "^1.1.0",
  2828 + "map-obj": "^1.0.0"
  2829 + }
  2830 + },
2492 2831 "decode-uri-component": {
2493 2832 "version": "0.2.0",
2494 2833 "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
... ... @@ -2632,8 +2971,7 @@
2632 2971 "version": "1.0.0",
2633 2972 "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
2634 2973 "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
2635   - "dev": true,
2636   - "optional": true
  2974 + "dev": true
2637 2975 },
2638 2976 "denodeify": {
2639 2977 "version": "1.2.1",
... ... @@ -2965,6 +3303,12 @@
2965 3303 "integrity": "sha1-ObZ3/CgF9VFzc1N2/O8njqpEUqE=",
2966 3304 "dev": true
2967 3305 },
  3306 + "emoji-regex": {
  3307 + "version": "7.0.3",
  3308 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
  3309 + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
  3310 + "dev": true
  3311 + },
2968 3312 "emojis-list": {
2969 3313 "version": "2.1.0",
2970 3314 "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
... ... @@ -3120,6 +3464,12 @@
3120 3464 "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==",
3121 3465 "dev": true
3122 3466 },
  3467 + "env-paths": {
  3468 + "version": "2.2.1",
  3469 + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
  3470 + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
  3471 + "dev": true
  3472 + },
3123 3473 "errno": {
3124 3474 "version": "0.1.7",
3125 3475 "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
... ... @@ -3951,6 +4301,15 @@
3951 4301 "universalify": "^0.1.0"
3952 4302 }
3953 4303 },
  4304 + "fs-minipass": {
  4305 + "version": "2.1.0",
  4306 + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
  4307 + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
  4308 + "dev": true,
  4309 + "requires": {
  4310 + "minipass": "^3.0.0"
  4311 + }
  4312 + },
3954 4313 "fs-write-stream-atomic": {
3955 4314 "version": "1.0.10",
3956 4315 "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
... ... @@ -4539,7 +4898,6 @@
4539 4898 "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
4540 4899 "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
4541 4900 "dev": true,
4542   - "optional": true,
4543 4901 "requires": {
4544 4902 "aproba": "^1.0.3",
4545 4903 "console-control-strings": "^1.0.0",
... ... @@ -4556,7 +4914,6 @@
4556 4914 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
4557 4915 "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
4558 4916 "dev": true,
4559   - "optional": true,
4560 4917 "requires": {
4561 4918 "number-is-nan": "^1.0.0"
4562 4919 }
... ... @@ -4566,7 +4923,6 @@
4566 4923 "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
4567 4924 "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
4568 4925 "dev": true,
4569   - "optional": true,
4570 4926 "requires": {
4571 4927 "code-point-at": "^1.0.0",
4572 4928 "is-fullwidth-code-point": "^1.0.0",
... ... @@ -4580,7 +4936,6 @@
4580 4936 "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
4581 4937 "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
4582 4938 "dev": true,
4583   - "optional": true,
4584 4939 "requires": {
4585 4940 "globule": "^1.0.0"
4586 4941 }
... ... @@ -4723,11 +5078,10 @@
4723 5078 }
4724 5079 },
4725 5080 "globule": {
4726   - "version": "1.2.1",
4727   - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
4728   - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
  5081 + "version": "1.3.3",
  5082 + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz",
  5083 + "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==",
4729 5084 "dev": true,
4730   - "optional": true,
4731 5085 "requires": {
4732 5086 "glob": "~7.1.1",
4733 5087 "lodash": "~4.17.10",
... ... @@ -4812,6 +5166,12 @@
4812 5166 }
4813 5167 }
4814 5168 },
  5169 + "hard-rejection": {
  5170 + "version": "2.1.0",
  5171 + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
  5172 + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
  5173 + "dev": true
  5174 + },
4815 5175 "has": {
4816 5176 "version": "1.0.3",
4817 5177 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
... ... @@ -5451,9 +5811,9 @@
5451 5811 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
5452 5812 },
5453 5813 "in-publish": {
5454   - "version": "2.0.0",
5455   - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
5456   - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
  5814 + "version": "2.0.1",
  5815 + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
  5816 + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==",
5457 5817 "dev": true,
5458 5818 "optional": true
5459 5819 },
... ... @@ -5613,6 +5973,15 @@
5613 5973 "ci-info": "^1.5.0"
5614 5974 }
5615 5975 },
  5976 + "is-core-module": {
  5977 + "version": "2.7.0",
  5978 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz",
  5979 + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==",
  5980 + "dev": true,
  5981 + "requires": {
  5982 + "has": "^1.0.3"
  5983 + }
  5984 + },
5616 5985 "is-data-descriptor": {
5617 5986 "version": "0.1.4",
5618 5987 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
... ... @@ -6132,6 +6501,12 @@
6132 6501 "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
6133 6502 "dev": true
6134 6503 },
  6504 + "json-parse-even-better-errors": {
  6505 + "version": "2.3.1",
  6506 + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
  6507 + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
  6508 + "dev": true
  6509 + },
6135 6510 "json-schema": {
6136 6511 "version": "0.2.3",
6137 6512 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
... ... @@ -6561,6 +6936,12 @@
6561 6936 "ejs": "^2.5.7"
6562 6937 }
6563 6938 },
  6939 + "lines-and-columns": {
  6940 + "version": "1.1.6",
  6941 + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
  6942 + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
  6943 + "dev": true
  6944 + },
6564 6945 "listify": {
6565 6946 "version": "1.0.0",
6566 6947 "resolved": "https://registry.npmjs.org/listify/-/listify-1.0.0.tgz",
... ... @@ -6962,6 +7343,12 @@
6962 7343 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
6963 7344 "dev": true
6964 7345 },
  7346 + "min-indent": {
  7347 + "version": "1.0.1",
  7348 + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
  7349 + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
  7350 + "dev": true
  7351 + },
6965 7352 "minimalistic-assert": {
6966 7353 "version": "1.0.1",
6967 7354 "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
... ... @@ -6987,6 +7374,60 @@
6987 7374 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
6988 7375 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
6989 7376 },
  7377 + "minimist-options": {
  7378 + "version": "4.1.0",
  7379 + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
  7380 + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
  7381 + "dev": true,
  7382 + "requires": {
  7383 + "arrify": "^1.0.1",
  7384 + "is-plain-obj": "^1.1.0",
  7385 + "kind-of": "^6.0.3"
  7386 + },
  7387 + "dependencies": {
  7388 + "kind-of": {
  7389 + "version": "6.0.3",
  7390 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
  7391 + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
  7392 + "dev": true
  7393 + }
  7394 + }
  7395 + },
  7396 + "minipass": {
  7397 + "version": "3.1.5",
  7398 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz",
  7399 + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==",
  7400 + "dev": true,
  7401 + "requires": {
  7402 + "yallist": "^4.0.0"
  7403 + },
  7404 + "dependencies": {
  7405 + "yallist": {
  7406 + "version": "4.0.0",
  7407 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
  7408 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
  7409 + "dev": true
  7410 + }
  7411 + }
  7412 + },
  7413 + "minizlib": {
  7414 + "version": "2.1.2",
  7415 + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
  7416 + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
  7417 + "dev": true,
  7418 + "requires": {
  7419 + "minipass": "^3.0.0",
  7420 + "yallist": "^4.0.0"
  7421 + },
  7422 + "dependencies": {
  7423 + "yallist": {
  7424 + "version": "4.0.0",
  7425 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
  7426 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
  7427 + "dev": true
  7428 + }
  7429 + }
  7430 + },
6990 7431 "mississippi": {
6991 7432 "version": "2.0.0",
6992 7433 "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
... ... @@ -7096,8 +7537,7 @@
7096 7537 "version": "2.14.0",
7097 7538 "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
7098 7539 "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
7099   - "dev": true,
7100   - "optional": true
  7540 + "dev": true
7101 7541 },
7102 7542 "nanomatch": {
7103 7543 "version": "1.2.13",
... ... @@ -7247,34 +7687,30 @@
7247 7687 "dev": true
7248 7688 },
7249 7689 "node-gyp": {
7250   - "version": "3.8.0",
7251   - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
7252   - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
  7690 + "version": "7.1.2",
  7691 + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz",
  7692 + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==",
7253 7693 "dev": true,
7254   - "optional": true,
7255 7694 "requires": {
7256   - "fstream": "^1.0.0",
7257   - "glob": "^7.0.3",
7258   - "graceful-fs": "^4.1.2",
7259   - "mkdirp": "^0.5.0",
7260   - "nopt": "2 || 3",
7261   - "npmlog": "0 || 1 || 2 || 3 || 4",
7262   - "osenv": "0",
7263   - "request": "^2.87.0",
7264   - "rimraf": "2",
7265   - "semver": "~5.3.0",
7266   - "tar": "^2.0.0",
7267   - "which": "1"
  7695 + "env-paths": "^2.2.0",
  7696 + "glob": "^7.1.4",
  7697 + "graceful-fs": "^4.2.3",
  7698 + "nopt": "^5.0.0",
  7699 + "npmlog": "^4.1.2",
  7700 + "request": "^2.88.2",
  7701 + "rimraf": "^3.0.2",
  7702 + "semver": "^7.3.2",
  7703 + "tar": "^6.0.2",
  7704 + "which": "^2.0.2"
7268 7705 },
7269 7706 "dependencies": {
7270 7707 "ajv": {
7271   - "version": "6.10.2",
7272   - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
7273   - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
  7708 + "version": "6.12.6",
  7709 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
  7710 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
7274 7711 "dev": true,
7275   - "optional": true,
7276 7712 "requires": {
7277   - "fast-deep-equal": "^2.0.1",
  7713 + "fast-deep-equal": "^3.1.1",
7278 7714 "fast-json-stable-stringify": "^2.0.0",
7279 7715 "json-schema-traverse": "^0.4.1",
7280 7716 "uri-js": "^4.2.2"
... ... @@ -7284,50 +7720,50 @@
7284 7720 "version": "1.0.0",
7285 7721 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
7286 7722 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
7287   - "dev": true,
7288   - "optional": true
  7723 + "dev": true
7289 7724 },
7290 7725 "aws-sign2": {
7291 7726 "version": "0.7.0",
7292 7727 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
7293 7728 "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
7294   - "dev": true,
7295   - "optional": true
  7729 + "dev": true
7296 7730 },
7297 7731 "fast-deep-equal": {
7298   - "version": "2.0.1",
7299   - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
7300   - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
7301   - "dev": true,
7302   - "optional": true
  7732 + "version": "3.1.3",
  7733 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
  7734 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
  7735 + "dev": true
7303 7736 },
7304 7737 "form-data": {
7305 7738 "version": "2.3.3",
7306 7739 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
7307 7740 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
7308 7741 "dev": true,
7309   - "optional": true,
7310 7742 "requires": {
7311 7743 "asynckit": "^0.4.0",
7312 7744 "combined-stream": "^1.0.6",
7313 7745 "mime-types": "^2.1.12"
7314 7746 }
7315 7747 },
  7748 + "graceful-fs": {
  7749 + "version": "4.2.8",
  7750 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
  7751 + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
  7752 + "dev": true
  7753 + },
7316 7754 "har-schema": {
7317 7755 "version": "2.0.0",
7318 7756 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
7319 7757 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
7320   - "dev": true,
7321   - "optional": true
  7758 + "dev": true
7322 7759 },
7323 7760 "har-validator": {
7324   - "version": "5.1.3",
7325   - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
7326   - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
  7761 + "version": "5.1.5",
  7762 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
  7763 + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
7327 7764 "dev": true,
7328   - "optional": true,
7329 7765 "requires": {
7330   - "ajv": "^6.5.5",
  7766 + "ajv": "^6.12.3",
7331 7767 "har-schema": "^2.0.0"
7332 7768 }
7333 7769 },
... ... @@ -7336,7 +7772,6 @@
7336 7772 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
7337 7773 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
7338 7774 "dev": true,
7339   - "optional": true,
7340 7775 "requires": {
7341 7776 "assert-plus": "^1.0.0",
7342 7777 "jsprim": "^1.2.2",
... ... @@ -7347,15 +7782,22 @@
7347 7782 "version": "0.4.1",
7348 7783 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
7349 7784 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
  7785 + "dev": true
  7786 + },
  7787 + "lru-cache": {
  7788 + "version": "6.0.0",
  7789 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
  7790 + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
7350 7791 "dev": true,
7351   - "optional": true
  7792 + "requires": {
  7793 + "yallist": "^4.0.0"
  7794 + }
7352 7795 },
7353 7796 "nopt": {
7354   - "version": "3.0.6",
7355   - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
7356   - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
  7797 + "version": "5.0.0",
  7798 + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
  7799 + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
7357 7800 "dev": true,
7358   - "optional": true,
7359 7801 "requires": {
7360 7802 "abbrev": "1"
7361 7803 }
... ... @@ -7364,36 +7806,25 @@
7364 7806 "version": "0.9.0",
7365 7807 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
7366 7808 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
7367   - "dev": true,
7368   - "optional": true
  7809 + "dev": true
7369 7810 },
7370 7811 "performance-now": {
7371 7812 "version": "2.1.0",
7372 7813 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
7373 7814 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
7374   - "dev": true,
7375   - "optional": true
7376   - },
7377   - "punycode": {
7378   - "version": "1.4.1",
7379   - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
7380   - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
7381   - "dev": true,
7382   - "optional": true
  7815 + "dev": true
7383 7816 },
7384 7817 "qs": {
7385 7818 "version": "6.5.2",
7386 7819 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
7387 7820 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
7388   - "dev": true,
7389   - "optional": true
  7821 + "dev": true
7390 7822 },
7391 7823 "request": {
7392   - "version": "2.88.0",
7393   - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
7394   - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
  7824 + "version": "2.88.2",
  7825 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
  7826 + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
7395 7827 "dev": true,
7396   - "optional": true,
7397 7828 "requires": {
7398 7829 "aws-sign2": "~0.7.0",
7399 7830 "aws4": "^1.8.0",
... ... @@ -7402,7 +7833,7 @@
7402 7833 "extend": "~3.0.2",
7403 7834 "forever-agent": "~0.6.1",
7404 7835 "form-data": "~2.3.2",
7405   - "har-validator": "~5.1.0",
  7836 + "har-validator": "~5.1.3",
7406 7837 "http-signature": "~1.2.0",
7407 7838 "is-typedarray": "~1.0.0",
7408 7839 "isstream": "~0.1.2",
... ... @@ -7412,28 +7843,43 @@
7412 7843 "performance-now": "^2.1.0",
7413 7844 "qs": "~6.5.2",
7414 7845 "safe-buffer": "^5.1.2",
7415   - "tough-cookie": "~2.4.3",
  7846 + "tough-cookie": "~2.5.0",
7416 7847 "tunnel-agent": "^0.6.0",
7417 7848 "uuid": "^3.3.2"
7418 7849 }
7419 7850 },
  7851 + "rimraf": {
  7852 + "version": "3.0.2",
  7853 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
  7854 + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
  7855 + "dev": true,
  7856 + "requires": {
  7857 + "glob": "^7.1.3"
  7858 + }
  7859 + },
7420 7860 "semver": {
7421   - "version": "5.3.0",
7422   - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
7423   - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
  7861 + "version": "7.3.5",
  7862 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
  7863 + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
7424 7864 "dev": true,
7425   - "optional": true
  7865 + "requires": {
  7866 + "lru-cache": "^6.0.0"
  7867 + }
7426 7868 },
7427   - "tough-cookie": {
7428   - "version": "2.4.3",
7429   - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
7430   - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
  7869 + "which": {
  7870 + "version": "2.0.2",
  7871 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
  7872 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
7431 7873 "dev": true,
7432   - "optional": true,
7433 7874 "requires": {
7434   - "psl": "^1.1.24",
7435   - "punycode": "^1.4.1"
  7875 + "isexe": "^2.0.0"
7436 7876 }
  7877 + },
  7878 + "yallist": {
  7879 + "version": "4.0.0",
  7880 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
  7881 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
  7882 + "dev": true
7437 7883 }
7438 7884 }
7439 7885 },
... ... @@ -7483,39 +7929,35 @@
7483 7929 "dev": true
7484 7930 },
7485 7931 "node-sass": {
7486   - "version": "4.12.0",
7487   - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
7488   - "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
  7932 + "version": "6.0.1",
  7933 + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-6.0.1.tgz",
  7934 + "integrity": "sha512-f+Rbqt92Ful9gX0cGtdYwjTrWAaGURgaK5rZCWOgCNyGWusFYHhbqCCBoFBeat+HKETOU02AyTxNhJV0YZf2jQ==",
7489 7935 "dev": true,
7490   - "optional": true,
7491 7936 "requires": {
7492 7937 "async-foreach": "^0.1.3",
7493 7938 "chalk": "^1.1.1",
7494   - "cross-spawn": "^3.0.0",
  7939 + "cross-spawn": "^7.0.3",
7495 7940 "gaze": "^1.0.0",
7496 7941 "get-stdin": "^4.0.1",
7497 7942 "glob": "^7.0.3",
7498   - "in-publish": "^2.0.0",
7499   - "lodash": "^4.17.11",
7500   - "meow": "^3.7.0",
7501   - "mkdirp": "^0.5.1",
  7943 + "lodash": "^4.17.15",
  7944 + "meow": "^9.0.0",
7502 7945 "nan": "^2.13.2",
7503   - "node-gyp": "^3.8.0",
  7946 + "node-gyp": "^7.1.0",
7504 7947 "npmlog": "^4.0.0",
7505 7948 "request": "^2.88.0",
7506   - "sass-graph": "^2.2.4",
  7949 + "sass-graph": "2.2.5",
7507 7950 "stdout-stream": "^1.4.0",
7508 7951 "true-case-path": "^1.0.2"
7509 7952 },
7510 7953 "dependencies": {
7511 7954 "ajv": {
7512   - "version": "6.10.2",
7513   - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
7514   - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
  7955 + "version": "6.12.6",
  7956 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
  7957 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
7515 7958 "dev": true,
7516   - "optional": true,
7517 7959 "requires": {
7518   - "fast-deep-equal": "^2.0.1",
  7960 + "fast-deep-equal": "^3.1.1",
7519 7961 "fast-json-stable-stringify": "^2.0.0",
7520 7962 "json-schema-traverse": "^0.4.1",
7521 7963 "uri-js": "^4.2.2"
... ... @@ -7525,40 +7967,63 @@
7525 7967 "version": "1.0.0",
7526 7968 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
7527 7969 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
7528   - "dev": true,
7529   - "optional": true
  7970 + "dev": true
7530 7971 },
7531 7972 "aws-sign2": {
7532 7973 "version": "0.7.0",
7533 7974 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
7534 7975 "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
  7976 + "dev": true
  7977 + },
  7978 + "camelcase": {
  7979 + "version": "5.3.1",
  7980 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
  7981 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
  7982 + "dev": true
  7983 + },
  7984 + "camelcase-keys": {
  7985 + "version": "6.2.2",
  7986 + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
  7987 + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
7535 7988 "dev": true,
7536   - "optional": true
  7989 + "requires": {
  7990 + "camelcase": "^5.3.1",
  7991 + "map-obj": "^4.0.0",
  7992 + "quick-lru": "^4.0.1"
  7993 + }
7537 7994 },
7538 7995 "cross-spawn": {
7539   - "version": "3.0.1",
7540   - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
7541   - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
  7996 + "version": "7.0.3",
  7997 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
  7998 + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
7542 7999 "dev": true,
7543   - "optional": true,
7544 8000 "requires": {
7545   - "lru-cache": "^4.0.1",
7546   - "which": "^1.2.9"
  8001 + "path-key": "^3.1.0",
  8002 + "shebang-command": "^2.0.0",
  8003 + "which": "^2.0.1"
7547 8004 }
7548 8005 },
7549 8006 "fast-deep-equal": {
7550   - "version": "2.0.1",
7551   - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
7552   - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
  8007 + "version": "3.1.3",
  8008 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
  8009 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
  8010 + "dev": true
  8011 + },
  8012 + "find-up": {
  8013 + "version": "4.1.0",
  8014 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
  8015 + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
7553 8016 "dev": true,
7554   - "optional": true
  8017 + "requires": {
  8018 + "locate-path": "^5.0.0",
  8019 + "path-exists": "^4.0.0"
  8020 + }
7555 8021 },
7556 8022 "form-data": {
7557 8023 "version": "2.3.3",
7558 8024 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
7559 8025 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
7560 8026 "dev": true,
7561   - "optional": true,
7562 8027 "requires": {
7563 8028 "asynckit": "^0.4.0",
7564 8029 "combined-stream": "^1.0.6",
... ... @@ -7569,73 +8034,250 @@
7569 8034 "version": "2.0.0",
7570 8035 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
7571 8036 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
7572   - "dev": true,
7573   - "optional": true
  8037 + "dev": true
7574 8038 },
7575 8039 "har-validator": {
7576   - "version": "5.1.3",
7577   - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
7578   - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
  8040 + "version": "5.1.5",
  8041 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
  8042 + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
  8043 + "dev": true,
  8044 + "requires": {
  8045 + "ajv": "^6.12.3",
  8046 + "har-schema": "^2.0.0"
  8047 + }
  8048 + },
  8049 + "hosted-git-info": {
  8050 + "version": "4.0.2",
  8051 + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz",
  8052 + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==",
  8053 + "dev": true,
  8054 + "requires": {
  8055 + "lru-cache": "^6.0.0"
  8056 + }
  8057 + },
  8058 + "http-signature": {
  8059 + "version": "1.2.0",
  8060 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
  8061 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
  8062 + "dev": true,
  8063 + "requires": {
  8064 + "assert-plus": "^1.0.0",
  8065 + "jsprim": "^1.2.2",
  8066 + "sshpk": "^1.7.0"
  8067 + }
  8068 + },
  8069 + "indent-string": {
  8070 + "version": "4.0.0",
  8071 + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
  8072 + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
  8073 + "dev": true
  8074 + },
  8075 + "json-schema-traverse": {
  8076 + "version": "0.4.1",
  8077 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
  8078 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
  8079 + "dev": true
  8080 + },
  8081 + "locate-path": {
  8082 + "version": "5.0.0",
  8083 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
  8084 + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
  8085 + "dev": true,
  8086 + "requires": {
  8087 + "p-locate": "^4.1.0"
  8088 + }
  8089 + },
  8090 + "lru-cache": {
  8091 + "version": "6.0.0",
  8092 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
  8093 + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
7579 8094 "dev": true,
7580   - "optional": true,
7581 8095 "requires": {
7582   - "ajv": "^6.5.5",
7583   - "har-schema": "^2.0.0"
  8096 + "yallist": "^4.0.0"
7584 8097 }
7585 8098 },
7586   - "http-signature": {
7587   - "version": "1.2.0",
7588   - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
7589   - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
  8099 + "map-obj": {
  8100 + "version": "4.3.0",
  8101 + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
  8102 + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
  8103 + "dev": true
  8104 + },
  8105 + "meow": {
  8106 + "version": "9.0.0",
  8107 + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
  8108 + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
7590 8109 "dev": true,
7591   - "optional": true,
7592 8110 "requires": {
7593   - "assert-plus": "^1.0.0",
7594   - "jsprim": "^1.2.2",
7595   - "sshpk": "^1.7.0"
  8111 + "@types/minimist": "^1.2.0",
  8112 + "camelcase-keys": "^6.2.2",
  8113 + "decamelize": "^1.2.0",
  8114 + "decamelize-keys": "^1.1.0",
  8115 + "hard-rejection": "^2.1.0",
  8116 + "minimist-options": "4.1.0",
  8117 + "normalize-package-data": "^3.0.0",
  8118 + "read-pkg-up": "^7.0.1",
  8119 + "redent": "^3.0.0",
  8120 + "trim-newlines": "^3.0.0",
  8121 + "type-fest": "^0.18.0",
  8122 + "yargs-parser": "^20.2.3"
7596 8123 }
7597 8124 },
7598   - "json-schema-traverse": {
7599   - "version": "0.4.1",
7600   - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
7601   - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
  8125 + "normalize-package-data": {
  8126 + "version": "3.0.3",
  8127 + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
  8128 + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
7602 8129 "dev": true,
7603   - "optional": true
  8130 + "requires": {
  8131 + "hosted-git-info": "^4.0.1",
  8132 + "is-core-module": "^2.5.0",
  8133 + "semver": "^7.3.4",
  8134 + "validate-npm-package-license": "^3.0.1"
  8135 + }
7604 8136 },
7605 8137 "oauth-sign": {
7606 8138 "version": "0.9.0",
7607 8139 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
7608 8140 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
  8141 + "dev": true
  8142 + },
  8143 + "p-limit": {
  8144 + "version": "2.3.0",
  8145 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
  8146 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
7609 8147 "dev": true,
7610   - "optional": true
  8148 + "requires": {
  8149 + "p-try": "^2.0.0"
  8150 + }
  8151 + },
  8152 + "p-locate": {
  8153 + "version": "4.1.0",
  8154 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
  8155 + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
  8156 + "dev": true,
  8157 + "requires": {
  8158 + "p-limit": "^2.2.0"
  8159 + }
  8160 + },
  8161 + "p-try": {
  8162 + "version": "2.2.0",
  8163 + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
  8164 + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
  8165 + "dev": true
  8166 + },
  8167 + "parse-json": {
  8168 + "version": "5.2.0",
  8169 + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
  8170 + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
  8171 + "dev": true,
  8172 + "requires": {
  8173 + "@babel/code-frame": "^7.0.0",
  8174 + "error-ex": "^1.3.1",
  8175 + "json-parse-even-better-errors": "^2.3.0",
  8176 + "lines-and-columns": "^1.1.6"
  8177 + }
  8178 + },
  8179 + "path-exists": {
  8180 + "version": "4.0.0",
  8181 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
  8182 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
  8183 + "dev": true
  8184 + },
  8185 + "path-key": {
  8186 + "version": "3.1.1",
  8187 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
  8188 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
  8189 + "dev": true
7611 8190 },
7612 8191 "performance-now": {
7613 8192 "version": "2.1.0",
7614 8193 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
7615 8194 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
7616   - "dev": true,
7617   - "optional": true
7618   - },
7619   - "punycode": {
7620   - "version": "1.4.1",
7621   - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
7622   - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
7623   - "dev": true,
7624   - "optional": true
  8195 + "dev": true
7625 8196 },
7626 8197 "qs": {
7627 8198 "version": "6.5.2",
7628 8199 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
7629 8200 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
  8201 + "dev": true
  8202 + },
  8203 + "read-pkg": {
  8204 + "version": "5.2.0",
  8205 + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
  8206 + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
7630 8207 "dev": true,
7631   - "optional": true
  8208 + "requires": {
  8209 + "@types/normalize-package-data": "^2.4.0",
  8210 + "normalize-package-data": "^2.5.0",
  8211 + "parse-json": "^5.0.0",
  8212 + "type-fest": "^0.6.0"
  8213 + },
  8214 + "dependencies": {
  8215 + "hosted-git-info": {
  8216 + "version": "2.8.9",
  8217 + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
  8218 + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
  8219 + "dev": true
  8220 + },
  8221 + "normalize-package-data": {
  8222 + "version": "2.5.0",
  8223 + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
  8224 + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
  8225 + "dev": true,
  8226 + "requires": {
  8227 + "hosted-git-info": "^2.1.4",
  8228 + "resolve": "^1.10.0",
  8229 + "semver": "2 || 3 || 4 || 5",
  8230 + "validate-npm-package-license": "^3.0.1"
  8231 + }
  8232 + },
  8233 + "semver": {
  8234 + "version": "5.7.1",
  8235 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
  8236 + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
  8237 + "dev": true
  8238 + },
  8239 + "type-fest": {
  8240 + "version": "0.6.0",
  8241 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
  8242 + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
  8243 + "dev": true
  8244 + }
  8245 + }
  8246 + },
  8247 + "read-pkg-up": {
  8248 + "version": "7.0.1",
  8249 + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
  8250 + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
  8251 + "dev": true,
  8252 + "requires": {
  8253 + "find-up": "^4.1.0",
  8254 + "read-pkg": "^5.2.0",
  8255 + "type-fest": "^0.8.1"
  8256 + },
  8257 + "dependencies": {
  8258 + "type-fest": {
  8259 + "version": "0.8.1",
  8260 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
  8261 + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
  8262 + "dev": true
  8263 + }
  8264 + }
  8265 + },
  8266 + "redent": {
  8267 + "version": "3.0.0",
  8268 + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
  8269 + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
  8270 + "dev": true,
  8271 + "requires": {
  8272 + "indent-string": "^4.0.0",
  8273 + "strip-indent": "^3.0.0"
  8274 + }
7632 8275 },
7633 8276 "request": {
7634   - "version": "2.88.0",
7635   - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
7636   - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
  8277 + "version": "2.88.2",
  8278 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
  8279 + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
7637 8280 "dev": true,
7638   - "optional": true,
7639 8281 "requires": {
7640 8282 "aws-sign2": "~0.7.0",
7641 8283 "aws4": "^1.8.0",
... ... @@ -7644,7 +8286,7 @@
7644 8286 "extend": "~3.0.2",
7645 8287 "forever-agent": "~0.6.1",
7646 8288 "form-data": "~2.3.2",
7647   - "har-validator": "~5.1.0",
  8289 + "har-validator": "~5.1.3",
7648 8290 "http-signature": "~1.2.0",
7649 8291 "is-typedarray": "~1.0.0",
7650 8292 "isstream": "~0.1.2",
... ... @@ -7654,21 +8296,64 @@
7654 8296 "performance-now": "^2.1.0",
7655 8297 "qs": "~6.5.2",
7656 8298 "safe-buffer": "^5.1.2",
7657   - "tough-cookie": "~2.4.3",
  8299 + "tough-cookie": "~2.5.0",
7658 8300 "tunnel-agent": "^0.6.0",
7659 8301 "uuid": "^3.3.2"
7660 8302 }
7661 8303 },
7662   - "tough-cookie": {
7663   - "version": "2.4.3",
7664   - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
7665   - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
  8304 + "semver": {
  8305 + "version": "7.3.5",
  8306 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
  8307 + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
7666 8308 "dev": true,
7667   - "optional": true,
7668 8309 "requires": {
7669   - "psl": "^1.1.24",
7670   - "punycode": "^1.4.1"
  8310 + "lru-cache": "^6.0.0"
  8311 + }
  8312 + },
  8313 + "shebang-command": {
  8314 + "version": "2.0.0",
  8315 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
  8316 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
  8317 + "dev": true,
  8318 + "requires": {
  8319 + "shebang-regex": "^3.0.0"
  8320 + }
  8321 + },
  8322 + "shebang-regex": {
  8323 + "version": "3.0.0",
  8324 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
  8325 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
  8326 + "dev": true
  8327 + },
  8328 + "strip-indent": {
  8329 + "version": "3.0.0",
  8330 + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
  8331 + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
  8332 + "dev": true,
  8333 + "requires": {
  8334 + "min-indent": "^1.0.0"
  8335 + }
  8336 + },
  8337 + "trim-newlines": {
  8338 + "version": "3.0.1",
  8339 + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
  8340 + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
  8341 + "dev": true
  8342 + },
  8343 + "which": {
  8344 + "version": "2.0.2",
  8345 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
  8346 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
  8347 + "dev": true,
  8348 + "requires": {
  8349 + "isexe": "^2.0.0"
7671 8350 }
  8351 + },
  8352 + "yallist": {
  8353 + "version": "4.0.0",
  8354 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
  8355 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
  8356 + "dev": true
7672 8357 }
7673 8358 }
7674 8359 },
... ... @@ -7729,7 +8414,6 @@
7729 8414 "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
7730 8415 "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
7731 8416 "dev": true,
7732   - "optional": true,
7733 8417 "requires": {
7734 8418 "are-we-there-yet": "~1.1.2",
7735 8419 "console-control-strings": "~1.1.0",
... ... @@ -9330,6 +10014,12 @@
9330 10014 "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
9331 10015 "dev": true
9332 10016 },
  10017 + "quick-lru": {
  10018 + "version": "4.0.1",
  10019 + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
  10020 + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
  10021 + "dev": true
  10022 + },
9333 10023 "randomatic": {
9334 10024 "version": "3.1.1",
9335 10025 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
... ... @@ -9879,16 +10569,15 @@
9879 10569 "dev": true
9880 10570 },
9881 10571 "sass-graph": {
9882   - "version": "2.2.4",
9883   - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
9884   - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
  10572 + "version": "2.2.5",
  10573 + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
  10574 + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
9885 10575 "dev": true,
9886   - "optional": true,
9887 10576 "requires": {
9888 10577 "glob": "^7.0.0",
9889 10578 "lodash": "^4.0.0",
9890 10579 "scss-tokenizer": "^0.2.3",
9891   - "yargs": "^7.0.0"
  10580 + "yargs": "^13.3.2"
9892 10581 }
9893 10582 },
9894 10583 "sass-loader": {
... ... @@ -9933,7 +10622,6 @@
9933 10622 "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
9934 10623 "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
9935 10624 "dev": true,
9936   - "optional": true,
9937 10625 "requires": {
9938 10626 "js-base64": "^2.1.8",
9939 10627 "source-map": "^0.4.2"
... ... @@ -9944,7 +10632,6 @@
9944 10632 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
9945 10633 "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
9946 10634 "dev": true,
9947   - "optional": true,
9948 10635 "requires": {
9949 10636 "amdefine": ">=0.0.4"
9950 10637 }
... ... @@ -10722,7 +11409,6 @@
10722 11409 "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
10723 11410 "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
10724 11411 "dev": true,
10725   - "optional": true,
10726 11412 "requires": {
10727 11413 "readable-stream": "^2.0.1"
10728 11414 }
... ... @@ -10980,15 +11666,37 @@
10980 11666 "dev": true
10981 11667 },
10982 11668 "tar": {
10983   - "version": "2.2.2",
10984   - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
10985   - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
  11669 + "version": "6.1.11",
  11670 + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
  11671 + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
10986 11672 "dev": true,
10987   - "optional": true,
10988 11673 "requires": {
10989   - "block-stream": "*",
10990   - "fstream": "^1.0.12",
10991   - "inherits": "2"
  11674 + "chownr": "^2.0.0",
  11675 + "fs-minipass": "^2.0.0",
  11676 + "minipass": "^3.0.0",
  11677 + "minizlib": "^2.1.1",
  11678 + "mkdirp": "^1.0.3",
  11679 + "yallist": "^4.0.0"
  11680 + },
  11681 + "dependencies": {
  11682 + "chownr": {
  11683 + "version": "2.0.0",
  11684 + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
  11685 + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
  11686 + "dev": true
  11687 + },
  11688 + "mkdirp": {
  11689 + "version": "1.0.4",
  11690 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
  11691 + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
  11692 + "dev": true
  11693 + },
  11694 + "yallist": {
  11695 + "version": "4.0.0",
  11696 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
  11697 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
  11698 + "dev": true
  11699 + }
10992 11700 }
10993 11701 },
10994 11702 "term-size": {
... ... @@ -11167,7 +11875,6 @@
11167 11875 "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
11168 11876 "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
11169 11877 "dev": true,
11170   - "optional": true,
11171 11878 "requires": {
11172 11879 "glob": "^7.1.2"
11173 11880 }
... ... @@ -11330,6 +12037,12 @@
11330 12037 "integrity": "sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg==",
11331 12038 "dev": true
11332 12039 },
  12040 + "type-fest": {
  12041 + "version": "0.18.1",
  12042 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
  12043 + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
  12044 + "dev": true
  12045 + },
11333 12046 "type-is": {
11334 12047 "version": "1.6.18",
11335 12048 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
... ... @@ -12542,7 +13255,6 @@
12542 13255 "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
12543 13256 "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
12544 13257 "dev": true,
12545   - "optional": true,
12546 13258 "requires": {
12547 13259 "string-width": "^1.0.2 || 2"
12548 13260 }
... ... @@ -12680,83 +13392,164 @@
12680 13392 "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
12681 13393 },
12682 13394 "yargs": {
12683   - "version": "7.1.0",
12684   - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
12685   - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
  13395 + "version": "13.3.2",
  13396 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
  13397 + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
12686 13398 "dev": true,
12687   - "optional": true,
12688 13399 "requires": {
12689   - "camelcase": "^3.0.0",
12690   - "cliui": "^3.2.0",
12691   - "decamelize": "^1.1.1",
12692   - "get-caller-file": "^1.0.1",
12693   - "os-locale": "^1.4.0",
12694   - "read-pkg-up": "^1.0.1",
  13400 + "cliui": "^5.0.0",
  13401 + "find-up": "^3.0.0",
  13402 + "get-caller-file": "^2.0.1",
12695 13403 "require-directory": "^2.1.1",
12696   - "require-main-filename": "^1.0.1",
  13404 + "require-main-filename": "^2.0.0",
12697 13405 "set-blocking": "^2.0.0",
12698   - "string-width": "^1.0.2",
12699   - "which-module": "^1.0.0",
12700   - "y18n": "^3.2.1",
12701   - "yargs-parser": "^5.0.0"
  13406 + "string-width": "^3.0.0",
  13407 + "which-module": "^2.0.0",
  13408 + "y18n": "^4.0.0",
  13409 + "yargs-parser": "^13.1.2"
12702 13410 },
12703 13411 "dependencies": {
  13412 + "ansi-regex": {
  13413 + "version": "4.1.0",
  13414 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
  13415 + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
  13416 + "dev": true
  13417 + },
  13418 + "ansi-styles": {
  13419 + "version": "3.2.1",
  13420 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
  13421 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
  13422 + "dev": true,
  13423 + "requires": {
  13424 + "color-convert": "^1.9.0"
  13425 + }
  13426 + },
12704 13427 "camelcase": {
  13428 + "version": "5.3.1",
  13429 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
  13430 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
  13431 + "dev": true
  13432 + },
  13433 + "cliui": {
  13434 + "version": "5.0.0",
  13435 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
  13436 + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
  13437 + "dev": true,
  13438 + "requires": {
  13439 + "string-width": "^3.1.0",
  13440 + "strip-ansi": "^5.2.0",
  13441 + "wrap-ansi": "^5.1.0"
  13442 + }
  13443 + },
  13444 + "find-up": {
12705 13445 "version": "3.0.0",
12706   - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
12707   - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
  13446 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
  13447 + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
12708 13448 "dev": true,
12709   - "optional": true
  13449 + "requires": {
  13450 + "locate-path": "^3.0.0"
  13451 + }
12710 13452 },
12711   - "is-fullwidth-code-point": {
12712   - "version": "1.0.0",
12713   - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
12714   - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
  13453 + "get-caller-file": {
  13454 + "version": "2.0.5",
  13455 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
  13456 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
  13457 + "dev": true
  13458 + },
  13459 + "locate-path": {
  13460 + "version": "3.0.0",
  13461 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
  13462 + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
12715 13463 "dev": true,
12716   - "optional": true,
12717 13464 "requires": {
12718   - "number-is-nan": "^1.0.0"
  13465 + "p-locate": "^3.0.0",
  13466 + "path-exists": "^3.0.0"
  13467 + }
  13468 + },
  13469 + "p-limit": {
  13470 + "version": "2.3.0",
  13471 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
  13472 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
  13473 + "dev": true,
  13474 + "requires": {
  13475 + "p-try": "^2.0.0"
  13476 + }
  13477 + },
  13478 + "p-locate": {
  13479 + "version": "3.0.0",
  13480 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
  13481 + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
  13482 + "dev": true,
  13483 + "requires": {
  13484 + "p-limit": "^2.0.0"
12719 13485 }
12720 13486 },
  13487 + "p-try": {
  13488 + "version": "2.2.0",
  13489 + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
  13490 + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
  13491 + "dev": true
  13492 + },
  13493 + "require-main-filename": {
  13494 + "version": "2.0.0",
  13495 + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
  13496 + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
  13497 + "dev": true
  13498 + },
12721 13499 "string-width": {
12722   - "version": "1.0.2",
12723   - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
12724   - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
  13500 + "version": "3.1.0",
  13501 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
  13502 + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
12725 13503 "dev": true,
12726   - "optional": true,
12727 13504 "requires": {
12728   - "code-point-at": "^1.0.0",
12729   - "is-fullwidth-code-point": "^1.0.0",
12730   - "strip-ansi": "^3.0.0"
  13505 + "emoji-regex": "^7.0.1",
  13506 + "is-fullwidth-code-point": "^2.0.0",
  13507 + "strip-ansi": "^5.1.0"
12731 13508 }
12732 13509 },
12733   - "y18n": {
12734   - "version": "3.2.1",
12735   - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
12736   - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
  13510 + "strip-ansi": {
  13511 + "version": "5.2.0",
  13512 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
  13513 + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
12737 13514 "dev": true,
12738   - "optional": true
  13515 + "requires": {
  13516 + "ansi-regex": "^4.1.0"
  13517 + }
  13518 + },
  13519 + "which-module": {
  13520 + "version": "2.0.0",
  13521 + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
  13522 + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
  13523 + "dev": true
  13524 + },
  13525 + "wrap-ansi": {
  13526 + "version": "5.1.0",
  13527 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
  13528 + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
  13529 + "dev": true,
  13530 + "requires": {
  13531 + "ansi-styles": "^3.2.0",
  13532 + "string-width": "^3.0.0",
  13533 + "strip-ansi": "^5.0.0"
  13534 + }
  13535 + },
  13536 + "yargs-parser": {
  13537 + "version": "13.1.2",
  13538 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
  13539 + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
  13540 + "dev": true,
  13541 + "requires": {
  13542 + "camelcase": "^5.0.0",
  13543 + "decamelize": "^1.2.0"
  13544 + }
12739 13545 }
12740 13546 }
12741 13547 },
12742 13548 "yargs-parser": {
12743   - "version": "5.0.0",
12744   - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
12745   - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
12746   - "dev": true,
12747   - "optional": true,
12748   - "requires": {
12749   - "camelcase": "^3.0.0"
12750   - },
12751   - "dependencies": {
12752   - "camelcase": {
12753   - "version": "3.0.0",
12754   - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
12755   - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
12756   - "dev": true,
12757   - "optional": true
12758   - }
12759   - }
  13549 + "version": "20.2.9",
  13550 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
  13551 + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
  13552 + "dev": true
12760 13553 },
12761 13554 "yeast": {
12762 13555 "version": "0.1.2",
... ...
400-SOURCECODE/Admin/package.json
... ... @@ -69,6 +69,7 @@
69 69 "karma-coverage-istanbul-reporter": "^1.2.1",
70 70 "karma-jasmine": "~1.1.0",
71 71 "karma-jasmine-html-reporter": "^0.2.2",
  72 + "node-sass": "^6.0.1",
72 73 "protractor": "~5.1.2",
73 74 "ts-node": "~3.2.0",
74 75 "tslint": "~5.7.0",
... ...
400-SOURCECODE/Admin/src/app/app.component.html
... ... @@ -7,7 +7,7 @@
7 7 <div class="">
8 8 <div class="btn-group pull-right">
9 9 <ul class="nav navbar-nav navbar-right visible-sm visible-md">
10   - <li class="marginR5" data-toggle="tooltip" data-placement="top" title="Logout"><a href="login.html"><i class="fa fa-power-off"></i></a></li>
  10 + <li class="marginR5" data-toggle="tooltip" data-placement="top" title="Logout"><a (click)="logout()"><i class="fa fa-power-off" style="cursor:pointer"></i></a></li>
11 11 </ul>
12 12 </div>
13 13 <div class="btn-group pull-right mar-top17 visible-sm visible-md">
... ... @@ -56,7 +56,7 @@
56 56  
57 57 <!-- navigation -->
58 58 <div class="clearfix"></div>
59   -<div class="row">
  59 +<div class="row" style="margin-right: auto;">
60 60 <router-outlet (activate)="changeOfRoutes()">
61 61 <modal-confirm></modal-confirm>
62 62 </router-outlet>
... ...
400-SOURCECODE/Admin/src/app/app.component.ts
... ... @@ -104,7 +104,7 @@ export class AppComponent implements OnInit {
104 104 UserId: this.global.UserId,
105 105 UserType: this.global.UserTypeName
106 106 }).subscribe(x => {
107   - console.log(x); this.UserManageRightsList = x;
  107 + //console.log(x); this.UserManageRightsList = x;
108 108 this.objMenuGernal = this.obj[i].HeaderMenu;
109 109 //this.objMenuGernal = this.objMenu;
110 110 //this.objMenu='';
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/addlicense.component.html
1 1 <!-- main-heading -->
2   -<div class="row">
  2 +<div class="row" style="margin-right: auto;">
3 3  
4 4 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
5 5 <h4 *ngIf="license.LicenseId == 0">Add New License</h4>
... ... @@ -23,7 +23,7 @@
23 23  
24 24 <div class="container-fluid main-full">
25 25  
26   - <form class="row" [formGroup]="insertUpdateLicenseFrm" (submit)="InsertUpdateLicense(templatesuccess)">
  26 + <form class="row" [formGroup]="insertUpdateLicenseFrm" (submit)="InsertUpdateLicense(templatesuccess)" style="margin-left:-15px;margin-right:-44px">
27 27  
28 28 <div class="well marginBtm12" id="addlicenseDiv">
29 29  
... ... @@ -34,7 +34,7 @@
34 34 </div>
35 35 </div>
36 36  
37   - <div class="row">
  37 + <div class="row" style="margin-right:-10px">
38 38  
39 39 <div class="col-sm-8">
40 40  
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/addlicense.component.ts
1   -import { Component, OnInit, AfterViewInit, Input, Output, EventEmitter, Pipe, PipeTransform, TemplateRef } from '@angular/core';
  1 +import { Component, OnInit, AfterViewInit, Input, Output, EventEmitter, Pipe, PipeTransform,HostListener, TemplateRef } from '@angular/core';
2 2 import { LicenseService } from './license.service';
3 3 import { GlobalService } from '../../shared/global';
4 4 import { Router, ActivatedRoute } from '@angular/router';
... ... @@ -104,14 +104,6 @@ export class AddLicense implements OnInit {
104 104 isActive: ['false']
105 105 });
106 106  
107   - var $ua = navigator.userAgent;
108   - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
109   - $('#addlicenseDiv').css('height','920px')
110   - }
111   - else
112   - {
113   - $('#addlicenseDiv').css('height','840px')
114   - }
115 107 this.GetLicenseType();
116 108 this.GetCountry();
117 109 this.GetState();
... ... @@ -145,6 +137,7 @@ export class AddLicense implements OnInit {
145 137 }
146 138 });
147 139 }, error => this.error = <any>error);
  140 +
148 141 }
149 142 public ClearWhitespaceValidator(control: FormControl) {
150 143 // clear white space
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/editlicensebasicsettings.component.html
1 1 <!-- main-heading -->
2   -<div class="row">
  2 +<div class="row" style="margin-right: auto;">
3 3  
4 4 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
5 5 <h4>View/Update Profile</h4>
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/license.service.ts
... ... @@ -16,23 +16,28 @@ export class LicenseService{
16 16  
17 17 constructor(private http: Http, private commonService: GlobalService ) { }
18 18  
19   - GetLicenses(obj: any, pageNo: number, pageLength: number) {
20   - if(obj.subscriptionStartDate == ''){
  19 + GetLicenses(obj: any) {
  20 + if(obj.subscriptionStartDate == '' || obj.subscriptionStartDate == null){
21 21 obj.subscriptionStartDate = '1/1/1';
22 22 }
23   - if(obj.subscriptionEndDate == ''){
  23 + if(obj.subscriptionEndDate == '' || obj.subscriptionEndDate == null){
24 24 obj.subscriptionEndDate = '1/1/9999';
25 25 }
26   - obj.subscriptionStartDate = this.datePipe.transform(obj.subscriptionStartDate, 'MM/dd/yyyy');
27   - obj.subscriptionEndDate = this.datePipe.transform(obj.subscriptionEndDate, 'MM/dd/yyyy');
28   - return this.http.get(this.commonService.resourceBaseUrl + "License/Licenses?accountNumber=" + obj.accountNumber +
29   - "&licenseeFirstName=" + obj.licenseeFirstName + "&licenseeLastName=" + obj.licenseeLastName +
30   - "&licenseTypeId=" + obj.licenseTypeId + "&institutionName=" + obj.institutionName +
31   - "&stateId=" + obj.stateId + "&countryId=" + obj.countryId + "&emailId=" + obj.emailId +
32   - "&subscriptionStartDate=" + obj.subscriptionStartDate + "&subscriptionEndDate=" + obj.subscriptionEndDate +
33   - "&isActive=" + obj.isActive + "&pageNo=" + pageNo + "&pageLength=" + pageLength)
34   - .map(this.extractData)
35   - .catch((res: Response) => this.handleError(res));
  26 +
  27 + obj.subscriptionStartDate = this.datePipe.transform(obj.subscriptionStartDate, 'MM/dd/yyyy');
  28 + obj.subscriptionEndDate = this.datePipe.transform(obj.subscriptionEndDate, 'MM/dd/yyyy');
  29 + return this.http.get(this.commonService.resourceBaseUrl + "License/Licenses?accountNumber=" + obj.accountNumber +
  30 + "&licenseeFirstName=" + obj.licenseeFirstName + "&licenseeLastName=" + obj.licenseeLastName +
  31 + "&licenseTypeId=" + obj.licenseTypeId + "&institutionName=" + obj.institutionName +
  32 + "&stateId=" + obj.stateId + "&countryId=" + obj.countryId + "&emailId=" + obj.emailId +
  33 + "&subscriptionStartDate=" + obj.subscriptionStartDate + "&subscriptionEndDate=" + obj.subscriptionEndDate +
  34 + "&isActive=" + obj.isActive +
  35 + "&sortColumn=" + obj.sortColumn +
  36 + "&sortOrder=" + obj.sortOrder +
  37 + "&pageNo=" + obj.pageNo + "&pageLength=" + obj.pageLength)
  38 + .map(this.extractData)
  39 + .catch((res: Response) => this.handleError(res));
  40 +
36 41 }
37 42  
38 43 GetLicenseById(Id: number){
... ... @@ -96,11 +101,16 @@ export class LicenseService{
96 101 .map(this.extractData)
97 102 .catch((res: Response) => this.handleError(res));
98 103 }
99   -
100   - GetLicenseSites(accountNo: string, pageNo: number, pageLength: number) {
101   - return this.http.get(this.commonService.resourceBaseUrl + "License/LicenseSites?AccountNo=" + accountNo + "&pageNo=" + pageNo + "&pageLength=" + pageLength)
102   - .map(this.extractData)
103   - .catch((res: Response) => this.handleError(res));
  104 +
  105 + GetLicenseSites(obj: any) {
  106 + return this.http.get(this.commonService.resourceBaseUrl + "License/LicenseSites?AccountNo=" + obj.AccountNumber +
  107 + "&sortColumn=" + obj.sortColumn +
  108 + "&sortOrder=" + obj.sortOrder +
  109 + "&pageNo=" + obj.pageNo +
  110 + "&pageLength=" + obj.pageLength
  111 + )
  112 + .map(this.extractData)
  113 + .catch((res: Response) => this.handleError(res));
104 114 }
105 115  
106 116 GetLicenseSiteAdmin(accountNo: string) {
... ... @@ -367,7 +377,7 @@ export class LicenseService{
367 377  
368 378 DeleteSiteAccount(obj: any) {
369 379 return this.http.get(this.commonService.resourceBaseUrl + "Site/DeleteSiteAccount?SiteId=" +
370   - obj.Id + "&LicenseId=" + obj.LicenseId + "&UserId=" + obj.SiteUserId)
  380 + obj.siteId + "&LicenseId=" + obj.LicenseId + "&UserId=" + obj.SiteUserId)
371 381 .map(this.extractData)
372 382 .catch((res: Response) => this.handleError(res));
373 383 }
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/licensemodestysettings.component.html
1 1 <!-- main-heading -->
2   -<div class="row">
  2 +<div class="row" style="margin-right: auto;">
3 3  
4 4 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
5 5 <h4>Manage Modesty Settings</h4>
... ... @@ -35,7 +35,7 @@
35 35  
36 36 <div class="container-fluid main-full">
37 37  
38   - <div class="row">
  38 + <div class="row" style="margin-right:-40px">
39 39 <div class="well no-margin-btm">
40 40 <div class="row">
41 41 <div class="col-lg-4 col-sm-6">
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/licensemodestysettings.component.ts
... ... @@ -100,7 +100,8 @@ export class LicenseModestySettings implements OnInit {
100 100 this.GetLicenseEditionModesty();
101 101 }
102 102 else {
103   - this.licenseService.GetLicenseSites(this.AccountNumber, 1, 1000)
  103 + //this service function also use in building level account
  104 + this.licenseService.GetLicenseSites({AccountNumber:this.AccountNumber,sortColumn:'Id',sortOrder:'asc',pageNo:1,pageLength:1000})
104 105 .subscribe(st => {
105 106 this.lstLicenseSites = st.LicenseSiteList;
106 107 if (this.lstLicenseSites.length == 0) {
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/licensemodulesettings.component.html
1 1 <!-- main-heading -->
2   -<div class="row">
  2 +<div class="row" style="margin-right: auto;">
3 3  
4 4 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
5 5 <h4>Manage Module</h4>
... ... @@ -22,7 +22,7 @@
22 22  
23 23 <div class="container-fluid main-full">
24 24  
25   - <div class="row">
  25 + <div class="row" style="margin-right:-40px">
26 26  
27 27 <div class="well no-margin-btm">
28 28 <div class="row">
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/searchlicense.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <!-- main-heading -->
3 3 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
4 4 <h4>Search License</h4>
... ... @@ -39,7 +39,7 @@
39 39  
40 40 <div class="container-fluid main-full">
41 41  
42   - <form class="row" [formGroup]="searchLicenseFrm" (submit)="SearchRecords()">
  42 + <form class="row" [formGroup]="searchLicenseFrm" (submit)="SearchRecords()" style="margin-left:-15px;margin-right:-40px">
43 43  
44 44 <div class="well no-margin-btm">
45 45  
... ... @@ -164,7 +164,6 @@
164 164 <label for="EmailID" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Email ID : </label>
165 165 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
166 166 <input type="email" class="form-control input-sm" id="EmailID" formControlName="emailId" maxlength="50">
167   - <div *ngIf="searchLicenseFrm.controls.emailId.hasError('email') && searchLicenseFrm.controls.emailId.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Email is invalid</div>
168 167 </div>
169 168 </div>
170 169 </div>
... ... @@ -180,9 +179,7 @@
180 179 <span class="input-group-btn add-on">
181 180 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar icon-calendar"></i></button>
182 181 </span>
183   - </div>
184   - <!-- <span class="help-block">(mm/dd/yyyy)</span> -->
185   - <div *ngIf="dateStartInvalid && searchLicenseFrm.controls.subscriptionStartDate.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Subscription start date requires date in mm/dd/yyyy format</div>
  182 + </div>
186 183 </div>
187 184 </div>
188 185 </div>
... ... @@ -198,9 +195,7 @@
198 195 <span class="input-group-btn add-on">
199 196 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar icon-calendar"></i></button>
200 197 </span>
201   - </div>
202   - <!-- <span class="help-block">(mm/dd/yyyy)</span> -->
203   - <div *ngIf="dateEndInvalid && searchLicenseFrm.controls.subscriptionEndDate.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Subscription end date requires date in mm/dd/yyyy format</div>
  198 + </div>
204 199 </div>
205 200 </div>
206 201 </div>
... ... @@ -217,30 +212,29 @@
217 212  
218 213 </div>
219 214  
220   - <div class="well">
  215 + <div class="well" style="padding-left:1px;">
221 216 <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable" style="width: 4032px;">
222   - <thead>
223   -
  217 + <thead>
224 218 <tr>
225   - <th style="width: 150px">Account No.</th>
226   - <th style="width: 150px">Licensee Name</th>
227   - <th style="width: 150px">License Type</th>
228   - <th style="width: 150px">Account Type</th>
229   - <th style="width: 150px">Institution Name</th>
230   - <th style="width: 150px">Address</th>
231   - <th style="width: 150px">State (Only U.S.)</th>
232   - <th style="width: 150px">Country</th>
233   - <th style="width: 150px">Email ID</th>
234   - <th style="width: 200px">Subscription Start Date</th>
235   - <th style="width: 200px">Subscription Renewal Date</th>
236   - <th style="width: 200px">Subscription End Date</th>
237   - <th style="width: 150px">Status</th>
238   - <th style="width: 200px">Original Entry Date</th>
239   - <th style="width: 200px">Last Modified Date</th>
240   - <th style="width: 200px">No. of Export Images</th>
241   - <th style="width: 150px">Admin</th>
242   - <th style="width: 150px">Credit Card No.</th>
243   - <th style="width: 150px">Product Key</th>
  219 + <th id="AccountNumber">Account No.</th>
  220 + <th id="LicenseeName" >Licensee Name</th>
  221 + <th id="LicenseType">License Type</th>
  222 + <th id="AccountType">Account Type</th>
  223 + <th id="InstitutionName">Institution Name</th>
  224 + <th id="ContactAddress">Address</th>
  225 + <th id="LicenseState">State (Only U.S.)</th>
  226 + <th id="LicenseCountry">Country</th>
  227 + <th id="EmailId">Email ID</th>
  228 + <th id="StartDate">Subs. Start Date</th>
  229 + <th id="RenewDate">Subs. Renewal Date</th>
  230 + <th id="EndDate">Subs. End Date</th>
  231 + <th id="LicenseStatus">Status</th>
  232 + <th id="EntryDate">Org. Entry Date</th>
  233 + <th id="ModifyDate">Modified Date</th>
  234 + <th id="NoofImages">Export Images</th>
  235 + <th id="ClientAdmin">Admin</th>
  236 + <th id="CardNumber">Card No.</th>
  237 + <th id="ProductKey">Product Key</th>
244 238 </tr>
245 239 </thead>
246 240 <tbody>
... ... @@ -250,33 +244,31 @@
250 244 </tr>
251 245 <tr class="ui-widget-content" *ngFor="let item of this.searchLicenseFrm.controls['licenses'].value; let i = index" (click)="SetClickedRow(i, item)"
252 246 [class.active]="i == selectedRow" [class.inactive]="i != selectedRow">
253   - <td style="text-align: center; width: 150px">
  247 + <td>
254 248 <input type="hidden" value="{{item.LicenseId}}"> {{item.AccountNumber}}
255 249 </td>
256   - <td style="text-align: center; width: 150px">{{item.LicenseeName}}</td>
257   - <td style="text-align: center; width: 150px">{{item.LicenseTypeName}}</td>
258   - <td style="text-align: center; width: 150px">{{item.AccountTypeName}}</td>
259   - <td style="text-align: center; width: 150px">{{item.InstitutionName}}</td>
260   - <td style="text-align: center; width: 150px">{{item.Address}}</td>
261   - <td style="text-align: center; width: 150px">{{item.LicenseState}}</td>
262   - <td style="text-align: center; width: 150px">{{item.LicenseCountry}}</td>
263   - <td style="text-align: center; width: 150px">{{item.EmailId}}</td>
264   - <td style="text-align: center; width: 200px">{{item.SubscriptionStartDate == '0001-01-01T00:00:00' ? '' : item.SubscriptionStartDate | date: 'MM/dd/yyyy'}}</td>
265   - <td style="text-align: center; width: 200px">{{item.RenewDate == '0001-01-01T00:00:00' ? '' : item.RenewDate | date: 'MM/dd/yyyy'}}</td>
266   - <td style="text-align: center; width: 200px">{{item.SubscriptionEndDate == '0001-01-01T00:00:00' ? '' : item.SubscriptionEndDate | date: 'MM/dd/yyyy'}}</td>
267   - <td style="text-align: center; width: 150px">
268   - <span *ngIf="item.LicStatus=='Active'" class="label label-success">Active</span>
269   - <span *ngIf="item.LicStatus=='Inactive'" class="label label-default">Inactive</span>
270   - <span *ngIf="item.LicStatus=='Expired'" class="label label-default">Expired</span>
271   - <!-- <span *ngIf="item.IsActive" class="label label-success">Active</span>
272   - <span *ngIf="!item.IsActive" class="label label-default">Inactive</span> -->
  250 + <td>{{item.LicenseeName}}</td>
  251 + <td>{{item.LicenseType}}</td>
  252 + <td>{{item.AccountType}}</td>
  253 + <td>{{item.InstitutionName}}</td>
  254 + <td>{{item.ContactAddress}}</td>
  255 + <td>{{item.LicenseState}}</td>
  256 + <td>{{item.LicenseCountry}}</td>
  257 + <td>{{item.EmailId}}</td>
  258 + <td>{{item.StartDate| date: 'MM/dd/yyyy'}}</td>
  259 + <td>{{item.RenewDate | date: 'MM/dd/yyyy'}}</td>
  260 + <td>{{item.EndDate | date: 'MM/dd/yyyy'}}</td>
  261 + <td>
  262 + <span *ngIf="item.LicenseStatus=='Active'" class="label label-success">Active</span>
  263 + <span *ngIf="item.LicenseStatus=='Inactive'" class="label label-default">Inactive</span>
  264 + <span *ngIf="item.LicenseStatus=='Expired'" class="label label-default">Expired</span>
273 265 </td>
274   - <td style="text-align: center; width: 200px">{{item.EntryDate == '0001-01-01T00:00:00' ? '' : item.EntryDate | date: 'MM/dd/yyyy'}}</td>
275   - <td style="text-align: center; width: 200px">{{item.ModifyDate == '0001-01-01T00:00:00' ? '' : item.ModifyDate | date: 'MM/dd/yyyy'}}</td>
276   - <td style="text-align: center; width: 200px">{{item.NoOfImages}}</td>
277   - <td style="text-align: center; width: 150px">{{item.ClientAdmin}}</td>
278   - <td style="text-align: center; width: 150px">{{item.CardNumber}}</td>
279   - <td style="text-align: center; width: 150px">{{item.ProductKey}}</td>
  266 + <td>{{item.EntryDate| date: 'MM/dd/yyyy'}}</td>
  267 + <td>{{item.ModifyDate| date: 'MM/dd/yyyy'}}</td>
  268 + <td>{{item.NoofImages}}</td>
  269 + <td>{{item.ClientAdmin}}</td>
  270 + <td>{{item.CardNumber}}</td>
  271 + <td>{{item.ProductKey}}</td>
280 272 </tr>
281 273 </tbody>
282 274 </table>
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/searchlicense.component.ts
... ... @@ -52,10 +52,46 @@ export class SearchLicense implements OnInit, AfterViewChecked {
52 52 returnFrom: boolean;
53 53 dateStartInvalid: boolean = false;
54 54 dateEndInvalid: boolean = false;
55   - tempSearchParams: any;
  55 + tempSearchParams: any = {
  56 + accountNumber:'',
  57 + licenseeFirstName:'',
  58 + licenseeLastName:'',
  59 + licenseTypeId:0,
  60 + institutionName:'',
  61 + stateId:0,
  62 + countryId:0,
  63 + subscriptionStartDate:'',
  64 + subscriptionEndDate:'',
  65 + isActive:true,
  66 + emailId:'',
  67 + sortColumn:'EntryDate',
  68 + sortOrder:'asc',
  69 + Id: 0,
  70 + row: -1,
  71 + pageNo: 1,
  72 + pageLength: 10
  73 + };
56 74 // Declare height and width variables
57 75 scrHeight:any;
58 76 scrWidth:any;
  77 + SearchField:any={
  78 + accountNumber:'',
  79 + licenseeFirstName:'',
  80 + licenseeLastName:'',
  81 + licenseTypeId:0,
  82 + institutionName:'',
  83 + stateId:0,
  84 + countryId:0,
  85 + subscriptionStartDate:'',
  86 + subscriptionEndDate:'',
  87 + isActive:true,
  88 + emailId:'',
  89 + sortColumn:'EntryDate',
  90 + sortOrder:'asc',
  91 + pageNo:1,
  92 + pageLength:10
  93 + }
  94 +
59 95 @HostListener('window:resize', ['$event'])
60 96 getScreenSize(event?) {
61 97  
... ... @@ -65,8 +101,11 @@ export class SearchLicense implements OnInit, AfterViewChecked {
65 101 }
66 102 else
67 103 {
68   - this.scrHeight = window.innerHeight-475;
  104 + this.scrHeight = window.innerHeight-460;
69 105 }
  106 + if(this.scrHeight<=300) this.scrHeight=300;
  107 +
  108 + $(".ft_container").css("height",this.scrHeight);
70 109 }
71 110 constructor(private licenseService: LicenseService, private router: Router,
72 111 private activeRoute: ActivatedRoute, private fb: FormBuilder,
... ... @@ -88,7 +127,7 @@ export class SearchLicense implements OnInit, AfterViewChecked {
88 127 institutionName: [''],
89 128 stateId: [0],
90 129 countryId: [0],
91   - emailId: ['', Validators.email],
  130 + emailId: [''],
92 131 subscriptionStartDate: [''],
93 132 subscriptionEndDate: [''],
94 133 isActive: [true],
... ... @@ -119,6 +158,44 @@ export class SearchLicense implements OnInit, AfterViewChecked {
119 158 this.selectedRow = +params['row'];
120 159 this.pageNo = params['pageNo'];
121 160 this.pageLength = params['pageLength'];
  161 +
  162 + var sortColumn=params['sortColumn'];
  163 + var sortOrder=params['sortOrder'];
  164 +
  165 + this.tempSearchParams.accountNumber=params['accountNumber'];
  166 + this.tempSearchParams.licenseeFirstName=params['licenseeFirstName'];
  167 + this.tempSearchParams.licenseeLastName=params['licenseeLastName'];
  168 + this.tempSearchParams.licenseTypeId=params['licenseTypeId'];
  169 + this.tempSearchParams.institutionName=params['institutionName'];
  170 + this.tempSearchParams.stateId=params['stateId'];
  171 + this.tempSearchParams.countryId=params['countryId'];
  172 + this.tempSearchParams.subscriptionStartDate=params['subscriptionStartDate'];
  173 + this.tempSearchParams.subscriptionEndDate=params['subscriptionEndDate'];
  174 + this.tempSearchParams.isActive=params['isActive'];
  175 + this.tempSearchParams.emailId=params['emailId'];
  176 + this.tempSearchParams.Id=this.selectedId;
  177 + this.tempSearchParams.row=this.selectedId;
  178 + this.tempSearchParams.sortColumn=sortColumn;
  179 + this.tempSearchParams.sortOrder=sortOrder;
  180 + this.tempSearchParams.pageNo=this.pageNo;
  181 + this.tempSearchParams.pageLength=this.pageLength;
  182 +
  183 + this.SearchField.accountNumber=params['accountNumber'];
  184 + this.SearchField.licenseeFirstName=params['licenseeFirstName'];
  185 + this.SearchField.licenseeLastName=params['licenseeLastName'];
  186 + this.SearchField.licenseTypeId=params['licenseTypeId'];
  187 + this.SearchField.institutionName=params['institutionName'];
  188 + this.SearchField.stateId=params['stateId'];
  189 + this.SearchField.countryId=params['countryId'];
  190 + this.SearchField.subscriptionStartDate=params['subscriptionStartDate'];
  191 + this.SearchField.subscriptionEndDate=params['subscriptionEndDate'];
  192 + this.SearchField.isActive=params['isActive'];
  193 + this.SearchField.emailId=params['emailId'];
  194 + this.SearchField.sortColumn=sortColumn;
  195 + this.SearchField.sortOrder=sortOrder;
  196 + this.SearchField.pageNo=this.pageNo;
  197 + this.SearchField.pageLength=this.pageLength;
  198 +
122 199 this.returnFrom = true;
123 200 }
124 201 else {
... ... @@ -137,8 +214,8 @@ export class SearchLicense implements OnInit, AfterViewChecked {
137 214 width: "100%",
138 215 height: this.scrHeight,
139 216 colModal: [
140   - { width: 150, align: 'center' },
141   - { width: 150, align: 'center' },
  217 + { width: 120, align: 'center' },
  218 + { width: 130, align: 'center' },
142 219 { width: 150, align: 'Center' },
143 220 { width: 150, align: 'Center' },
144 221 { width: 150, align: 'Center' },
... ... @@ -146,27 +223,43 @@ export class SearchLicense implements OnInit, AfterViewChecked {
146 223 { width: 150, align: 'Center' },
147 224 { width: 150, align: 'center' },
148 225 { width: 150, align: 'Center' },
149   - { width: 200, align: 'center' },
150   - { width: 200, align: 'center' },
151   - { width: 200, align: 'center' },
  226 + { width: 130, align: 'center' },
152 227 { width: 150, align: 'center' },
153   - { width: 200, align: 'center' },
154   - { width: 200, align: 'center' },
155   - { width: 200, align: 'Center' },
  228 + { width: 130, align: 'center' },
  229 + { width: 90, align: 'center' },
  230 + { width: 130, align: 'center' },
  231 + { width: 120, align: 'center' },
  232 + { width: 120, align: 'Center' },
156 233 { width: 150, align: 'Center' },
157   - { width: 150, align: 'center' },
158   - { width: 150, align: 'center' },
  234 + { width: 100, align: 'center' },
  235 + { width: 120, align: 'center' },
159 236 ],
160 237 sort: true
161 238 });
162   - if ($('fixed_table_rc').length > 0) {
163   - document.getElementById("fixed_table_rc").remove();
164   - var testScript = document.createElement("script");
165   - testScript.setAttribute("id", "fixed_table_rc");
166   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
167   - testScript.setAttribute("type", "text/javascript");
168   - document.body.appendChild(testScript);
169   - }
  239 +
  240 + var thisObject=this;//class object
  241 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  242 +
  243 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  244 + {
  245 + var fieldName=event.currentTarget.id;
  246 + var sortType=''
  247 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  248 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  249 +
  250 + if (isAscSort) {
  251 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  252 + sortType="desc";
  253 + } else {
  254 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  255 + sortType="asc";
  256 + }
  257 +
  258 + thisObject.SortTableRecords(fieldName,sortType);
  259 +
  260 + }
  261 +
  262 + });
170 263  
171 264 }
172 265  
... ... @@ -184,6 +277,31 @@ export class SearchLicense implements OnInit, AfterViewChecked {
184 277 this.license = item;
185 278 this.tempSearchParams.Id = this.selectedId;
186 279 this.tempSearchParams.row = this.selectedRow;
  280 +
  281 + this.tempSearchParams.pageNo = this.pageNo;
  282 + this.tempSearchParams.pageLength = this.pageLength;
  283 +
  284 + this.tempSearchParams.sortColumn = this.SearchField.sortColumn;
  285 + this.tempSearchParams.sortOrder = this.SearchField.sortOrder;
  286 + }
  287 +
  288 + GetLicenseList() {
  289 +
  290 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  291 +
  292 + if (this.SearchField.sortOrder=='asc') {
  293 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  294 + } else
  295 + {
  296 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  297 + }
  298 +
  299 + this._loadingService.ShowLoading("global-loading");
  300 + this.licenseService.GetLicenses(this.SearchField)
  301 + .subscribe(x => { this.BindFormFields(x);
  302 +
  303 + }, error => this.error = error);
  304 +
187 305 }
188 306  
189 307 BindFormFields(data) {
... ... @@ -195,13 +313,12 @@ export class SearchLicense implements OnInit, AfterViewChecked {
195 313 this.license = this.searchLicenseFrm.controls['licenses'].value.find(C => C.LicenseId == this.selectedId);
196 314 }
197 315 if (this.licenses.length > 0) {
198   - this.NoRecord = '';
199   - this._loadingService.HideLoading("global-loading");
  316 + this.NoRecord = '';
200 317 }
201 318 if (this.licenses.length == 0) {
202 319 this.NoRecord = this.global.NoRecords;
203   - this._loadingService.HideLoading("global-loading");
204 320 }
  321 + this._loadingService.HideLoading("global-loading");
205 322 }
206 323  
207 324 DateChange(dateValue: any) {
... ... @@ -216,8 +333,14 @@ export class SearchLicense implements OnInit, AfterViewChecked {
216 333 this.dateStartInvalid = false;
217 334 }
218 335 }
219   - else {
220   - this.dateStartInvalid = false;
  336 + else
  337 + {
  338 + this.dateStartInvalid = false;
  339 + if(dateValue._bsValue=='Invalid Date')
  340 + {
  341 + this.dateStartInvalid = true;
  342 + }
  343 +
221 344 this.searchLicenseFrm.controls['subscriptionStartDate'].setValue(dateValue._bsValue);
222 345 }
223 346 }
... ... @@ -227,12 +350,18 @@ export class SearchLicense implements OnInit, AfterViewChecked {
227 350 if (dateValue._datepicker._elementRef.nativeElement.value != '') {
228 351 this.dateEndInvalid = true;
229 352 }
230   - else {
  353 + else
  354 + {
231 355 this.dateEndInvalid = false;
232 356 }
233 357 }
234   - else {
235   - this.dateEndInvalid = false;
  358 + else
  359 + {
  360 + this.dateEndInvalid = false;
  361 + if(dateValue._bsValue=='Invalid Date')
  362 + {
  363 + this.dateEndInvalid = true;
  364 + }
236 365 this.searchLicenseFrm.controls['subscriptionEndDate'].setValue(dateValue._bsValue);
237 366 }
238 367 }
... ... @@ -248,19 +377,36 @@ export class SearchLicense implements OnInit, AfterViewChecked {
248 377 }
249 378  
250 379 public SearchLicenses(evt: any) {
251   - if (this.alerts != '') return;
252 380 if (!this.returnFrom) {
253 381 this.selectedRow = -1;
254 382 this.selectedId = -1;
255 383 }
256 384 if (this.returnFrom) this.returnFrom = false;
257   - this._loadingService.ShowLoading("global-loading");
258 385 var tempArr = evt.split(',');
259 386 this.pageNo = parseInt(tempArr[0]);
260 387 this.pageLength = parseInt(tempArr[1]);
261   - this.licenseService.GetLicenses(this.searchLicenseFrm.value, this.pageNo, this.pageLength)
262   - .subscribe(x => { this.BindFormFields(x);
263   - this.tempSearchParams = {
  388 +
  389 + this.SearchField.pageNo=this.pageNo;
  390 + this.SearchField.pageLength=this.pageLength;
  391 +
  392 + this.GetLicenseList();
  393 +
  394 + }
  395 +
  396 + SortTableRecords(fieldName:string,sortType:string) {
  397 + this.selectedRow = -1;
  398 +
  399 + this.SearchField.sortColumn=fieldName;
  400 + this.SearchField.sortOrder=sortType;
  401 +
  402 + this.GetLicenseList();
  403 + }
  404 +
  405 + SearchRecords() {
  406 + this.selectedRow = -1;
  407 + this.pageNo=1;
  408 +
  409 + this.tempSearchParams = {
264 410 'accountNumber': this.searchLicenseFrm.controls['accountNumber'].value,
265 411 'licenseeFirstName': this.searchLicenseFrm.controls['licenseeFirstName'].value,
266 412 'licenseeLastName': this.searchLicenseFrm.controls['licenseeLastName'].value,
... ... @@ -276,14 +422,22 @@ export class SearchLicense implements OnInit, AfterViewChecked {
276 422 'row': this.selectedRow,
277 423 'pageNo': this.pageNo,
278 424 'pageLength': this.pageLength
279   - };
280   - this._loadingService.HideLoading("global-loading");
  425 + };
281 426  
282   - }, error => this.error = error);
283   - }
284   -
285   - SearchRecords() {
286   - this.SearchLicenses('1, ' + this.pageLength);
  427 + this.SearchField.accountNumber=this.searchLicenseFrm.controls['accountNumber'].value;
  428 + this.SearchField.licenseeFirstName=this.searchLicenseFrm.controls['licenseeFirstName'].value;
  429 + this.SearchField.licenseeLastName=this.searchLicenseFrm.controls['licenseeLastName'].value;
  430 + this.SearchField.licenseTypeId=this.searchLicenseFrm.controls['licenseTypeId'].value;
  431 + this.SearchField.institutionName=this.searchLicenseFrm.controls['institutionName'].value;
  432 + this.SearchField.stateId=this.searchLicenseFrm.controls['stateId'].value;
  433 + this.SearchField.countryId=this.searchLicenseFrm.controls['countryId'].value;
  434 + this.SearchField.subscriptionStartDate=this.searchLicenseFrm.controls['subscriptionStartDate'].value;
  435 + this.SearchField.subscriptionEndDate=this.searchLicenseFrm.controls['subscriptionEndDate'].value;
  436 + this.SearchField.isActive=this.searchLicenseFrm.controls['isActive'].value;
  437 + this.SearchField.emailId=this.searchLicenseFrm.controls['emailId'].value;
  438 + this.SearchField.pageNo=this.pageNo;
  439 +
  440 + this.GetLicenseList();
287 441 }
288 442  
289 443 GetLicenseType() {
... ... @@ -317,7 +471,7 @@ EditLicense() {
317 471 this._confirmService.activate("License deleted successfully.", "alertMsg");
318 472 // this.modalAlerts = "<p>License deleted successfully</p>";
319 473 //this.modalRef = this.modalService.show(template);
320   - this.SearchRecords();
  474 + this.GetLicenseList();
321 475 }
322 476 }
323 477  
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/sitelicenseaccount.component.html
1 1 <!-- main-heading -->
2   -<div class="row">
  2 +<div class="row" style="margin-right: auto;">
3 3  
4 4 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
5 5 <h4>Add Building Level Account</h4>
... ... @@ -37,7 +37,7 @@
37 37 <div class="col-sm-12">
38 38  
39 39 <div class="container-fluid main-full">
40   - <div class="row">
  40 + <div class="row" style="margin-right:-40px">
41 41 <div class="well no-margin-btm" [style.visibility]="(mode == 'Search') ? 'visible' : 'hidden'">
42 42 <div class="row">
43 43 <div class="col-lg-4 col-sm-7 padd-right0">
... ... @@ -75,18 +75,18 @@
75 75 </div>
76 76  
77 77 <div class="well" [style.display]="(mode == 'Search') ? 'block' : 'none'">
78   - <table id="fixed_hdr2" class="table-hover">
  78 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
79 79 <thead>
80 80 <tr>
81   - <th>Site Url</th>
82   - <th>Site Url To</th>
83   - <th>Account Name</th>
84   - <th>Institution Name</th>
85   - <th>Department Name</th>
86   - <th>Client Admin</th>
87   - <th>Client Admin Email ID</th>
88   - <th>Original Entry Date</th>
89   - <th>Last Modified Date</th>
  81 + <th id="Ip">Site Url</th>
  82 + <th id="SiteIpTo">Site Url To</th>
  83 + <th id="Title">Account Name</th>
  84 + <th id="InstituteName">Institution Name</th>
  85 + <th id="Department">Department Name</th>
  86 + <th id="SiteUserFirstName">Client Admin</th>
  87 + <th id="SiteUserEmailId">Client Admin Email ID</th>
  88 + <th id="CreationDate">Original Entry Date</th>
  89 + <th id="ModifiedDate">Last Modified Date</th>
90 90 </tr>
91 91 </thead>
92 92 <tbody>
... ...
400-SOURCECODE/Admin/src/app/components/LicenseEntity/sitelicenseaccount.component.ts
... ... @@ -49,6 +49,13 @@ export class SiteLicenseAccount implements OnInit {
49 49 // Declare height and width variables
50 50 scrHeight:any;
51 51 scrWidth:any;
  52 + SearchField:any={
  53 + AccountNumber:'',
  54 + sortColumn:'Id',
  55 + sortOrder:'asc',
  56 + pageNo:1,
  57 + pageLength:10
  58 + };
52 59 @HostListener('window:resize', ['$event'])
53 60 getScreenSize(event?) {
54 61  
... ... @@ -60,6 +67,9 @@ export class SiteLicenseAccount implements OnInit {
60 67 {
61 68 this.scrHeight = window.innerHeight-360;
62 69 }
  70 + if(this.scrHeight<=300) this.scrHeight=300;
  71 +
  72 + $(".ft_container").css("height",this.scrHeight);
63 73 }
64 74  
65 75 constructor(private licenseService: LicenseService,
... ... @@ -136,14 +146,14 @@ export class SiteLicenseAccount implements OnInit {
136 146 height: this.scrHeight,
137 147 colModal: [
138 148 { width: 200, align: 'center' },
139   - { width: 200, align: 'center' },
  149 + { width: 180, align: 'center' },
140 150 { width: 200, align: 'Center' },
141 151 { width: 200, align: 'Center' },
142 152 { width: 250, align: 'Center' },
143 153 { width: 200, align: 'Center' },
144 154 { width: 200, align: 'Center' },
145   - { width: 200, align: 'Center' },
146   - { width: 200, align: 'Center' },
  155 + { width: 180, align: 'Center' },
  156 + { width: 170, align: 'Center' },
147 157 ],
148 158 sort: true
149 159 });
... ... @@ -154,15 +164,30 @@ export class SiteLicenseAccount implements OnInit {
154 164 this.NoRecord = '';
155 165 this.recordCount = 0;
156 166 this.pagerComponent = new PagerComponent();
157   -
158   - if(document.getElementById("fixed_table_rc") != null){
159   - document.getElementById("fixed_table_rc").remove();
160   - var testScript = document.createElement("script");
161   - testScript.setAttribute("id", "fixed_table_rc");
162   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
163   - testScript.setAttribute("type", "text/javascript");
164   - document.body.appendChild(testScript);
165   - }
  167 +
  168 + var thisObject=this;//class object
  169 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  170 +
  171 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  172 + {
  173 + var fieldName=event.currentTarget.id;
  174 + var sortType=''
  175 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  176 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  177 +
  178 + if (isAscSort) {
  179 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  180 + sortType="desc";
  181 + } else {
  182 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  183 + sortType="asc";
  184 + }
  185 +
  186 + thisObject.SortTableRecords(fieldName,sortType);
  187 +
  188 + }
  189 +
  190 + });
166 191 }
167 192 public noWhitespaceValidator(control: FormControl) {
168 193 // new validation for intial whaite space
... ... @@ -241,7 +266,7 @@ export class SiteLicenseAccount implements OnInit {
241 266 public SetClickedRow(i: number, item: any) {
242 267 this.selectedRow = i;
243 268 this.selectedId = item['Id'];
244   - this.licenseSite = item;
  269 + this.licenseSite = [];
245 270 }
246 271  
247 272 BindFormFields(data){
... ... @@ -249,11 +274,11 @@ export class SiteLicenseAccount implements OnInit {
249 274 this.lstLicenseSites = data.LicenseSiteList;
250 275 if(this.recordCount > 0){
251 276 if(this.selectedRow > -1){
252   - this.selectedId = this.lstLicenseSites[this.selectedRow].siteId;
  277 + this.selectedId = this.lstLicenseSites[this.selectedRow].Id;
253 278 this.SetClickedRow(this.selectedRow, this.lstLicenseSites[this.selectedRow]);
254 279 }
255 280 }
256   - this.GetLicenseSiteAdmin();
  281 +
257 282 if (this.lstLicenseSites.length > 0) {
258 283 this.NoRecord = '';
259 284 this._loadingService.HideLoading("global-loading");
... ... @@ -277,6 +302,8 @@ export class SiteLicenseAccount implements OnInit {
277 302 });
278 303 });
279 304 this.lstClientAdmin = tempArr;
  305 + this._loadingService.HideLoading("global-loading");
  306 +
280 307 }
281 308  
282 309 GetLicenseAccounts() {
... ... @@ -367,19 +394,38 @@ export class SiteLicenseAccount implements OnInit {
367 394 }, error => this.error = <any>error);
368 395 }
369 396  
  397 + SortTableRecords(fieldName:string,sortType:string) {
  398 + this.selectedRow = -1;
  399 +
  400 + this.SearchField.sortColumn=fieldName;
  401 + this.SearchField.sortOrder=sortType;
  402 +
  403 + this.GetLicenseSitesList();
  404 + }
  405 +
370 406 GetLicenseSites(evt: any) {
371 407 if (this.alerts != '') return;
372 408 if(this.license.LicenseId == 0){
373 409 return;
374 410 }
375   - this._loadingService.ShowLoading("global-loading");
376 411 var tempArr = evt.split(',');
377 412 this.pageNo = parseInt(tempArr[0]);
378 413 this.pageLength = parseInt(tempArr[1]);
379   - this._loadingService.ShowLoading("global-loading");
380   - this.licenseService.GetLicenseSites(this.license.AccountNumber, this.pageNo, this.pageLength)
381   - .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  414 + this.SearchField.pageNo=this.pageNo;
  415 + this.SearchField.pageLength=this.pageLength;
  416 +
  417 + this.GetLicenseSitesList();
  418 +
382 419 }
  420 +
  421 + GetLicenseSitesList()
  422 + {
  423 + this.SearchField.AccountNumber=this.license.AccountNumber;
  424 + this._loadingService.ShowLoading("global-loading");
  425 + this.licenseService.GetLicenseSites(this.SearchField)
  426 + .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  427 + }
  428 +
383 429  
384 430 GetLicenseSiteAdmin() {
385 431 this.licenseService.GetLicenseSiteAdmin(this.license.AccountNumber)
... ... @@ -389,7 +435,10 @@ export class SiteLicenseAccount implements OnInit {
389 435 SearchRecords() {
390 436 this.selectedRow = -1;
391 437 this.selectedId = -1;
392   - this.GetLicenseSites('1, ' + this.pageLength);
  438 + this.pageNo=1;
  439 + this.SearchField.pageNo=this.pageNo;
  440 +
  441 + this.GetLicenseSitesList();
393 442 }
394 443  
395 444 GetEditions() {
... ... @@ -430,7 +479,8 @@ export class SiteLicenseAccount implements OnInit {
430 479 });
431 480 });
432 481 this.insertUpdateSiteLicenseFrm.setControl('editionLoginArr', this.fb.array(this.lstEditionLogins));
433   - this._loadingService.HideLoading("global-loading");
  482 +
  483 + this.GetLicenseSiteAdmin();
434 484 },
435 485 error => this.error = <any>error);
436 486 }
... ... @@ -441,8 +491,6 @@ export class SiteLicenseAccount implements OnInit {
441 491 this.alerts = "<span>Site account delete unsuccessfull</span>";
442 492 } else {
443 493 this._confirmService.activate("Site account deleted successfully.", "alertMsg");
444   - //this.modalAlerts = "<p>Site account deleted successfully</p>";
445   - //this.modalRef = this.modalService.show(template);
446 494 this.SearchRecords();
447 495 }
448 496 }
... ... @@ -452,11 +500,7 @@ export class SiteLicenseAccount implements OnInit {
452 500 this.alerts = "<span>License site save unsuccessfull.</span>";
453 501 } else {
454 502 this.mode = 'Edit';
455   - this.selectedId = data;
456   - this.GetSiteById();
457   - //this.modalAlerts = "<p>License site saved successfully.</p>";
458 503 this._confirmService.activate("License site saved successfully.", "alertMsg");
459   - // this.modalRef = this.modalService.show(template);
460 504 }
461 505 }
462 506  
... ... @@ -504,15 +548,20 @@ export class SiteLicenseAccount implements OnInit {
504 548 this.modalRef.hide();
505 549 this.alerts = '';
506 550 if(this.alerts == ''){
507   - var obj = this.licenseSite;
508   - obj.LicenseId = this.license.LicenseId;
509   - return this.licenseService.DeleteSiteAccount(obj)
  551 + if(this.selectedRow > -1){
  552 + var siteId = this.lstLicenseSites[this.selectedRow].Id;
  553 + var LicenseId = this.license.LicenseId;
  554 + var SiteUserId = this.license.SiteUserId;
  555 + return this.licenseService.DeleteSiteAccount({siteId:siteId,LicenseId:LicenseId,SiteUserId:SiteUserId})
510 556 .subscribe(
511 557 data => (this.AfterDeleteData(data, template)),
512 558 error => {
513 559 this.error = <any>error;
514 560 this.alerts = "<span>" + this.error + "</span>";
515 561 });
  562 +
  563 + }
  564 +
516 565 }
517 566 }
518 567  
... ... @@ -545,34 +594,22 @@ export class SiteLicenseAccount implements OnInit {
545 594 if (this.lstCountry.find(C => C.Id == this.license.CountryId).CountryName != "United States") {
546 595 this.license.StateId = this.lstState.find(C => C.StateName == "Other").Id;
547 596 this.insertUpdateSiteLicenseFrm.controls['stateId'].setValue(this.license.StateId);
548   - // this.insertUpdateSiteLicenseFrm.controls['phone'].clearValidators();
549   - // this.insertUpdateSiteLicenseFrm.controls['phone'].setValidators([Validators.required,this.noWhitespaceValidator]);
550 597 }
551 598 else {
552 599 this.license.StateId = 0;
553 600 this.insertUpdateSiteLicenseFrm.controls['stateId'].setValue(this.license.StateId);
554   - // this.insertUpdateSiteLicenseFrm.controls['phone'].clearValidators();
555   - // this.insertUpdateSiteLicenseFrm.controls['phone'].setValidators([Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$'),this.noWhitespaceValidator]);
556   - }
557   - // this.insertUpdateSiteLicenseFrm.controls['phone'].updateValueAndValidity();
  601 + }
558 602  
559 603 }
560 604 OnStateChange(element: any) {
561 605 this.license.StateId = parseInt(element.value);
562 606 if (this.lstState.find(C => C.Id == this.license.StateId).StateName != "Other") {
563 607 this.license.CountryId = this.lstCountry.find(C => C.CountryName == "United States").Id;
564   - this.insertUpdateSiteLicenseFrm.controls['countryId'].setValue(this.license.CountryId);
565   - // this.insertUpdateSiteLicenseFrm.controls['phone'].clearValidators();
566   - // this.insertUpdateSiteLicenseFrm.controls['phone'].setValidators([Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$'),this.noWhitespaceValidator]);
567   - }
  608 + this.insertUpdateSiteLicenseFrm.controls['countryId'].setValue(this.license.CountryId);
  609 + }
568 610 else {
569 611 this.license.CountryId = 0;
570   - this.insertUpdateSiteLicenseFrm.controls['countryId'].setValue(this.license.CountryId);
571   - // this.insertUpdateSiteLicenseFrm.controls['phone'].clearValidators();
572   - // this.insertUpdateSiteLicenseFrm.controls['phone'].setValidators([Validators.required,this.noWhitespaceValidator]);
573 612 }
574   - // this.insertUpdateSiteLicenseFrm.controls['phone'].updateValueAndValidity();
575   -
576 613 }
577 614  
578 615 EditLicenseSite(){
... ... @@ -585,6 +622,6 @@ export class SiteLicenseAccount implements OnInit {
585 622 CancelAddEdit(){
586 623 this.mode = 'Search';
587 624 this.topPos = '2000px';
588   - this.GetLicenseSites(this.pageNo + ', ' + this.pageLength);
  625 + this.GetLicenseSitesList();
589 626 }
590 627 }
... ...
400-SOURCECODE/Admin/src/app/components/ManageDiscountCode/managediscountcode.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <!-- main-heading -->
3 3 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
4 4 <h4>{{Mode}} Discount Code</h4>
... ... @@ -26,7 +26,7 @@
26 26 <!-- form -->
27 27 <form class="form" [formGroup]="manageDiscountCodeFrm">
28 28  
29   - <div [style.display]="(Mode == 'Manage') ? 'block' : 'none'" class="row">
  29 + <div [style.display]="(Mode == 'Manage') ? 'block' : 'none'" class="row" style="margin-right:-40px;margin-left:-30px">
30 30 <div class="well no-margin-btm">
31 31  
32 32 <div class="row">
... ... @@ -67,7 +67,6 @@
67 67 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
68 68 </span>
69 69 </div>
70   - <!-- <span class="help-block">(mm/dd/yyyy)</span> -->
71 70 <div *ngIf="dateStartInvalid && manageDiscountCodeFrm.controls.searchStartDate.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Discount start date requires date in mm/dd/yyyy format</div>
72 71 </div>
73 72 </div>
... ... @@ -88,7 +87,6 @@
88 87 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
89 88 </span>
90 89 </div>
91   - <!-- <span class="help-block">(mm/dd/yyyy)</span> -->
92 90 <div *ngIf="dateEndInvalid && manageDiscountCodeFrm.controls.searchEndDate.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Discount end date requires date in mm/dd/yyyy format</div>
93 91 </div>
94 92 </div>
... ... @@ -103,7 +101,7 @@
103 101 <label class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0 hidden-lg hidden-xs">&nbsp;</label>
104 102 </div>
105 103 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
106   - <button (click)="SearchRecords()" type="button" class="btn btn-primary btn-sm" [disabled]="dateStartInvalid || dateEndInvalid || Searchalerts != ''"><i class="fa fa-search"></i> Search</button>
  104 + <button (click)="SearchRecords()" type="button" class="btn btn-primary btn-sm" [disabled]="!manageDiscountCodeFrm.valid || dateStartInvalid || dateEndInvalid || Searchalerts != ''"><i class="fa fa-search"></i> Search</button>
107 105 </div>
108 106 </div>
109 107 </div>
... ... @@ -113,14 +111,14 @@
113 111 </div>
114 112  
115 113 <div class="well">
116   - <table id="fixed_hdr2" class="table-hover">
  114 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
117 115 <thead>
118 116 <tr>
119   - <th>Discount Code</th>
120   - <th>Percentage</th>
121   - <th>Discount Start Date</th>
122   - <th>Discount End Date</th>
123   - <th>Status</th>
  117 + <th id="DiscountCode">Discount Code</th>
  118 + <th id="Percentage">Percentage</th>
  119 + <th id="StartDate">Discount Start Date</th>
  120 + <th id="EndDate">Discount End Date</th>
  121 + <th id="IsActive">Status</th>
124 122 </tr>
125 123 </thead>
126 124 <tbody style="word-wrap: break-word; word-break: break-all">
... ...
400-SOURCECODE/Admin/src/app/components/ManageDiscountCode/managediscountcode.component.ts
... ... @@ -55,6 +55,15 @@ pageLength: number;
55 55 // Declare height and width variables
56 56 scrHeight:any;
57 57 scrWidth:any;
  58 + SearchField:any={
  59 + discountCode:'',
  60 + startDate:'',
  61 + endDate:'',
  62 + sortColumn:'Id',
  63 + sortOrder:'asc',
  64 + pageNo:1,
  65 + pageLength:10
  66 + }
58 67 @HostListener('window:resize', ['$event'])
59 68 getScreenSize(event?) {
60 69  
... ... @@ -64,8 +73,11 @@ getScreenSize(event?) {
64 73 }
65 74 else
66 75 {
67   - this.scrHeight = window.innerHeight-365;
  76 + this.scrHeight = window.innerHeight-350;
68 77 }
  78 + if(this.scrHeight<=360) this.scrHeight=360;
  79 +
  80 + $(".ft_container").css("height",this.scrHeight);
69 81 }
70 82  
71 83 constructor(private manageDiscountCodeService: ManageDiscountCodeService, private router: Router,
... ... @@ -91,7 +103,7 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
91 103 discountCode: [''],
92 104 startDate: ['', Validators.required],
93 105 endDate: ['', Validators.required],
94   - percentage: ['', [Validators.required, Validators.pattern('[0-9.]*')]],
  106 + percentage: ['', [Validators.required, Validators.pattern('[0-9.]*'),Validators.min(0),Validators.max(100)]],
95 107 isActive: ['true']
96 108 });
97 109 $('#fixed_hdr2').fxdHdrCol({
... ... @@ -114,15 +126,30 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
114 126 this.NoRecord = this.global.NoRecords;
115 127 this.recordCount = 0;
116 128 this.pagerComponent = new PagerComponent();
117   -
118   - if(document.getElementById("fixed_table_rc") != null){
119   - document.getElementById("fixed_table_rc").remove();
120   - var testScript = document.createElement("script");
121   - testScript.setAttribute("id", "fixed_table_rc");
122   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
123   - testScript.setAttribute("type", "text/javascript");
124   - document.body.appendChild(testScript);
125   - }
  129 +
  130 + var thisObject=this;//class object
  131 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  132 +
  133 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  134 + {
  135 + var fieldName=event.currentTarget.id;
  136 + var sortType=''
  137 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  138 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  139 +
  140 + if (isAscSort) {
  141 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  142 + sortType="desc";
  143 + } else {
  144 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  145 + sortType="asc";
  146 + }
  147 +
  148 + thisObject.SortTableRecords(fieldName,sortType);
  149 +
  150 + }
  151 +
  152 + });
126 153 }
127 154  
128 155 public SetClickedRow(i: number, item: any) {
... ... @@ -235,32 +262,43 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
235 262 }
236 263 }
237 264  
  265 + SortTableRecords(fieldName:string,sortType:string) {
  266 + this.selectedRow = -1;
  267 + this.SearchField.sortColumn=fieldName;
  268 + this.SearchField.sortOrder=sortType;
  269 +
  270 + this.GetDiscountCodeList();
  271 + }
  272 +
  273 + GetDiscountCodeList() {
  274 + this._loadingService.ShowLoading("global-loading");
  275 + this.manageDiscountCodeService.GetDiscountCodes(this.SearchField)
  276 + .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  277 +
  278 + }
  279 +
238 280 public SearchDiscountCodes(evt: any) {
239   - if (this.global.ValidationMsg != '') {
240   - this.Searchalerts = this.global.ValidationMsg
241   - }
242   - if (this.alerts != '' && this.Searchalerts != '') return;
243   - this.global.compareTwoDates(this.manageDiscountCodeFrm.controls['searchEndDate'].value, this.manageDiscountCodeFrm.controls['searchStartDate'].value);
244   - this._loadingService.ShowLoading("global-loading");
  281 +
245 282 var tempArr = evt.split(',');
246 283 this.pageNo = parseInt(tempArr[0]);
247 284 this.pageLength = parseInt(tempArr[1]);
248   - this._loadingService.ShowLoading("global-loading");
249   - this.manageDiscountCodeService.GetDiscountCodes(
250   - {
251   - discountCode: this.manageDiscountCodeFrm.controls['searchDiscountCode'].value,
252   - startDate: this.datePipe.transform(this.manageDiscountCodeFrm.controls['searchStartDate'].value, 'MM/dd/yyyy'),
253   - endDate: this.datePipe.transform(this.manageDiscountCodeFrm.controls['searchEndDate'].value, 'MM/dd/yyyy'),
254   - pageNo: this.pageNo,
255   - pageLength: this.pageLength
256   - })
257   - .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  285 + this.SearchField.pageNo=this.pageNo;
  286 + this.SearchField.pageLength=this.pageLength;
  287 +
  288 + this.GetDiscountCodeList();
  289 +
258 290 }
259 291  
260 292 SearchRecords() {
261   - this.selectedRow = -1;
262   - this.selectedId = -1;
263   - this.SearchDiscountCodes('1, ' + this.pageLength);
  293 + this.selectedRow = -1;
  294 + this.pageNo=1;
  295 + this.SearchField.discountCode=this.manageDiscountCodeFrm.controls['searchDiscountCode'].value;
  296 + this.SearchField.startDate=this.manageDiscountCodeFrm.controls['searchStartDate'].value;
  297 + this.SearchField.endDate=this.manageDiscountCodeFrm.controls['searchEndDate'].value;
  298 +
  299 + this.SearchField.pageNo=this.pageNo;
  300 +
  301 + this.GetDiscountCodeList();
264 302 }
265 303  
266 304 openModal(template: TemplateRef<any>) {
... ... @@ -276,11 +314,15 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
276 314 Date.parse(this.insertUpdateDiscountCodeFrm.controls['endDate'].value)){
277 315 this.alerts += '<span>Discount start date must be lower than discount end date</span>';
278 316 }
  317 + if (this.insertUpdateDiscountCodeFrm.valid && this.alerts == '') {
  318 + this._loadingService.ShowLoading("global-loading");
279 319 this.manageDiscountCodeService.GetDiscountCodes(
280 320 {
281 321 discountCode: this.insertUpdateDiscountCodeFrm.controls['discountCode'].value,
282   - startDate: this.datePipe.transform('1/1/1', 'MM/dd/yyyy'),
283   - endDate: this.datePipe.transform('1/1/9999', 'MM/dd/yyyy'),
  322 + startDate: '',
  323 + endDate: '',
  324 + sortColumn:'Id',
  325 + sortOrder:'asc',
284 326 pageNo: 1,
285 327 pageLength: 5
286 328 })
... ... @@ -290,6 +332,7 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
290 332 if(obj.discountId == 0){
291 333 if(x.RecordCount > 0){
292 334 this.alerts += '<span>Discount code already exists. Enter a different code.</span>';
  335 + this._loadingService.HideLoading("global-loading");
293 336 }
294 337 if(this.alerts == ''){
295 338 return this.manageDiscountCodeService.InsertDiscountCode(obj)
... ... @@ -301,6 +344,7 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
301 344 else{
302 345 if(x.RecordCount > 0 && obj.discountId != x.DiscountCodeList[0].Id){
303 346 this.alerts += '<span>Discount code already exists. Enter a different code.</span>';
  347 + this._loadingService.HideLoading("global-loading");
304 348 }
305 349 if(this.alerts == ''){
306 350 return this.manageDiscountCodeService.UpdateDiscountCode(obj)
... ... @@ -309,8 +353,12 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
309 353 error => this.error = <any>error);
310 354 }
311 355 }
  356 +
  357 +
312 358 }, error => this.error = error);
313   - }
  359 +
  360 + }
  361 + }
314 362  
315 363 AfterInsertData(data, template) {
316 364 if (data.Status == "false") {
... ... @@ -321,6 +369,7 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
321 369 //this.modalAlerts = "<p>Discount code saved successfully</p>";
322 370 //this.modalRef = this.modalService.show(template);
323 371 }
  372 + this._loadingService.HideLoading("global-loading");
324 373 }
325 374  
326 375 AfterUpdateData(data, template) {
... ... @@ -332,6 +381,7 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
332 381 //this.modalAlerts = "<p>Discount code updated successfully</p>";
333 382 //this.modalRef = this.modalService.show(template);
334 383 }
  384 + this._loadingService.HideLoading("global-loading");
335 385 }
336 386  
337 387 AddDiscountCode(){
... ... @@ -370,7 +420,7 @@ constructor(private manageDiscountCodeService: ManageDiscountCodeService, privat
370 420 this.Mode = 'Manage';
371 421 this.topPos = '2000px';
372 422 this.divClass = 'col-sm-12';
373   - this.SearchDiscountCodes(this.pageNo + ', ' + this.pageLength);
  423 + this.GetDiscountCodeList();;
374 424 }
375 425  
376 426 }
... ...
400-SOURCECODE/Admin/src/app/components/ManageDiscountCode/managediscountcode.service.ts
... ... @@ -5,11 +5,13 @@ import &#39;rxjs/add/operator/map&#39;;
5 5 import 'rxjs/add/operator/catch';
6 6 import 'rxjs/add/observable/throw';
7 7 import 'rxjs/add/operator/do';
  8 +import { DatePipe } from '@angular/common';
8 9 import { Observable } from 'rxjs/Observable';
9 10 import { GlobalService } from '../../shared/global';
10 11  
11 12 @Injectable()
12 13 export class ManageDiscountCodeService {
  14 + datePipe: DatePipe = new DatePipe('en-US');
13 15  
14 16 constructor(private http: Http, public commonService:GlobalService ) { }
15 17  
... ... @@ -20,8 +22,19 @@ export class ManageDiscountCodeService {
20 22 if (obj.endDate == '' || obj.endDate == null) {
21 23 obj.endDate = '1/1/9999';
22 24 }
  25 + obj.startDate = this.datePipe.transform(obj.startDate, 'MM/dd/yyyy');
  26 + obj.endDate = this.datePipe.transform(obj.endDate, 'MM/dd/yyyy');
  27 +
23 28 return this.http.get(this.commonService.resourceBaseUrl + "DiscountCode/GetDiscountCodes?discountCode="
24   - + obj.discountCode + "&startDate=" + obj.startDate + "&endDate=" + obj.endDate + "&pageNo=" + obj.pageNo + "&pageLength=" + obj.pageLength)
  29 + + obj.discountCode
  30 + + "&startDate=" + obj.startDate
  31 + + "&endDate=" + obj.endDate
  32 + + "&endDate=" + obj.endDate
  33 + + "&sortColumn=" + obj.sortColumn
  34 + + "&sortOrder=" + obj.sortOrder
  35 + + "&pageNo=" + obj.pageNo
  36 + + "&pageLength=" + obj.pageLength
  37 + )
25 38 .map(this.extractData)
26 39 .catch((res: Response) => this.handleError(res));
27 40 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/customersummaryreport.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
3 3 <h4>Customer Summary Report</h4>
4 4 </div>
5 5 <div class="col-sm-12">
6 6  
7 7 <div class="container-fluid main-full">
8   - <div class="row">
  8 + <div class="row" style="margin-right:-40px">
9 9 <div class="well no-margin-btm">
10 10 <div class="row" [formGroup]="CustomerSummaryReportForm">
11 11 <div class="col-lg-4 col-sm-4">
... ... @@ -120,27 +120,6 @@
120 120 <div class="col-sm-12">
121 121 <div class="form-group marginTop5 text-right">
122 122 <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
123   - <!--modal-->
124   - <!--<div class="modal fade bs-example-modal-sm text-left" tabindex="-1" role="dialog" id="mymodal">
125   - <div class="modal-dialog modal-sm" role="document">
126   - <div class="modal-content">
127   - <div class="modal-header annotation-modal-header ui-draggable-handle">
128   - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">ร—</span></button>
129   - <h4 class="modal-title" id="">Alert</h4>
130   - </div>
131   - <div class="modal-body">
132   - <h5>Account number does not exist in the system.</h5>
133   - </div>
134   - <div class="modal-footer">
135   - <div class="row">
136   - <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
137   - </div>
138   - </div>
139   -
140   - </div>
141   - </div>
142   - </div>-->
143   - <!--modal-->
144 123 </div>
145 124 </div>
146 125  
... ... @@ -152,25 +131,25 @@
152 131 </div>
153 132  
154 133 <div class="well">
155   - <table id="fixed_hdr2" class="table-hover ">
  134 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
156 135 <thead>
157 136 <tr>
158   - <th style="width: 150px">Account Number</th>
159   - <th style="width: 200px">Licensee Name</th>
160   - <th style="width: 150px">License Type</th>
161   - <th style="width: 150px">Account Type</th>
162   - <th style="width: 150px">Edition</th>
163   - <th style="width: 150px">Email ID</th>
164   - <th style="width: 150px">Status</th>
165   - <th style="width: 150px">Start Date</th>
166   - <th style="width: 150px">End Date</th>
167   - <th style="width: 150px">Price</th>
168   - <th style="width: 150px">Zip</th>
169   - <th style="width: 150px">State(only U.S.)</th>
170   - <th style="width: 150px">Country</th>
171   - <th style="width: 150px">Institution Name</th>
172   - <th style="width: 200px">Original Entry Date</th>
173   - <th style="width: 200px">Credit Card Number</th>
  137 + <th id="AccountNumber">Account Number</th>
  138 + <th id="LicenseeName">Licensee Name</th>
  139 + <th id="LicenseType">License Type</th>
  140 + <th id="AccountType">Account Type</th>
  141 + <th id="Edition">Edition</th>
  142 + <th id="Email">Email ID</th>
  143 + <th id="LicenseStatus">Status</th>
  144 + <th id="StartDate">Start Date</th>
  145 + <th id="EndDate">End Date</th>
  146 + <th id="Price">Price</th>
  147 + <th id="LicenseZip">Zip</th>
  148 + <th id="LicenseState">State</th>
  149 + <th id="LicenseCountry">Country</th>
  150 + <th id="InstitutionName">Institution Name</th>
  151 + <th id="LicenseCreationDate">Org. Entry Date</th>
  152 + <th id="CardNumber">Card Number</th>
174 153 </tr>
175 154 </thead>
176 155 <tbody>
... ... @@ -179,22 +158,22 @@
179 158 <td colspan="6"><b style="color: red;text-align: center; padding-left: 606px;"><span [innerHTML]="NoRecord"></span></b></td>
180 159 </tr>
181 160 <tr *ngFor="let csr of lstCustomerSummaryReport">
182   - <td style="width: 150px">{{csr.AccountNumber}}</td>
183   - <td style="width: 200px">{{csr.LicenseeName}}</td>
184   - <td style="width: 150px">{{csr.LicenseType}}</td>
185   - <td style="width: 150px">{{csr.AccountType}}</td>
186   - <td style="width: 150px">{{csr.Edition}}</td>
187   - <td style="width: 150px">{{csr.Email}}</td>
188   - <td style="width: 150px">{{csr.LicenseStatus}}</td>
189   - <td style="width: 150px">{{csr.StartDate}}</td>
190   - <td style="width: 150px">{{csr.EndDate}}</td>
191   - <td style="width: 150px">{{csr.Price | number:'1.2'}}</td>
192   - <td style="width: 150px">{{csr.LicenseZip}}</td>
193   - <td style="width: 150px">{{csr.LicenseState}}</td>
194   - <td style="width: 150px">{{csr.LicenseCountry}}</td>
195   - <td style="width: 150px">{{csr.InstitutionName}}</td>
196   - <td style="width: 200px">{{csr.LicenseCreationDate}}</td>
197   - <td style="width: 200px">{{csr.CardNumber}}</td>
  161 + <td>{{csr.AccountNumber}}</td>
  162 + <td>{{csr.LicenseeName}}</td>
  163 + <td>{{csr.LicenseType}}</td>
  164 + <td>{{csr.AccountType}}</td>
  165 + <td>{{csr.Edition}}</td>
  166 + <td>{{csr.Email}}</td>
  167 + <td>{{csr.LicenseStatus}}</td>
  168 + <td>{{csr.StartDate | date: 'MM/dd/yyyy'}}</td>
  169 + <td>{{csr.EndDate | date: 'MM/dd/yyyy'}}</td>
  170 + <td>{{csr.Price | number:'1.2'}}</td>
  171 + <td>{{csr.LicenseZip}}</td>
  172 + <td>{{csr.LicenseState}}</td>
  173 + <td>{{csr.LicenseCountry}}</td>
  174 + <td>{{csr.InstitutionName}}</td>
  175 + <td>{{csr.LicenseCreationDate | date: 'MM/dd/yyyy'}}</td>
  176 + <td>{{csr.CardNumber}}</td>
198 177 </tr>
199 178 </tbody>
200 179 </table>
... ...
400-SOURCECODE/Admin/src/app/components/Reports/customersummaryreport.component.ts
... ... @@ -32,11 +32,8 @@ export class CustomerSummaryReport implements OnInit, AfterViewChecked {
32 32 public lstAccountType: any;
33 33 CustomerSummaryReportForm: FormGroup;
34 34 CustomerSummaryReports: CustomerSummaryReports[];
35   - numberOfCustomerSummaryReport: number;
36   - limit: number;
37 35 page: number = 1;
38 36 error;
39   - CustomerSummaryReport = new CustomerSummaryReports();
40 37 modalAlerts: string;
41 38 divClass: string = '';
42 39 topPos: string = '2000px';
... ... @@ -56,8 +53,25 @@ export class CustomerSummaryReport implements OnInit, AfterViewChecked {
56 53 pageNo: number;
57 54 pageLength: number;
58 55 // Declare height and width variables
59   - scrHeight:any;
60   - scrWidth:any;
  56 + scrHeight:any;
  57 + scrWidth:any;
  58 + actualPageNo: number;
  59 + actualPageLength: number;
  60 + SearchField:any={
  61 + sLicenseeName:'',
  62 + sLicenseType:0,
  63 + sAccountNumber:'',
  64 + sAccountType:0,
  65 + sZip:'',
  66 + sSubscriptionStart:0,
  67 + sSubscriptionEnd:-1,
  68 + iState:0,
  69 + iCountry:0,
  70 + sortColumn:'AccountNumber',
  71 + sortOrder:'asc',
  72 + pageNo:1,
  73 + pageLength:10
  74 + };
61 75 @HostListener('window:resize', ['$event'])
62 76 getScreenSize(event?) {
63 77  
... ... @@ -69,6 +83,9 @@ export class CustomerSummaryReport implements OnInit, AfterViewChecked {
69 83 {
70 84 this.scrHeight = window.innerHeight-480;
71 85 }
  86 + if(this.scrHeight<=360) this.scrHeight=360;
  87 +
  88 + $(".ft_container").css("height",this.scrHeight);
72 89  
73 90 }
74 91 constructor(private router: Router, private reportservice: ReportService, private fb: FormBuilder,
... ... @@ -78,7 +95,6 @@ export class CustomerSummaryReport implements OnInit, AfterViewChecked {
78 95 this.ExportingStart = false;
79 96 this.buttonStatus = false;
80 97 this.NoRecord = this.global.NoRecords;
81   - let CustomerSummaryReport = new CustomerSummaryReports();
82 98 this.previousdate.setDate(this.previousdate.getDate());
83 99 this.CustomerSummaryReportForm = this.fb.group({
84 100 sLicenseeName: [''],
... ... @@ -87,7 +103,7 @@ export class CustomerSummaryReport implements OnInit, AfterViewChecked {
87 103 sAccountNumber: [''],
88 104 sAccountType: [0],
89 105 iState: [0],
90   - sSubscriptionStart: [0.00],
  106 + sSubscriptionStart: [''],
91 107 sSubscriptionEnd: [''],
92 108 iCountry: [0]
93 109 });
... ... @@ -106,37 +122,50 @@ export class CustomerSummaryReport implements OnInit, AfterViewChecked {
106 122 width: "100%",
107 123 height: this.scrHeight,
108 124 colModal: [
109   - { width: 150, align: 'center' },
  125 + { width: 140, align: 'center' },
110 126 { width: 200, align: 'center' },
111 127 { width: 150, align: 'Center' },
112 128 { width: 150, align: 'Center' },
113 129 { width: 150, align: 'Center' },
114   - { width: 150, align: 'Center' },
115   - { width: 150, align: 'Center' },
116   - { width: 150, align: 'center' },
117   - { width: 150, align: 'Center' },
118   - { width: 150, align: 'center' },
  130 + { width: 170, align: 'Center' },
  131 + { width: 100, align: 'Center' },
  132 + { width: 130, align: 'center' },
  133 + { width: 130, align: 'Center' },
  134 + { width: 110, align: 'center' },
  135 + { width: 100, align: 'center' },
  136 + { width: 120, align: 'center' },
  137 + { width: 130, align: 'center' },
119 138 { width: 150, align: 'center' },
120   - { width: 150, align: 'center' },
121   - { width: 150, align: 'center' },
122   - { width: 150, align: 'center' },
123   - { width: 200, align: 'center' },
124   - { width: 200, align: 'Center' },
125   - //{ width: 400, align: 'Center' },
126   - //{ width: 150, align: 'center' },
127   - //{ width: 110, align: 'center' },
  139 + { width: 130, align: 'center' },
  140 + { width: 110, align: 'Center' }
  141 +
128 142 ],
129 143 sort: true
130 144 });
131   - if(document.getElementById("fixed_table_rc") != null){
132   - document.getElementById("fixed_table_rc").remove();
133   - var testScript = document.createElement("script");
134   - testScript.setAttribute("id", "fixed_table_rc");
135   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
136   - testScript.setAttribute("type", "text/javascript");
137   - document.body.appendChild(testScript);
138   - }
139   -
  145 +
  146 + var thisObject=this;//class object
  147 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  148 +
  149 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  150 + {
  151 + var fieldName=event.currentTarget.id;
  152 + var sortType=''
  153 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  154 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  155 +
  156 + if (isAscSort) {
  157 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  158 + sortType="desc";
  159 + } else {
  160 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  161 + sortType="asc";
  162 + }
  163 +
  164 + thisObject.SortTableRecords(fieldName,sortType);
  165 +
  166 + }
  167 +
  168 + });
140 169 }
141 170 ngAfterViewChecked() {
142 171 $('#fixed_hdr2 thead').css('width', $('#fixed_hdr2 tbody tr:eq(0)').width());
... ... @@ -156,34 +185,75 @@ export class CustomerSummaryReport implements OnInit, AfterViewChecked {
156 185 this.reportservice.GetAccountType().subscribe(st => { this.lstAccountType = st; }, error => this.error = <any>error);
157 186 }
158 187  
  188 + SortTableRecords(fieldName:string,sortType:string) {
  189 + this.SearchField.sortColumn=fieldName;
  190 + this.SearchField.sortOrder=sortType;
  191 +
  192 + this.GetCustomerSummeryList();
  193 + }
  194 +
159 195 GetCustomerSummeryReport(evt: any) {
160   - this._loadingService.ShowLoading("global-loading");
161   - var tempArr = evt.split(',');
162   - this.pageNo = parseInt(tempArr[0]);
163   - var actulalength=this.pageLength;
  196 + this.actualPageNo = this.pageNo;
  197 + this.actualPageLength =this.pageLength;
  198 +
  199 + var tempArr = evt.split(',');
  200 + this.pageNo = parseInt(tempArr[0]);
164 201 this.pageLength = parseInt(tempArr[1]);
165 202  
166   - this.CustomerSummaryReport = this.CustomerSummaryReportForm.value;
167   - var obj = this.CustomerSummaryReport;
168   - if (this.ExportingStart) {
169   - this.reportservice.GetCustomerSummeryReport(obj, this.pageNo, this.pageLength).subscribe((CustomerSummaryReports: CustomerSummaryReports[]) => {
170   - //reset length after csvexport
171   - this.pageLength=actulalength;
172   - this.ExportService(CustomerSummaryReports); }, error => this.error = <any>error);
  203 + this.SearchField.pageNo=this.pageNo;
  204 + this.SearchField.pageLength=this.pageLength;
  205 +
  206 + this.GetCustomerSummeryList();
  207 + }
  208 +
  209 + GetCustomerSummeryList() {
  210 + this._loadingService.ShowLoading("global-loading");
  211 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  212 +
  213 + if (this.SearchField.sortOrder=='asc') {
  214 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  215 + } else
  216 + {
  217 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  218 + }
  219 +
  220 + if (this.ExportingStart) {
  221 + this.reportservice.GetCustomerSummeryReport(this.SearchField).subscribe((CustomerSummaryReports: CustomerSummaryReports[]) => {
  222 + //reset length after csvexport
  223 + this.pageNo = this.actualPageNo;
  224 + this.pageLength=this.actualPageLength;
  225 +
  226 + this.SearchField.pageNo=this.pageNo;
  227 + this.SearchField.pageLength=this.pageLength;
  228 + this.ExportService(CustomerSummaryReports); }, error => this.error = <any>error);
173 229 }
174 230 else {
175   - this.reportservice.GetCustomerSummeryReport(obj, this.pageNo, this.pageLength).subscribe((CustomerSummaryReports: CustomerSummaryReports[]) => { this.BindFormFields(CustomerSummaryReports); }, error => this.error = <any>error);
  231 + this.reportservice.GetCustomerSummeryReport(this.SearchField).subscribe((CustomerSummaryReports: CustomerSummaryReports[]) => { this.BindFormFields(CustomerSummaryReports); }, error => this.error = <any>error);
176 232 }
177   -
178   - }
  233 +
  234 + this.ExportingStart = false;
  235 + }
  236 +
179 237 SearchRecords() {
180 238 this.ExportingStart = false;
181   - this.GetCustomerSummeryReport('1, ' + this.pageLength);
  239 + this.pageNo=1;
  240 + this.SearchField.sLicenseeName=this.CustomerSummaryReportForm.controls['sLicenseeName'].value;
  241 + this.SearchField.sLicenseType=this.CustomerSummaryReportForm.controls['sLicenseType'].value;
  242 + this.SearchField.sAccountNumber=this.CustomerSummaryReportForm.controls['sAccountNumber'].value;
  243 + this.SearchField.sAccountType=this.CustomerSummaryReportForm.controls['sAccountType'].value;
  244 + this.SearchField.sZip=this.CustomerSummaryReportForm.controls['sZip'].value;
  245 + this.SearchField.sSubscriptionStart=this.CustomerSummaryReportForm.controls['sSubscriptionStart'].value;
  246 + this.SearchField.sSubscriptionEnd=this.CustomerSummaryReportForm.controls['sSubscriptionEnd'].value;
  247 + this.SearchField.iState=this.CustomerSummaryReportForm.controls['iState'].value;
  248 + this.SearchField.iCountry=this.CustomerSummaryReportForm.controls['iCountry'].value;
  249 + this.SearchField.pageNo=this.pageNo;
  250 +
  251 + this.GetCustomerSummeryList();
  252 +
182 253 }
183 254 BindFormFields(data) {
184 255 this.recordCount = data.RecordCount;
185 256 this.lstCustomerSummaryReport = data.CustomerSummery;
186   - this.numberOfCustomerSummaryReport = this.lstCustomerSummaryReport.length; this.limit = this.lstCustomerSummaryReport.length;
187 257 if (this.lstCustomerSummaryReport.length > 0) {
188 258 this.NoRecord = '';
189 259 this.buttonStatus = true;
... ... @@ -199,17 +269,19 @@ export class CustomerSummaryReport implements OnInit, AfterViewChecked {
199 269 if (this.buttonStatus) {
200 270 this.ExportingStart = true;
201 271 this.GetCustomerSummeryReport('1, ' + this.recordCount);
202   - this.ExportingStart = false;
203 272 }
204 273 }
205 274 ExportService(data: any) {
206   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
207   - for (let i = 0; i < data.CustomerSummery.length; i++) {
208   - delete data.CustomerSummery[i][this.global.RemoveColumns[c].toString()];
209   - }
210   - }
  275 + for (let i = 0; i < data.CustomerSummery.length; i++) {
  276 + data.CustomerSummery[i]['StartDate']= this.datePipe.transform(data.CustomerSummery[i]['StartDate'], 'MM/dd/yyyy');
  277 + data.CustomerSummery[i]['EndDate']= this.datePipe.transform(data.CustomerSummery[i]['EndDate'], 'MM/dd/yyyy');
  278 + data.CustomerSummery[i]['LicenseCreationDate']= this.datePipe.transform(data.CustomerSummery[i]['LicenseCreationDate'], 'MM/dd/yyyy');
  279 + }
  280 +
  281 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  282 + this.global.ExportToCSV(data.CustomerSummery, "CustomerSummeryReport-"+reportname);
  283 +
211 284 this._loadingService.HideLoading("global-loading");
212   - this.global.ExportToCSV(data.CustomerSummery, "CustomerSummeryReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
213 285  
214 286 }
215 287 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/discountcodereport.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
3 3 <h4>Discount Code Report</h4>
4 4 </div>
5 5 <div class="col-sm-12">
6 6  
7 7 <div class="container-fluid main-full">
8   - <div class="row">
  8 + <div class="row" style="margin-right:-40px">
9 9 <div class="well no-margin-btm" [formGroup]="DiscountCodeReportForm">
10 10 <div class="col-xs-12" *ngIf="alerts !== ''">
11 11 <div class="alert alert-danger" [innerHTML]="alerts">
... ... @@ -17,10 +17,11 @@
17 17 <div class="row">
18 18 <div class="col-sm-12">
19 19 <div class="form-group marginTop5">
20   - <label for="FromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
  20 + <label for="sFromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
21 21 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
22   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
23   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1">
  22 + <div id="sFromDate" class="input-group input-group-sm input-append date">
  23 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1"
  24 + (bsValueChange)="FromDateChange(dp1)" (change)="FromDateChange(dp1)" placeholder="mm/dd/yyyy">
24 25 <span class="input-group-btn add-on">
25 26 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
26 27 </span>
... ... @@ -32,10 +33,11 @@
32 33  
33 34 <div class="col-sm-12">
34 35 <div class="form-group marginTop5">
35   - <label for="ToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
  36 + <label for="sToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
36 37 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
37   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
38   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2">
  38 + <div id="sToDate" class="input-group input-group-sm input-append date">
  39 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2"
  40 + (bsValueChange)="ToDateChange(dp2)" (change)="ToDateChange(dp2)" placeholder="mm/dd/yyyy">
39 41 <span class="input-group-btn add-on">
40 42 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
41 43 </span>
... ... @@ -89,28 +91,7 @@
89 91 <label class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0 hidden-lg hidden-xs">&nbsp;</label>
90 92 </div>
91 93 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
92   - <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
93   - <!--modal-->
94   - <!--<div class="modal fade bs-example-modal-sm text-left" tabindex="-1" role="dialog" id="mymodal">
95   - <div class="modal-dialog modal-sm" role="document">
96   - <div class="modal-content">
97   - <div class="modal-header annotation-modal-header ui-draggable-handle">
98   - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">ร—</span></button>
99   - <h4 class="modal-title" id="">Alert</h4>
100   - </div>
101   - <div class="modal-body">
102   - <h5>Account number does not exist in the system.</h5>
103   - </div>
104   - <div class="modal-footer">
105   - <div class="row">
106   - <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
107   - </div>
108   - </div>
109   -
110   - </div>
111   - </div>
112   - </div>-->
113   - <!--modal-->
  94 + <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()" [disabled]="!DiscountCodeReportForm.valid || alerts != ''"><i class="fa fa-file"></i> Generate Report</button>
114 95 </div>
115 96 </div>
116 97  
... ... @@ -122,15 +103,15 @@
122 103 </div>
123 104  
124 105 <div class="well">
125   - <table id="fixed_hdr2" class="table-hover ">
  106 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
126 107 <thead>
127 108 <tr>
128   - <th>Discount Code</th>
129   - <th>Percentage</th>
130   - <th>Start Date</th>
131   - <th>End Date</th>
132   - <th>Status</th>
133   - <th>Total License</th>
  109 + <th id="DiscountCode">Discount Code</th>
  110 + <th id="Percentage">Percentage</th>
  111 + <th id="StartDate">Start Date</th>
  112 + <th id="EndDate">End Date</th>
  113 + <th id="DiscountStatus">Status</th>
  114 + <th id="TotalLicenses">Total License</th>
134 115 </tr>
135 116 </thead>
136 117 <tbody>
... ... @@ -141,8 +122,8 @@
141 122 <tr *ngFor="let item of lstDiscountCodeReport">
142 123 <td>{{item.DiscountCode}}</td>
143 124 <td>{{item.Percentage}}%</td>
144   - <td>{{item.StartDate}}</td>
145   - <td>{{item.EndDate}}</td>
  125 + <td>{{item.StartDate | date: 'MM/dd/yyyy'}}</td>
  126 + <td>{{item.EndDate | date: 'MM/dd/yyyy'}}</td>
146 127 <td>{{item.DiscountStatus}}</td>
147 128 <td>{{item.TotalLicenses}}</td>
148 129 </tr>
... ...
400-SOURCECODE/Admin/src/app/components/Reports/discountcodereport.component.ts
... ... @@ -55,6 +55,18 @@ export class DiscountCodeReport implements OnInit {
55 55 recordCount: number;
56 56 pageNo: number;
57 57 pageLength: number;
  58 + actualPageNo: number;
  59 + actualPageLength: number;
  60 + SearchField:any={
  61 + sFromDate:new Date(),
  62 + sToDate:new Date(),
  63 + iDiscountCode:0,
  64 + iAccountNumber:'',
  65 + sortColumn:'StartDate',
  66 + sortOrder:'asc',
  67 + pageNo:1,
  68 + pageLength:10
  69 + };
58 70 // Declare height and width variables
59 71 scrHeight:any;
60 72 scrWidth:any;
... ... @@ -69,6 +81,9 @@ export class DiscountCodeReport implements OnInit {
69 81 {
70 82 this.scrHeight = window.innerHeight-400;
71 83 }
  84 + if(this.scrHeight<=360) this.scrHeight=360;
  85 +
  86 + $(".ft_container").css("height",this.scrHeight);
72 87 }
73 88 constructor(private router: Router, private reportservice: ReportService,
74 89 private manageDiscountCodeService: ManageDiscountCodeService,
... ... @@ -99,25 +114,12 @@ export class DiscountCodeReport implements OnInit {
99 114 width: "100%",
100 115 height: this.scrHeight,
101 116 colModal: [
102   - { width: 200, align: 'center' },
  117 + { width: 300, align: 'center' },
103 118 { width: 230, align: 'center' },
104 119 { width: 250, align: 'Center' },
105 120 { width: 250, align: 'Center' },
106 121 { width: 350, align: 'Center' },
107   - { width: 500, align: 'Center' },
108   - // { width: 130, align: 'Center' },
109   - // { width: 120, align: 'center' },
110   - // { width: 280, align: 'Center' },
111   - // { width: 180, align: 'center' },
112   - // { width: 200, align: 'center' },
113   - // { width: 170, align: 'center' },
114   - // { width: 80, align: 'center' },
115   - // { width: 150, align: 'center' },
116   - // { width: 150, align: 'center' },
117   - // { width: 180, align: 'Center' },
118   - //{ width: 400, align: 'Center' },
119   - //{ width: 150, align: 'center' },
120   - //{ width: 110, align: 'center' },
  122 + { width: 400, align: 'Center' }
121 123 ],
122 124 sort: true
123 125 });
... ... @@ -127,16 +129,54 @@ export class DiscountCodeReport implements OnInit {
127 129 this.recordCount = 0;
128 130 this.pagerComponent = new PagerComponent();
129 131  
130   - if(document.getElementById("fixed_table_rc") != null){
131   - document.getElementById("fixed_table_rc").remove();
132   - var testScript = document.createElement("script");
133   - testScript.setAttribute("id", "fixed_table_rc");
134   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
135   - testScript.setAttribute("type", "text/javascript");
136   - document.body.appendChild(testScript);
137   - }
  132 + var thisObject=this;//class object
  133 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  134 +
  135 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  136 + {
  137 + var fieldName=event.currentTarget.id;
  138 + var sortType=''
  139 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  140 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  141 +
  142 + if (isAscSort) {
  143 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  144 + sortType="desc";
  145 + } else {
  146 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  147 + sortType="asc";
  148 + }
  149 +
  150 + thisObject.SortTableRecords(fieldName,sortType);
  151 +
  152 + }
  153 +
  154 + });
138 155  
139 156 }
  157 +
  158 + FromDateChange(dateValue: any){
  159 + this.alerts = '';
  160 + this.global.compareTwoDates(this.DiscountCodeReportForm.controls['sToDate'].value, dateValue._bsValue);
  161 + if (this.global.ValidationMsg != '') {
  162 + this.alerts = this.global.ValidationMsg;
  163 + }
  164 + }
  165 +
  166 + ToDateChange(dateValue: any){
  167 + this.alerts = '';
  168 + this.global.compareTwoDates(dateValue._bsValue, this.DiscountCodeReportForm.controls['sFromDate'].value);
  169 + if (this.global.ValidationMsg != '') {
  170 + this.alerts = this.global.ValidationMsg;
  171 + }
  172 + }
  173 +
  174 + SortTableRecords(fieldName:string,sortType:string) {
  175 + this.SearchField.sortColumn=fieldName;
  176 + this.SearchField.sortOrder=sortType;
  177 +
  178 + this.GetSubscriptionReportList();
  179 + }
140 180  
141 181 GetDiscountCode() {
142 182 this.reportservice.GetDiscountCodes().subscribe(st => { this.lstDiscountCode = st; }, error => this.error = <any>error);
... ... @@ -155,34 +195,56 @@ export class DiscountCodeReport implements OnInit {
155 195 }
156 196  
157 197 GetDiscountReport(evt: any) {
158   - var tempArr = evt.split(',');
159   - this.pageNo = parseInt(tempArr[0]);
160   - var actulalength=this.pageLength;
  198 + this.actualPageNo = this.pageNo;
  199 + this.actualPageLength =this.pageLength;
  200 +
  201 + var tempArr = evt.split(',');
  202 + this.pageNo = parseInt(tempArr[0]);
161 203 this.pageLength = parseInt(tempArr[1]);
162   - this.alerts = '';
163   - this.global.compareTwoDates(this.DiscountCodeReportForm.controls['sToDate'].value, this.DiscountCodeReportForm.controls['sFromDate'].value);
164   - if (this.global.ValidationMsg != '') {
165   - this.alerts = this.global.ValidationMsg
  204 +
  205 + this.SearchField.pageNo=this.pageNo;
  206 + this.SearchField.pageLength=this.pageLength;
  207 +
  208 + this.GetSubscriptionReportList();
  209 + }
  210 +
  211 + GetSubscriptionReportList() {
  212 + this._loadingService.ShowLoading("global-loading");
  213 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  214 +
  215 + if (this.SearchField.sortOrder=='asc') {
  216 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  217 + } else
  218 + {
  219 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  220 + }
  221 + if (this.ExportingStart) {
  222 + this.reportservice.GetDiscountReport(this.SearchField).subscribe((DiscountCodeReports: DiscountCodeReports[]) => {
  223 + //reset length after csvexport
  224 + this.pageNo = this.actualPageNo;
  225 + this.pageLength=this.actualPageLength;
  226 +
  227 + this.SearchField.pageNo=this.pageNo;
  228 + this.SearchField.pageLength=this.pageLength;
  229 + this.ExportService(DiscountCodeReports); }, error => this.error = <any>error);
166 230 }
167   - if (this.alerts == '') {
168   - this._loadingService.ShowLoading("global-loading");
169   - this.NewSubscription = this.DiscountCodeReportForm.value;
170   - var obj = this.NewSubscription;
171   - if (this.ExportingStart) {
172   - this.reportservice.GetDiscountReport(obj, this.pageNo, this.pageLength).subscribe((DiscountCodeReports: DiscountCodeReports[]) => {
173   - //reset length after csvexport
174   - this.pageLength=actulalength;
175   - this.ExportService(DiscountCodeReports); }, error => this.error = <any>error);
176   - }
177   - else {
178   - this.reportservice.GetDiscountReport(obj, this.pageNo, this.pageLength).subscribe((DiscountCodeReports: DiscountCodeReports[]) => { this.BindFormFields(DiscountCodeReports); }, error => this.error = <any>error);
179   - }
  231 + else {
  232 + this.reportservice.GetDiscountReport(this.SearchField).subscribe((DiscountCodeReports: DiscountCodeReports[]) => { this.BindFormFields(DiscountCodeReports); }, error => this.error = <any>error);
180 233 }
181   - }
182   -
183   - SearchRecords() {
  234 +
184 235 this.ExportingStart = false;
185   - this.GetDiscountReport('1, ' + this.pageLength);
  236 + }
  237 + SearchRecords() {
  238 + this.ExportingStart = false;
  239 + this.pageNo=1;
  240 + this.SearchField.sFromDate=this.DiscountCodeReportForm.controls['sFromDate'].value;
  241 + this.SearchField.sToDate=this.DiscountCodeReportForm.controls['sToDate'].value;
  242 + this.SearchField.iDiscountCode=this.DiscountCodeReportForm.controls['iDiscountCode'].value;
  243 + this.SearchField.iAccountNumber=this.DiscountCodeReportForm.controls['iAccountNumber'].value;
  244 +
  245 + this.SearchField.pageNo=this.pageNo;
  246 +
  247 + this.GetSubscriptionReportList();
186 248 }
187 249  
188 250 BindFormFields(data) {
... ... @@ -205,18 +267,19 @@ export class DiscountCodeReport implements OnInit {
205 267 if (this.buttonStatus) {
206 268 this.ExportingStart = true;
207 269 this.GetDiscountReport('1, ' + this.recordCount);
208   - this.ExportingStart = false;
209 270 }
210 271 }
211 272  
212 273 ExportService(data: any) {
213   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
214   - for (let i = 0; i < data.DiscountReportList.length; i++) {
215   - delete data.DiscountReportList[i][this.global.RemoveColumns[c].toString()];
216   - }
217   - }
218   - this._loadingService.HideLoading("global-loading");
219   - this.global.ExportToCSV(data.DiscountReportList, "DiscountReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
  274 +
  275 + for (let i = 0; i < data.DiscountReportList.length; i++) {
  276 + data.DiscountReportList[i]['StartDate']= this.datePipe.transform(data.DiscountReportList[i]['StartDate'], 'MM/dd/yyyy');
  277 + data.DiscountReportList[i]['EndDate']= this.datePipe.transform(data.DiscountReportList[i]['EndDate'], 'MM/dd/yyyy');
  278 + }
  279 +
  280 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  281 + this.global.ExportToCSV(data.DiscountReportList, "DiscountReport-"+reportname);
220 282  
  283 + this._loadingService.HideLoading("global-loading");
221 284 }
222 285 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/expiringsubscriptionreport.component.html
... ... @@ -3,14 +3,14 @@
3 3 font-size: 12px;
4 4 }
5 5 </style>
6   -<div class="row">
  6 +<div class="row" style="margin-right: auto;">
7 7 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
8 8 <h4>Expiring Subscription Report</h4>
9 9 </div>
10 10 <div class="col-sm-12">
11 11  
12 12 <div class="container-fluid main-full">
13   - <div class="row">
  13 + <div class="row" style="margin-right:-40px">
14 14 <div class="well no-margin-btm">
15 15 <div class="col-xs-12" *ngIf="alerts !== ''">
16 16 <div class="alert alert-danger" [innerHTML]="alerts">
... ... @@ -22,10 +22,11 @@
22 22 <div class="row">
23 23 <div class="col-sm-12">
24 24 <div class="form-group marginTop5">
25   - <label for="FromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
  25 + <label for="sFromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
26 26 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
27   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
28   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1">
  27 + <div id="sFromDate" class="input-group input-group-sm input-append date">
  28 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1"
  29 + (bsValueChange)="FromDateChange(dp1)" (change)="FromDateChange(dp1)" placeholder="mm/dd/yyyy">
29 30 <span class="input-group-btn add-on">
30 31 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
31 32 </span>
... ... @@ -37,10 +38,11 @@
37 38  
38 39 <div class="col-sm-12">
39 40 <div class="form-group marginTop5">
40   - <label for="ToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
  41 + <label for="sToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
41 42 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
42   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
43   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2">
  43 + <div id="sToDate" class="input-group input-group-sm input-append date">
  44 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2"
  45 + (bsValueChange)="ToDateChange(dp2)" (change)="ToDateChange(dp2)" placeholder="mm/dd/yyyy">
44 46 <span class="input-group-btn add-on">
45 47 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
46 48 </span>
... ... @@ -140,28 +142,7 @@
140 142  
141 143 <div class="col-sm-12">
142 144 <div class="form-group marginTop5 text-right">
143   - <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
144   - <!--modal-->
145   - <!--<div class="modal fade bs-example-modal-sm text-left" tabindex="-1" role="dialog" id="mymodal">
146   - <div class="modal-dialog modal-sm" role="document">
147   - <div class="modal-content">
148   - <div class="modal-header annotation-modal-header ui-draggable-handle">
149   - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">ร—</span></button>
150   - <h4 class="modal-title" id="">Alert</h4>
151   - </div>
152   - <div class="modal-body">
153   - <h5>Account number does not exist in the system.</h5>
154   - </div>
155   - <div class="modal-footer">
156   - <div class="row">
157   - <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
158   - </div>
159   - </div>
160   -
161   - </div>
162   - </div>
163   - </div>-->
164   - <!--modal-->
  145 + <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()" [disabled]="!ExpiringSubscriptionReportForm.valid || alerts != ''"><i class="fa fa-file"></i> Generate Report</button>
165 146 </div>
166 147 </div>
167 148  
... ... @@ -173,24 +154,20 @@
173 154 </div>
174 155  
175 156 <div class="well">
176   - <!--<ng2-smart-table [settings]="settings" [source]="source">
177   - <i class="fa fa-spinner fa-spin" style="font-size:24px"></i>
178   - </ng2-smart-table>-->
179   - <table id="fixed_hdr2" class="table-hover ">
  157 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
180 158 <thead>
181 159 <tr>
182   - <th>Account Number</th>
183   - <th>Licensee Name</th>
184   - <th>License Type</th>
185   - <th>Institution Name</th>
186   - <th>Account Type</th>
187   -
188   - <th>Start Date</th>
189   - <th>End Date</th>
190   - <th>Original Entry Date</th>
191   - <th>Subscription Price</th>
192   - <th (click)="sort('TimePeriod')">Time Period</th>
193   - <th>Credit Card Number</th>
  160 + <th id="AccountNumber">Account Number</th>
  161 + <th id="LicenseeName">Licensee Name</th>
  162 + <th id="LicenseType">License Type</th>
  163 + <th id="InstitutionName">Institution Name</th>
  164 + <th id="AccountType">Account Type</th>
  165 + <th id="StartDate">Start Date</th>
  166 + <th id="EndDate">End Date</th>
  167 + <th id="LicenseCreationDate">Original Entry Date</th>
  168 + <th id="SubscriptionPrice">Subscription Price</th>
  169 + <th id="DaysRemaining">Time Period</th>
  170 + <th id="CardNumber">Card Number</th>
194 171 </tr>
195 172 </thead>
196 173 <tbody>
... ... @@ -203,11 +180,10 @@
203 180 <td>{{esr.LicenseeName}}</td>
204 181 <td>{{esr.LicenseType}}</td>
205 182 <td>{{esr.InstitutionName}}</td>
206   - <td>{{esr.AccountType}}</td>
207   -
208   - <td>{{esr.StartDate}}</td>
209   - <td>{{esr.EndDate}}</td>
210   - <td>{{esr.LicenseCreationDate}}</td>
  183 + <td>{{esr.AccountType}}</td>
  184 + <td>{{esr.StartDate | date: 'MM/dd/yyyy'}}</td>
  185 + <td>{{esr.EndDate | date: 'MM/dd/yyyy'}}</td>
  186 + <td>{{esr.LicenseCreationDate | date: 'MM/dd/yyyy'}}</td>
211 187 <td>{{esr.SubscriptionPrice}}</td>
212 188 <td>{{esr.DaysRemaining}}</td>
213 189 <td>{{esr.CardNumber}}</td>
... ...
400-SOURCECODE/Admin/src/app/components/Reports/expiringsubscriptionreport.component.ts
... ... @@ -58,10 +58,25 @@ export class ExpiringSubscriptionReport implements OnInit, AfterViewChecked {
58 58 recordCount: number;
59 59 pageNo: number;
60 60 pageLength: number;
61   - key: string = 'AccountNumber'; //set default
62   - reverse: boolean = false;
63   -
64 61 ExpiringSubscription = new ExpiringSubscriptionReports();
  62 + actualPageNo: number;
  63 + actualPageLength: number;
  64 + SearchField:any={
  65 + sFromDate:new Date(),
  66 + sToDate:new Date(),
  67 + iLicenseTypeId:0,
  68 + iAccountTypeId:0,
  69 + sZip:'',
  70 + iStateId:0,
  71 + iCountryId:0,
  72 + iStartPrice:0,
  73 + iEndPrice:-1,
  74 + sortColumn:'AccountNumber',
  75 + sortOrder:'asc',
  76 + pageNo:1,
  77 + pageLength:10
  78 + };
  79 +
65 80 // Declare height and width variables
66 81 scrHeight:any;
67 82 scrWidth:any;
... ... @@ -76,6 +91,9 @@ export class ExpiringSubscriptionReport implements OnInit, AfterViewChecked {
76 91 {
77 92 this.scrHeight = window.innerHeight-480;
78 93 }
  94 + if(this.scrHeight<=360) this.scrHeight=360;
  95 +
  96 + $(".ft_container").css("height",this.scrHeight);
79 97  
80 98 }
81 99 constructor(private router: Router, private reportservice: ReportService,
... ... @@ -87,16 +105,15 @@ export class ExpiringSubscriptionReport implements OnInit, AfterViewChecked {
87 105 this.ExportingStart = false;
88 106 this.bsConfig = Object.assign({}, { containerClass: 'theme-dark-blue' });
89 107 this.NoRecord = this.global.NoRecords;
90   - let ExpiringSubscriptionReport = new ExpiringSubscriptionReports();
91 108 this.previousdate.setDate(this.previousdate.getDate());
92 109 this.ExpiringSubscriptionReportForm = this.fb.group({
93   - sFromDate: [this.previousdate],
94   - sToDate: [this.date],
  110 + sFromDate: [this.previousdate,[Validators.required]],
  111 + sToDate: [this.date,[Validators.required]],
95 112 sZip: [''],
96 113 iLicenseTypeId: [0],
97 114 iAccountTypeId: [0],
98 115 iStateId: [0],
99   - iStartPrice: [0.00],
  116 + iStartPrice: [''],
100 117 iEndPrice: [''],
101 118 iCountryId: [0]
102 119 });
... ... @@ -116,38 +133,71 @@ export class ExpiringSubscriptionReport implements OnInit, AfterViewChecked {
116 133 width: "100%",
117 134 height: this.scrHeight,
118 135 colModal: [
119   - { width: 160, align: 'center' },
  136 + { width: 150, align: 'center' },
120 137 { width: 180, align: 'center' },
121 138 { width: 150, align: 'Center' },
122 139 { width: 250, align: 'Center' },
123 140 { width: 160, align: 'Center' },
124 141 { width: 130, align: 'Center' },
125 142 { width: 130, align: 'Center' },
126   - { width: 150, align: 'center' },
  143 + { width: 160, align: 'center' },
127 144 { width: 160, align: 'Center' },
128 145 { width: 150, align: 'center' },
129   - { width: 160, align: 'center' },
130   - // { width: 170, align: 'center' },
131   - // { width: 80, align: 'center' },
132   - // { width: 150, align: 'center' },
133   - // { width: 150, align: 'center' },
134   - // { width: 180, align: 'Center' },
135   - //{ width: 400, align: 'Center' },
136   - //{ width: 150, align: 'center' },
137   - //{ width: 110, align: 'center' },
  146 + { width: 140, align: 'center' },
  147 +
138 148 ],
139 149 sort: true
140 150 });
141 151  
142   - if(document.getElementById("fixed_table_rc") != null){
143   - document.getElementById("fixed_table_rc").remove();
144   - var testScript = document.createElement("script");
145   - testScript.setAttribute("id", "fixed_table_rc");
146   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
147   - testScript.setAttribute("type", "text/javascript");
148   - document.body.appendChild(testScript);
149   - }
  152 + var thisObject=this;//class object
  153 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  154 +
  155 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  156 + {
  157 + var fieldName=event.currentTarget.id;
  158 + var sortType=''
  159 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  160 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  161 +
  162 + if (isAscSort) {
  163 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  164 + sortType="desc";
  165 + } else {
  166 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  167 + sortType="asc";
  168 + }
  169 +
  170 + thisObject.SortTableRecords(fieldName,sortType);
  171 +
  172 + }
  173 +
  174 + });
  175 +
150 176 }
  177 +
  178 + FromDateChange(dateValue: any){
  179 + this.alerts = '';
  180 + this.global.compareTwoDates(this.ExpiringSubscriptionReportForm.controls['sToDate'].value, dateValue._bsValue);
  181 + if (this.global.ValidationMsg != '') {
  182 + this.alerts = this.global.ValidationMsg;
  183 + }
  184 + }
  185 +
  186 + ToDateChange(dateValue: any){
  187 + this.alerts = '';
  188 + this.global.compareTwoDates(dateValue._bsValue, this.ExpiringSubscriptionReportForm.controls['sFromDate'].value);
  189 + if (this.global.ValidationMsg != '') {
  190 + this.alerts = this.global.ValidationMsg;
  191 + }
  192 + }
  193 +
  194 + SortTableRecords(fieldName:string,sortType:string) {
  195 + this.SearchField.sortColumn=fieldName;
  196 + this.SearchField.sortOrder=sortType;
  197 +
  198 + this.GetExpiringSubscriptionReportList();
  199 + }
  200 +
151 201 ngAfterViewChecked() {
152 202 $('#fixed_hdr2 thead').css('width', $('#fixed_hdr2 tbody tr:eq(0)').width());
153 203 }
... ... @@ -168,58 +218,84 @@ export class ExpiringSubscriptionReport implements OnInit, AfterViewChecked {
168 218 }
169 219  
170 220 GetExpiringSubscriptionReport(evt: any) {
171   - var tempArr = evt.split(',');
172   - this.pageNo = parseInt(tempArr[0]);
173   - var actulalength=this.pageLength;
  221 + this.actualPageNo = this.pageNo;
  222 + this.actualPageLength =this.pageLength;
  223 +
  224 + var tempArr = evt.split(',');
  225 + this.pageNo = parseInt(tempArr[0]);
174 226 this.pageLength = parseInt(tempArr[1]);
175   - this.alerts = '';
176   - this.global.compareTwoDates(this.ExpiringSubscriptionReportForm.controls['sToDate'].value, this.ExpiringSubscriptionReportForm.controls['sFromDate'].value);
177   - if (this.global.ValidationMsg != '') {
178   - this.alerts = this.global.ValidationMsg
179   - }
180   - if (this.alerts == '') {
181   - this._loadingService.ShowLoading("global-loading");
182   - this.ExpiringSubscription = this.ExpiringSubscriptionReportForm.value;
183   - var obj = this.ExpiringSubscription;
184   - if (this.ExportingStart) {
185   - this.reportservice.GetExpiringSubscriptionReport(obj, this.pageNo, this.pageLength).subscribe((ExpiringSubscriptionReports: ExpiringSubscriptionReports[]) => {
186   - //reset length after csvexport
187   - this.pageLength=actulalength;
188   - this.ExportService(ExpiringSubscriptionReports); }, error => this.error = <any>error);
189   - }
190   - else {
191   - this.reportservice.GetExpiringSubscriptionReport(obj, this.pageNo, this.pageLength).subscribe((ExpiringSubscriptionReports: ExpiringSubscriptionReports[]) => { this.BindFormFields(ExpiringSubscriptionReports); }, error => this.error = <any>error);
192   - }
193   -
194   - }
195   -
  227 +
  228 + this.SearchField.pageNo=this.pageNo;
  229 + this.SearchField.pageLength=this.pageLength;
  230 +
  231 + this.GetExpiringSubscriptionReportList();
196 232 }
197   - SearchRecords() {
  233 +
  234 + GetExpiringSubscriptionReportList() {
  235 + this._loadingService.ShowLoading("global-loading");
  236 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  237 +
  238 + if (this.SearchField.sortOrder=='asc') {
  239 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  240 + } else
  241 + {
  242 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  243 + }
  244 + if (this.ExportingStart) {
  245 + this.reportservice.GetExpiringSubscriptionReport(this.SearchField).subscribe((ExpiringSubscriptionReports: ExpiringSubscriptionReports[]) => {
  246 + //reset length after csvexport
  247 + this.pageNo = this.actualPageNo;
  248 + this.pageLength=this.actualPageLength;
  249 +
  250 + this.SearchField.pageNo=this.pageNo;
  251 + this.SearchField.pageLength=this.pageLength;
  252 + this.ExportService(ExpiringSubscriptionReports); }, error => this.error = <any>error);
  253 + }
  254 + else {
  255 + this.reportservice.GetExpiringSubscriptionReport(this.SearchField).subscribe((ExpiringSubscriptionReports: ExpiringSubscriptionReports[]) => { this.BindFormFields(ExpiringSubscriptionReports); }, error => this.error = <any>error);
  256 + }
  257 +
198 258 this.ExportingStart = false;
199   - this.GetExpiringSubscriptionReport('1, ' + this.pageLength);
  259 + }
  260 +
  261 +
  262 + SearchRecords() {
  263 + this.ExportingStart = false;
  264 + this.pageNo=1;
  265 + this.SearchField.sFromDate=this.ExpiringSubscriptionReportForm.controls['sFromDate'].value;
  266 + this.SearchField.sToDate=this.ExpiringSubscriptionReportForm.controls['sToDate'].value;
  267 + this.SearchField.iLicenseTypeId=this.ExpiringSubscriptionReportForm.controls['iLicenseTypeId'].value;
  268 + this.SearchField.iAccountTypeId=this.ExpiringSubscriptionReportForm.controls['iAccountTypeId'].value;
  269 + this.SearchField.sZip=this.ExpiringSubscriptionReportForm.controls['sZip'].value;
  270 + this.SearchField.iStateId=this.ExpiringSubscriptionReportForm.controls['iStateId'].value;
  271 + this.SearchField.iCountryId=this.ExpiringSubscriptionReportForm.controls['iCountryId'].value;
  272 + this.SearchField.iStartPrice=this.ExpiringSubscriptionReportForm.controls['iStartPrice'].value;
  273 + this.SearchField.iEndPrice=this.ExpiringSubscriptionReportForm.controls['iEndPrice'].value;
  274 +
  275 + this.SearchField.pageNo=this.pageNo;
  276 +
  277 + this.GetExpiringSubscriptionReportList();
  278 +
200 279 }
  280 +
201 281 ExportEvent() {
202 282 if (this.buttonStatus) {
203 283 this.ExportingStart = true;
204   - this.GetExpiringSubscriptionReport('1, ' + this.recordCount);
205   - this.ExportingStart = false;
  284 + this.GetExpiringSubscriptionReport('1, ' + this.recordCount);
206 285 }
207 286 }
208 287 ExportService(data: any) {
209   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
210   - for (let i = 0; i < data.ExpiringSubscription.length; i++) {
211   - delete data.ExpiringSubscription[i][this.global.RemoveColumns[c].toString()];
212   - }
213   - }
  288 + for (let i = 0; i < data.ExpiringSubscription.length; i++) {
  289 + data.ExpiringSubscription[i]['StartDate']= this.datePipe.transform(data.ExpiringSubscription[i]['StartDate'], 'MM/dd/yyyy');
  290 + data.ExpiringSubscription[i]['EndDate']= this.datePipe.transform(data.ExpiringSubscription[i]['EndDate'], 'MM/dd/yyyy');
  291 + data.ExpiringSubscription[i]['LicenseCreationDate']= this.datePipe.transform(data.ExpiringSubscription[i]['LicenseCreationDate'], 'MM/dd/yyyy');
  292 + }
  293 +
  294 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  295 + this.global.ExportToCSV(data.ExpiringSubscription, "ExpiringSubscriptionReport-"+reportname);
  296 +
214 297 this._loadingService.HideLoading("global-loading");
215   - this.global.ExportToCSV(data.ExpiringSubscription, "ExpiringSubscriptionReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
216   -
217   - }
218   -
219   - sort(key) {
220   - debugger;;
221   - this.key = key;
222   - this.reverse = !this.reverse;
  298 +
223 299 }
224 300  
225 301 BindFormFields(datas) {
... ...
400-SOURCECODE/Admin/src/app/components/Reports/imageexportreport.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
3 3 <h4>Image Export Report</h4>
4 4 </div>
5 5 <div class="col-sm-12">
6 6  
7 7 <div class="container-fluid main-full">
8   - <div class="row">
  8 + <div class="row" style="margin-right:-40px">
9 9 <div class="well no-margin-btm" >
10 10 <div class="col-xs-12" *ngIf="alerts !== ''">
11 11 <div class="alert alert-danger" [innerHTML]="alerts">
... ... @@ -17,11 +17,11 @@
17 17 <div class="row">
18 18 <div class="col-sm-12">
19 19 <div class="form-group marginTop5">
20   - <label for="FromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
  20 + <label for="sFromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
21 21 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
22   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
23   - <input type="text" class="form-control" formControlName="sFromDate" #dp1="bsDatepicker"
24   - bsDatepicker [(bsValue)]="bsValue1" [bsConfig]="bsConfig">
  22 + <div id="sFromDate" class="input-group input-group-sm input-append date">
  23 + <input type="text" class="form-control" formControlName="sFromDate" #dp1="bsDatepicker" placeholder="mm/dd/yyyy"
  24 + bsDatepicker [(bsValue)]="bsValue1" [bsConfig]="bsConfig" (bsValueChange)="FromDateChange(dp1)" (change)="FromDateChange(dp1)">
25 25 <span class="input-group-btn add-on">
26 26 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
27 27 </span>
... ... @@ -37,11 +37,11 @@
37 37 <div class="row">
38 38 <div class="col-sm-12">
39 39 <div class="form-group marginTop5">
40   - <label for="ToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
  40 + <label for="sToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
41 41 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
42   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
43   - <input type="text" class="form-control" formControlName="sToDate" #dp2="bsDatepicker"
44   - bsDatepicker [(bsValue)]="bsValue2" [bsConfig]="bsConfig">
  42 + <div id="sToDate" class="input-group input-group-sm input-append date">
  43 + <input type="text" class="form-control" formControlName="sToDate" #dp2="bsDatepicker" placeholder="mm/dd/yyyy"
  44 + bsDatepicker [(bsValue)]="bsValue2" [bsConfig]="bsConfig" (bsValueChange)="ToDateChange(dp2)" (change)="ToDateChange(dp2)">
45 45 <span class="input-group-btn add-on">
46 46 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
47 47 </span>
... ... @@ -74,31 +74,29 @@
74 74 <label class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0 hidden-lg hidden-xs">&nbsp;</label>
75 75 </div>
76 76 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
77   - <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
  77 + <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()" [disabled]="!ImageExportReportForm.valid || alerts != ''"><i class="fa fa-file"></i> Generate Report</button>
78 78 </div>
79 79 </div>
80 80 </div>
81 81 </div>
82 82  
83   -
84   -
85 83 </div><br />
86 84  
87 85 </div>
88 86  
89 87 <div class="well">
90   - <table id="fixed_hdr2" class="table-hover ">
  88 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
91 89 <thead>
92 90 <tr>
93   - <th>Title</th>
94   - <th>Image Name</th>
95   - <th>Original Name</th>
96   - <th>Module</th>
97   - <th>Exported Date</th>
98   - <th>Account Number</th>
99   - <th>User Name</th>
100   - <th>Export Limit</th>
101   - <th>Number of export image</th>
  91 + <th id="Title">Title</th>
  92 + <th id="ImageName">Image Name</th>
  93 + <th id="OriginalFileName">Original Name</th>
  94 + <th id="ModuleName">Module</th>
  95 + <th id="ExportedDate">Exported Date</th>
  96 + <th id="AccountNumber">Account Number</th>
  97 + <th id="UserName">User Name</th>
  98 + <th id="ExportLimit">Export Limit</th>
  99 + <th id="imageCount">No. of export image</th>
102 100 </tr>
103 101 </thead>
104 102 <tbody>
... ...
400-SOURCECODE/Admin/src/app/components/Reports/imageexportreport.component.ts
... ... @@ -32,7 +32,6 @@ export class ImageExportReport implements OnInit {
32 32 limit: number;
33 33 page: number = 1;
34 34 error;
35   - imageexportreport = new ImageExportReports();
36 35 modalAlerts: string;
37 36 divClass: string = '';
38 37 topPos: string = '2000px';
... ... @@ -56,6 +55,17 @@ export class ImageExportReport implements OnInit {
56 55 // Declare height and width variables
57 56 scrHeight:any;
58 57 scrWidth:any;
  58 + actualPageNo: number;
  59 + actualPageLength: number;
  60 + SearchField:any={
  61 + sFromDate:new Date(),
  62 + sToDate:new Date(),
  63 + sAccountNumber:'',
  64 + sortColumn:'LicenseId',
  65 + sortOrder:'asc',
  66 + pageNo:1,
  67 + pageLength:10
  68 + };
59 69 @HostListener('window:resize', ['$event'])
60 70 getScreenSize(event?) {
61 71  
... ... @@ -67,6 +77,9 @@ export class ImageExportReport implements OnInit {
67 77 {
68 78 this.scrHeight = window.innerHeight-385;
69 79 }
  80 + if(this.scrHeight<=360) this.scrHeight=360;
  81 +
  82 + $(".ft_container").css("height",this.scrHeight);
70 83 }
71 84  
72 85 constructor(private router: Router, private reportservice: ReportService, private fb: FormBuilder,
... ... @@ -78,11 +91,10 @@ export class ImageExportReport implements OnInit {
78 91 this.ExportingStart = false;
79 92 this.bsConfig = Object.assign({}, { containerClass: 'theme-dark-blue' });
80 93 this.NoRecord = this.global.NoRecords;
81   - let imageexportreport = new ImageExportReports();
82 94 this.previousdate.setDate(this.previousdate.getDate());
83 95 this.ImageExportReportForm = this.fb.group({
84   - sFromDate: [this.previousdate],
85   - sToDate: [this.date],
  96 + sFromDate: [this.previousdate,[Validators.required]],
  97 + sToDate: [this.date,[Validators.required]],
86 98 sAccountNumber: ['']
87 99 });
88 100 this.alerts = '';
... ... @@ -109,53 +121,107 @@ export class ImageExportReport implements OnInit {
109 121 this.NoRecord = this.global.NoRecords;
110 122 this.recordCount = 0;
111 123 this.pagerComponent = new PagerComponent();
112   -
113   - if(document.getElementById("fixed_table_rc") != null){
114   - document.getElementById("fixed_table_rc").remove();
115   - var testScript = document.createElement("script");
116   - testScript.setAttribute("id", "fixed_table_rc");
117   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
118   - testScript.setAttribute("type", "text/javascript");
119   - document.body.appendChild(testScript);
120   - }
  124 +
  125 + var thisObject=this;//class object
  126 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  127 +
  128 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  129 + {
  130 + var fieldName=event.currentTarget.id;
  131 + var sortType=''
  132 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  133 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  134 +
  135 + if (isAscSort) {
  136 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  137 + sortType="desc";
  138 + } else {
  139 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  140 + sortType="asc";
  141 + }
  142 +
  143 + thisObject.SortTableRecords(fieldName,sortType);
  144 +
  145 + }
  146 +
  147 + });
121 148 }
122 149  
  150 +
  151 + FromDateChange(dateValue: any){
  152 + this.alerts = '';
  153 + this.global.compareTwoDates(this.ImageExportReportForm.controls['sToDate'].value, dateValue._bsValue);
  154 + if (this.global.ValidationMsg != '') {
  155 + this.alerts = this.global.ValidationMsg;
  156 + }
  157 + }
  158 + ToDateChange(dateValue: any){
  159 + this.alerts = '';
  160 + this.global.compareTwoDates(dateValue._bsValue, this.ImageExportReportForm.controls['sFromDate'].value);
  161 + if (this.global.ValidationMsg != '') {
  162 + this.alerts = this.global.ValidationMsg;
  163 + }
  164 + }
  165 +
  166 +
  167 + SortTableRecords(fieldName:string,sortType:string) {
  168 + this.SearchField.sortColumn=fieldName;
  169 + this.SearchField.sortOrder=sortType;
  170 +
  171 + this.GetImageExportReportList();
  172 + }
  173 +
123 174 GetImageExportReport(evt: any) {
124   - var tempArr = evt.split(',');
  175 + this.actualPageNo = this.pageNo;
  176 + this.actualPageLength =this.pageLength;
  177 +
  178 + var tempArr = evt.split(',');
125 179 this.pageNo = parseInt(tempArr[0]);
126   - var actulalength=this.pageLength;
127 180 this.pageLength = parseInt(tempArr[1]);
128   - this.alerts = '';
129   - this.global.compareTwoDates(this.ImageExportReportForm.controls['sToDate'].value, this.ImageExportReportForm.controls['sFromDate'].value);
130   - if (this.global.ValidationMsg != '') {
131   - this.alerts = this.global.ValidationMsg
132   - }
133   - if (this.alerts == '') {
134   - this._loadingService.ShowLoading("global-loading");
135   - this.imageexportreport = this.ImageExportReportForm.value;
136   - var obj = this.imageexportreport;
137   - if (this.ExportingStart) {
138   - this.reportservice.GetImageExportReport(obj, this.pageNo, this.pageLength).subscribe((ImageExportReports: ImageExportReports[]) => {
139   - //reset length after csvexport
140   - this.pageLength=actulalength;
141   - this.ExportService(ImageExportReports); }, error => this.error = <any>error);
142   - }
143   - else {
144   - this.reportservice.GetImageExportReport(obj, this.pageNo, this.pageLength).subscribe((ImageExportReports: ImageExportReports[]) => { this.BindFormFields(ImageExportReports); }, error => this.error = <any>error);
145   - }
146   - }
  181 +
  182 + this.SearchField.pageNo=this.pageNo;
  183 + this.SearchField.pageLength=this.pageLength;
  184 +
  185 + this.GetImageExportReportList();
  186 +
  187 + }
  188 +
  189 + GetImageExportReportList() {
  190 + this._loadingService.ShowLoading("global-loading");
  191 +
  192 + if (this.ExportingStart) {
  193 + this.reportservice.GetImageExportReport(this.SearchField).subscribe((ImageExportReports: ImageExportReports[]) => {
  194 + //reset length after csvexport
  195 + this.pageNo = this.actualPageNo;
  196 + this.pageLength=this.actualPageLength;
  197 +
  198 + this.SearchField.pageNo=this.pageNo;
  199 + this.SearchField.pageLength=this.pageLength;
  200 +
  201 + this.ExportService(ImageExportReports); }, error => this.error = <any>error);
  202 + }
  203 + else {
  204 + this.reportservice.GetImageExportReport(this.SearchField).subscribe((ImageExportReports: ImageExportReports[]) => { this.BindFormFields(ImageExportReports); }, error => this.error = <any>error);
  205 + }
  206 +
  207 + this.ExportingStart = false;
147 208 }
148 209  
  210 +
149 211 SearchRecords() {
150   - this.ExportingStart = false;
151   - this.GetImageExportReport('1, ' + this.pageLength);
  212 + this.ExportingStart = false;
  213 + this.pageNo=1;
  214 + this.SearchField.sFromDate=this.ImageExportReportForm.controls['sFromDate'].value;
  215 + this.SearchField.sToDate=this.ImageExportReportForm.controls['sToDate'].value;
  216 + this.SearchField.sAccountNumber=this.ImageExportReportForm.controls['sAccountNumber'].value;
  217 + this.SearchField.pageNo=this.pageNo;
  218 +
  219 + this.GetImageExportReportList();
152 220 }
153 221  
154 222 BindFormFields(data) {
155 223 this.recordCount = data.RecordCount;
156   - this.lstImageExportReport = data.ImageExportList;
157   - //this.numberOfImageExportReport = this.lstImageExportReport.length;
158   - //this.limit = this.lstImageExportReport.length;
  224 + this.lstImageExportReport = data.ImageExportList;
159 225 if (this.lstImageExportReport.length > 0) {
160 226 this.NoRecord = '';
161 227 this.buttonStatus = true;
... ... @@ -171,20 +237,20 @@ export class ImageExportReport implements OnInit {
171 237 ExportEvent() {
172 238 if (this.buttonStatus) {
173 239 this.ExportingStart = true;
174   - this.GetImageExportReport('1, ' + this.recordCount);
175   - this.ExportingStart = false;
  240 + this.GetImageExportReport('1, ' + this.recordCount);
176 241 }
177 242 }
178 243  
179   - ExportService(data: any) {
180   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
181   - for (let i = 0; i < data.ImageExportList.length; i++) {
182   - delete data.ImageExportList[i][this.global.RemoveColumns[c].toString()];
183   - }
184   - }
185   - this._loadingService.HideLoading("global-loading");
186   - this.global.ExportToCSV(data.ImageExportList, "ImageExportReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
187   -
  244 + ExportService(data: any) {
  245 + for (let i = 0; i < data.ImageExportList.length; i++) {
  246 + data.ImageExportList[i]['ExportedDate']= this.datePipe.transform(data.ImageExportList[i]['ExportedDate'], 'MM/dd/yyyy');
  247 + }
  248 +
  249 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  250 + this.global.ExportToCSV(data.ImageExportList, "ImageExportReport-"+reportname);
  251 +
  252 + this._loadingService.HideLoading("global-loading");
  253 +
188 254 }
189 255  
190 256 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/netadsubscriptionreport.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
3 3 <h4>Net AD Subscription Report</h4>
4 4 </div>
5 5 <div class="col-sm-12">
6 6  
7 7 <div class="container-fluid main-full">
8   - <div class="row">
  8 + <div class="row" style="margin-right:-40px">
9 9 <div class="well no-margin-btm">
10 10 <div class="col-xs-12" *ngIf="alerts !== ''">
11 11 <div class="alert alert-danger" [innerHTML]="alerts">
... ... @@ -16,10 +16,11 @@
16 16 <div class="row">
17 17 <div class="col-sm-12">
18 18 <div class="form-group marginTop5">
19   - <label for="FromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
  19 + <label for="sFromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
20 20 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
21   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
22   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1">
  21 + <div id="sFromDate" class="input-group input-group-sm input-append date">
  22 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1"
  23 + (bsValueChange)="FromDateChange(dp1)" (change)="FromDateChange(dp1)" placeholder="mm/dd/yyyy">
23 24 <span class="input-group-btn add-on">
24 25 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
25 26 </span>
... ... @@ -31,10 +32,11 @@
31 32  
32 33 <div class="col-sm-12">
33 34 <div class="form-group marginTop5">
34   - <label for="ToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
  35 + <label for="sToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
35 36 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
36   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
37   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2">
  37 + <div id="sToDate" class="input-group input-group-sm input-append date">
  38 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2"
  39 + (bsValueChange)="ToDateChange(dp2)" (change)="ToDateChange(dp2)" placeholder="mm/dd/yyyy">
38 40 <span class="input-group-btn add-on">
39 41 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
40 42 </span>
... ... @@ -83,7 +85,7 @@
83 85  
84 86 <div class="col-sm-12">
85 87 <div class="form-group marginTop5 text-right">
86   - <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
  88 + <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()" [disabled]="!NetAdSubscriptionReportForm.valid || alerts != ''"><i class="fa fa-file"></i> Generate Report</button>
87 89 </div>
88 90 </div>
89 91 </div>
... ... @@ -93,17 +95,17 @@
93 95 </div>
94 96  
95 97 <div class="well">
96   - <table id="fixed_hdr2" class="table-hover ">
  98 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
97 99 <thead>
98 100 <tr>
99   - <th>License Type</th>
100   - <th>Account Type</th>
101   - <th>Institution Name</th>
102   - <th>Original Entry Date</th>
103   - <th>Total Active Subscriptions</th>
104   - <th>Total Renew Subscriptions</th>
105   - <th>No. of Cancelled Subscription</th>
106   - <th>Net Ads</th>
  101 + <th id="LicenseType">License Type</th>
  102 + <th id="AccountType">Account Type</th>
  103 + <th id="InstitutionName">Institution Name</th>
  104 + <th id="LicenseCreationDate">Original Entry Date</th>
  105 + <th id="ActiveSubscription">Total Active Subscriptions</th>
  106 + <th id="RenewSubscription">Total Renew Subscriptions</th>
  107 + <th id="InActiveSubscription">No. of Cancelled Subscription</th>
  108 + <th id="NetAdSubscription">Net Ads</th>
107 109 </tr>
108 110 </thead>
109 111 <tbody>
... ... @@ -114,7 +116,7 @@
114 116 <td>{{item.LicenseType}}</td>
115 117 <td>{{item.AccountType}}</td>
116 118 <td>{{item.InstitutionName}}</td>
117   - <td>{{item.LicenseCreationDate=='01/01/9999'?'':item.LicenseCreationDate| date: 'MM/dd/yyyy'}}</td>
  119 + <td>{{item.LicenseCreationDate| date: 'MM/dd/yyyy'}}</td>
118 120 <td>{{item.ActiveSubscription}}</td>
119 121 <td>{{item.RenewSubscription}}</td>
120 122 <td>{{item.InActiveSubscription}}</td>
... ...
400-SOURCECODE/Admin/src/app/components/Reports/netadsubscriptionreport.component.ts
... ... @@ -54,6 +54,19 @@ export class NetAdSubscriptionReport implements OnInit {
54 54 recordCount: number;
55 55 pageNo: number;
56 56 pageLength: number;
  57 + actualPageNo: number;
  58 + actualPageLength: number;
  59 + SearchField:any={
  60 + sFromDate:new Date(),
  61 + sToDate:new Date(),
  62 + iLicenseTypeId:0,
  63 + iStartPrice:0,
  64 + iEndPrice:-1,
  65 + sortColumn:'LicenseCreationDate',
  66 + sortOrder:'asc',
  67 + pageNo:1,
  68 + pageLength:10
  69 + };
57 70 // Declare height and width variables
58 71 scrHeight:any;
59 72 scrWidth:any;
... ... @@ -68,6 +81,9 @@ export class NetAdSubscriptionReport implements OnInit {
68 81 {
69 82 this.scrHeight = window.innerHeight-405;
70 83 }
  84 + if(this.scrHeight<=360) this.scrHeight=360;
  85 +
  86 + $(".ft_container").css("height",this.scrHeight);
71 87 }
72 88 constructor(private router: Router, private reportservice: ReportService, private fb: FormBuilder,
73 89 private modalService: BsModalService, public global: GlobalService,
... ... @@ -84,7 +100,7 @@ export class NetAdSubscriptionReport implements OnInit {
84 100 sFromDate: [this.previousdate],
85 101 sToDate: [this.date],
86 102 iLicenseTypeId: [0],
87   - iStartPrice: [0],
  103 + iStartPrice: [''],
88 104 iEndPrice: [''],
89 105 });
90 106 this.alerts = '';
... ... @@ -101,67 +117,121 @@ export class NetAdSubscriptionReport implements OnInit {
101 117 colModal: [
102 118 { width: 180, align: 'center' },
103 119 { width: 230, align: 'center' },
104   - { width: 250, align: 'Center' },
105   - { width: 150, align: 'Center' },
106   - { width: 350, align: 'Center' },
  120 + { width: 300, align: 'Center' },
  121 + { width: 200, align: 'Center' },
  122 + { width: 300, align: 'Center' },
107 123 { width: 200, align: 'Center' },
108 124 { width: 250, align: 'Center' },
109   - { width: 120, align: 'center' },
110   - // { width: 280, align: 'Center' },
111   - // { width: 180, align: 'center' },
112   - // { width: 200, align: 'center' },
113   - // { width: 170, align: 'center' },
114   - // { width: 80, align: 'center' },
115   - // { width: 150, align: 'center' },
116   - // { width: 150, align: 'center' },
117   - // { width: 180, align: 'Center' },
  125 + { width: 130, align: 'center' }
118 126 ],
119 127 sort: true
120 128 });
121   - if(document.getElementById("fixed_table_rc") != null){
122   - document.getElementById("fixed_table_rc").remove();
123   - var testScript = document.createElement("script");
124   - testScript.setAttribute("id", "fixed_table_rc");
125   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
126   - testScript.setAttribute("type", "text/javascript");
127   - document.body.appendChild(testScript);
128   - }
  129 +
  130 + var thisObject=this;//class object
  131 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  132 +
  133 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  134 + {
  135 + var fieldName=event.currentTarget.id;
  136 + var sortType=''
  137 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  138 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  139 +
  140 + if (isAscSort) {
  141 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  142 + sortType="desc";
  143 + } else {
  144 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  145 + sortType="asc";
  146 + }
  147 +
  148 + thisObject.SortTableRecords(fieldName,sortType);
  149 +
  150 + }
  151 +
  152 + });
129 153 }
  154 +
  155 + FromDateChange(dateValue: any){
  156 + this.alerts = '';
  157 + this.global.compareTwoDates(this.NetAdSubscriptionReportForm.controls['sToDate'].value, dateValue._bsValue);
  158 + if (this.global.ValidationMsg != '') {
  159 + this.alerts = this.global.ValidationMsg;
  160 + }
  161 + }
  162 +
  163 + ToDateChange(dateValue: any){
  164 + this.alerts = '';
  165 + this.global.compareTwoDates(dateValue._bsValue, this.NetAdSubscriptionReportForm.controls['sFromDate'].value);
  166 + if (this.global.ValidationMsg != '') {
  167 + this.alerts = this.global.ValidationMsg;
  168 + }
  169 + }
  170 +
  171 + SortTableRecords(fieldName:string,sortType:string) {
  172 + this.SearchField.sortColumn=fieldName;
  173 + this.SearchField.sortOrder=sortType;
  174 +
  175 + this.GetNetAdSummaryReportList();
  176 + }
130 177  
131 178 GetLicenceType() {
132 179 this.reportservice.GetLicenceType().subscribe(st => { this.lstLicenceType = st; }, error => this.error = <any>error);
133 180 }
134   -
135   - GetNetAdSummaryReport(evt: any) {
136   - this.alerts = '';
137   - this.global.compareTwoDates(this.NetAdSubscriptionReportForm.controls['sToDate'].value, this.NetAdSubscriptionReportForm.controls['sFromDate'].value);
138   - if (this.global.ValidationMsg != '') {
139   - this.alerts = this.global.ValidationMsg
140   - }
141   - if (this.alerts == '') {
142   - this._loadingService.ShowLoading("global-loading");
143   - var tempArr = evt.split(',');
144   - this.pageNo = parseInt(tempArr[0]);
145   - var actulalength=this.pageLength;
146   - this.pageLength = parseInt(tempArr[1]);
147   - this._loadingService.ShowLoading("global-loading");
148   - this.NetAdSubscriptionReport = this.NetAdSubscriptionReportForm.value;
149   - var obj = this.NetAdSubscriptionReport;
150   - if (this.ExportingStart) {
151   - this.reportservice.GetNetAdSummaryReport(obj, this.pageNo, this.pageLength).subscribe((NetAdSubscriptionReports: NetAdSubscriptionReports[]) => {
152   - //reset length after csvexport
153   - this.pageLength=actulalength;
154   - this.ExportService(NetAdSubscriptionReports); }, error => this.error = <any>error);
155   - }
156   - else {
157   - this.reportservice.GetNetAdSummaryReport(obj, this.pageNo, this.pageLength).subscribe((NetAdSubscriptionReports: NetAdSubscriptionReports[]) => { this.BindFormFields(NetAdSubscriptionReports); }, error => this.error = <any>error);
158   - }
159   - }
  181 +
  182 + GetNetAdSummaryReport(evt: any) {
  183 + this.actualPageNo = this.pageNo;
  184 + this.actualPageLength =this.pageLength;
  185 +
  186 + var tempArr = evt.split(',');
  187 + this.pageNo = parseInt(tempArr[0]);
  188 + this.pageLength = parseInt(tempArr[1]);
  189 +
  190 + this.SearchField.pageNo=this.pageNo;
  191 + this.SearchField.pageLength=this.pageLength;
  192 +
  193 + this.GetNetAdSummaryReportList();
160 194 }
  195 +
  196 + GetNetAdSummaryReportList() {
  197 + this._loadingService.ShowLoading("global-loading");
  198 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  199 +
  200 + if (this.SearchField.sortOrder=='asc') {
  201 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  202 + } else
  203 + {
  204 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  205 + }
  206 + if (this.ExportingStart) {
  207 + this.reportservice.GetNetAdSummaryReport(this.SearchField).subscribe((NetAdSubscriptionReports: NetAdSubscriptionReports[]) => {
  208 + //reset length after csvexport
  209 + this.pageNo = this.actualPageNo;
  210 + this.pageLength=this.actualPageLength;
  211 +
  212 + this.SearchField.pageNo=this.pageNo;
  213 + this.SearchField.pageLength=this.pageLength;
  214 + this.ExportService(NetAdSubscriptionReports); }, error => this.error = <any>error);
  215 + }
  216 + else {
  217 + this.reportservice.GetNetAdSummaryReport(this.SearchField).subscribe((NetAdSubscriptionReports: NetAdSubscriptionReports[]) => { this.BindFormFields(NetAdSubscriptionReports); }, error => this.error = <any>error);
  218 + }
  219 +
  220 + this.ExportingStart = false;
  221 + }
161 222  
162 223 SearchRecords() {
163   - this.ExportingStart = false;
164   - this.GetNetAdSummaryReport('1, ' + this.pageLength);
  224 + this.ExportingStart = false;
  225 + this.pageNo=1;
  226 + this.SearchField.sFromDate=this.NetAdSubscriptionReportForm.controls['sFromDate'].value;
  227 + this.SearchField.sToDate=this.NetAdSubscriptionReportForm.controls['sToDate'].value;
  228 + this.SearchField.iLicenseTypeId=this.NetAdSubscriptionReportForm.controls['iLicenseTypeId'].value;
  229 + this.SearchField.iStartPrice=this.NetAdSubscriptionReportForm.controls['iStartPrice'].value;
  230 + this.SearchField.iEndPrice=this.NetAdSubscriptionReportForm.controls['iEndPrice'].value;
  231 +
  232 + this.SearchField.pageNo=this.pageNo;
  233 +
  234 + this.GetNetAdSummaryReportList();
165 235 }
166 236  
167 237 BindFormFields(data) {
... ... @@ -175,22 +245,22 @@ export class NetAdSubscriptionReport implements OnInit {
175 245 this.TotalNetAdSubscription=[{
176 246 AccountType:lastentry.AccountType,
177 247 ActiveSubscription:lastentry.ActiveSubscription,
178   - AccounInActiveSubscriptiontType:lastentry.InActiveSubscription,
  248 + InActiveSubscription:lastentry.InActiveSubscription,
179 249 InstitutionName:lastentry.InstitutionName,
180 250 LicenseType:lastentry.LicenseType,
181 251 NetAdSubscription:lastentry.NetAdSubscription,
182 252 RenewSubscription:lastentry.RenewSubscription,
183 253 }]
  254 + this.lstNetAdSubscriptionReport.splice(index-1,1);
184 255  
185 256 }
186 257  
187   - this.lstNetAdSubscriptionReport.splice(index-1,1)
188   -
189 258 if (this.lstNetAdSubscriptionReport.length > 0) {
190 259 this.NoRecord = '';
191 260 this.buttonStatus = true;
192 261 this._loadingService.HideLoading("global-loading");
193 262 }
  263 +
194 264 if (this.lstNetAdSubscriptionReport.length == 0) {
195 265 this.NoRecord = this.global.NoRecords;
196 266 this._loadingService.HideLoading("global-loading");
... ... @@ -202,20 +272,18 @@ export class NetAdSubscriptionReport implements OnInit {
202 272 if (this.buttonStatus) {
203 273 this.ExportingStart = true;
204 274 this.GetNetAdSummaryReport('1, ' + this.recordCount);
205   - this.ExportingStart = false;
206 275 }
207 276 }
208 277  
209   - ExportService(data: any) {
210   -
211   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
212   - for (let i = 0; i < data.NetAdSubscriptionList.length; i++) {
213   - delete data.NetAdSubscriptionList[i][this.global.RemoveColumns[c].toString()];
214   - }
215   - }
216   -
217   - this._loadingService.HideLoading("global-loading");
218   - this.global.ExportToCSV(data.NetAdSubscriptionList, "NetAdSummaryReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
219   -
  278 + ExportService(data: any) {
  279 + for (let i = 0; i < data.NetAdSubscriptionList.length; i++) {
  280 + if( data.NetAdSubscriptionList[i]['LicenseType']!='Total')
  281 + data.NetAdSubscriptionList[i]['LicenseCreationDate']= this.datePipe.transform(data.NetAdSubscriptionList[i]['LicenseCreationDate'], 'MM/dd/yyyy');
  282 + }
  283 +
  284 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  285 + this.global.ExportToCSV(data.NetAdSubscriptionList, "NetAdSummaryReport-"+reportname);
  286 +
  287 + this._loadingService.HideLoading("global-loading");
220 288 }
221 289 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/report.service.ts
... ... @@ -53,11 +53,11 @@ export class ReportService {
53 53 .catch((res: Response) => this.handleError(res));
54 54 }
55 55  
56   - GetUsageReport(obj: any, pageNo: number, pageLength: number) {
57   - if (obj.sFromDate == '') {
  56 + GetUsageReport(obj: any) {
  57 + if (obj.sFromDate == '' || obj.sFromDate == null) {
58 58 obj.sFromDate = '1/1/1';
59 59 }
60   - if (obj.sToDate == '') {
  60 + if (obj.sToDate == '' || obj.sToDate == null) {
61 61 obj.sToDate = '1/1/9999';
62 62 }
63 63 obj.sFromDate = this.datePipe.transform(obj.sFromDate, 'MM/dd/yyyy');
... ... @@ -69,14 +69,16 @@ export class ReportService {
69 69 "&sZip=" + obj.sZip +
70 70 "&iState=" + obj.iState +
71 71 "&iCountry=" + obj.iCountry +
72   - "&pageNo=" + pageNo +
73   - "&pageLength=" + pageLength)
  72 + "&sortColumn=" + obj.sortColumn +
  73 + "&sortOrder=" + obj.sortOrder +
  74 + "&pageNo=" + obj.pageNo +
  75 + "&pageLength=" + obj.pageLength)
74 76 .map(this.extractData)
75 77 .catch((res: Response) => this.handleError(res));
76 78 }
77 79  
78 80  
79   - GetCustomerSummeryReport(obj: any, pageNo: number, pageLength: number) {
  81 + GetCustomerSummeryReport(obj: any) {
80 82 if (obj.sSubscriptionStart == undefined || obj.sSubscriptionStart === '')
81 83 obj.sSubscriptionStart = -1;
82 84 if (obj.sSubscriptionEnd == undefined || obj.sSubscriptionEnd === '')
... ... @@ -91,20 +93,23 @@ export class ReportService {
91 93 "&sZip=" + obj.sZip +
92 94 "&iState=" + obj.iState +
93 95 "&iCountry=" + obj.iCountry +
94   - "&pageNo=" + pageNo +
95   - "&pageLength=" + pageLength)
  96 + "&sortColumn=" + obj.sortColumn +
  97 + "&sortOrder=" + obj.sortOrder +
  98 + "&pageNo=" + obj.pageNo +
  99 + "&pageLength=" + obj.pageLength)
96 100 .map(this.extractData)
97 101 .catch((res: Response) => this.handleError(res));
98 102 }
99 103  
100 104  
101   - GetExpiringSubscriptionReport(obj: any, pageNo: number, pageLength: number) {
102   - if (obj.sFromDate == '') {
  105 + GetExpiringSubscriptionReport(obj: any) {
  106 + if (obj.sFromDate == '' || obj.sFromDate == null) {
103 107 obj.sFromDate = '1/1/1';
104 108 }
105   - if (obj.sToDate == '') {
  109 + if (obj.sToDate == '' || obj.sToDate == null) {
106 110 obj.sToDate = '1/1/9999';
107   - }
  111 + }
  112 +
108 113 if (obj.iStartPrice == undefined || obj.iStartPrice==='')
109 114 obj.iStartPrice = -1;
110 115  
... ... @@ -123,17 +128,19 @@ export class ReportService {
123 128 "&sZip=" + obj.sZip +
124 129 "&iStateId=" + obj.iStateId +
125 130 "&iCountryId=" + obj.iCountryId +
126   - "&pageNo=" + pageNo +
127   - "&pageLength=" + pageLength)
  131 + "&sortColumn=" + obj.sortColumn +
  132 + "&sortOrder=" + obj.sortOrder +
  133 + "&pageNo=" + obj.pageNo +
  134 + "&pageLength=" + obj.pageLength)
128 135 .map(this.extractData)
129 136 .catch((res: Response) => this.handleError(res));
130 137 }
131 138  
132   - GetSubscriptionReport(obj: any, pageNo: number, pageLength: number) {
133   - if (obj.sFromDate == '') {
  139 + GetSubscriptionReport(obj: any) {
  140 + if (obj.sFromDate == '' || obj.sFromDate == null) {
134 141 obj.sFromDate = '1/1/1';
135 142 }
136   - if (obj.sToDate == '') {
  143 + if (obj.sToDate == '' || obj.sToDate == null) {
137 144 obj.sToDate = '1/1/9999';
138 145 }
139 146 obj.sFromDate = this.datePipe.transform(obj.sFromDate, 'MM/dd/yyyy');
... ... @@ -151,23 +158,26 @@ export class ReportService {
151 158 "&iAccountTypeId=" + obj.iAccountTypeId +
152 159 "&sZip=" + obj.sZip +
153 160 "&iStateId=" + obj.iStateId +
154   - "&iCountryId=" + obj.iCountryId +
155   - "&pageNo=" + pageNo +
156   - "&pageLength=" + pageLength)
  161 + "&iCountryId=" + obj.iCountryId +
  162 + "&sortColumn=" + obj.sortColumn +
  163 + "&sortOrder=" + obj.sortOrder +
  164 + "&pageNo=" + obj.pageNo +
  165 + "&pageLength=" + obj.pageLength)
157 166 .map(this.extractData)
158 167 .catch((res: Response) => this.handleError(res));
159 168 }
160 169  
161   - GetSubscriptionCancellationReport(obj: any, pageNo: number, pageLength: number) {
162   - if (obj.sFromDate == '') {
  170 + GetSubscriptionCancellationReport(obj: any) {
  171 + if (obj.sFromDate == '' || obj.sFromDate == null) {
163 172 obj.sFromDate = '1/1/1';
164 173 }
165   - if (obj.sToDate == '') {
  174 + if (obj.sToDate == '' || obj.sToDate == null) {
166 175 obj.sToDate = '1/1/9999';
167 176 }
168 177 obj.sFromDate = this.datePipe.transform(obj.sFromDate, 'MM/dd/yyyy');
169 178 obj.sToDate = this.datePipe.transform(obj.sToDate, 'MM/dd/yyyy');
170   - if (obj.icStartPrice == undefined || obj.icStartPrice === '')
  179 +
  180 + if (obj.icStartPrice == undefined || obj.icStartPrice === '')
171 181 obj.icStartPrice = -1;
172 182 if (obj.icEndPrice == undefined || obj.icEndPrice === '')
173 183 obj.icEndPrice = -1;
... ... @@ -181,68 +191,76 @@ export class ReportService {
181 191 "&sZip=" + obj.sZip +
182 192 "&iStateId=" + obj.iStateId +
183 193 "&iCountryId=" + obj.iCountryId +
184   - "&pageNo=" + pageNo +
185   - "&pageLength=" + pageLength)
  194 + "&sortColumn=" + obj.sortColumn +
  195 + "&sortOrder=" + obj.sortOrder +
  196 + "&pageNo=" + obj.pageNo +
  197 + "&pageLength=" + obj.pageLength)
186 198 .map(this.extractData)
187 199 .catch((res: Response) => this.handleError(res));
188 200 }
189 201  
190 202  
191   - GetNetAdSummaryReport(obj: any, pageNo: number, pageLength: number) {
192   - if (obj.sFromDate == '') {
193   - obj.sFromDate = '1/1/1';
194   - }
195   - if (obj.sToDate == '') {
196   - obj.sToDate = '1/1/9999';
197   - }
  203 + GetNetAdSummaryReport(obj: any) {
  204 + if (obj.sFromDate == '' || obj.sFromDate == null) {
  205 + obj.sFromDate = '1/1/1';
  206 + }
  207 + if (obj.sToDate == '' || obj.sToDate == null) {
  208 + obj.sToDate = '1/1/9999';
  209 + }
198 210 obj.sFromDate = this.datePipe.transform(obj.sFromDate, 'MM/dd/yyyy');
199 211 obj.sToDate = this.datePipe.transform(obj.sToDate, 'MM/dd/yyyy');
200   - if (obj.icStartPrice == undefined || obj.icStartPrice == '')
201   - obj.icStartPrice = -1;
202   - if (obj.icEndPrice == undefined || obj.icEndPrice == '')
203   - obj.icEndPrice = -1;
  212 + if (obj.iStartPrice == undefined || obj.iStartPrice == '')
  213 + obj.iStartPrice = -1;
  214 + if (obj.iEndPrice == undefined || obj.iEndPrice == '')
  215 + obj.iEndPrice = -1;
204 216  
205 217  
206 218 return this.http.get(this.commonService.resourceBaseUrl + "Report/GetNetAdSummaryReport?sFromDate=" + obj.sFromDate +
207 219 "&sToDate=" + obj.sToDate +
208   - "&iStartPrice=" + obj.icStartPrice +
209   - "&iEndPrice=" + obj.icEndPrice +
  220 + "&iStartPrice=" + obj.iStartPrice +
  221 + "&iEndPrice=" + obj.iEndPrice +
210 222 "&iLicenseTypeId=" + obj.iLicenseTypeId +
211   - "&pageNo=" + pageNo +
212   - "&pageLength=" + pageLength)
  223 + "&sortColumn=" + obj.sortColumn +
  224 + "&sortOrder=" + obj.sortOrder +
  225 + "&pageNo=" + obj.pageNo +
  226 + "&pageLength=" + obj.pageLength)
213 227 .map(this.extractData)
214 228 .catch((res: Response) => this.handleError(res));
215 229 }
216 230  
217   - GetSiteLicenseUsageReport(obj: any, pageNo: number, pageLength: number) {
218   - if (obj.sFromDate == '') {
219   - obj.sFromDate = '1/1/1';
220   - }
221   - if (obj.sToDate == '') {
222   - obj.sToDate = '1/1/9999';
223   - }
  231 + GetSiteLicenseUsageReport(obj: any) {
  232 + if (obj.sFromDate == '' || obj.sFromDate == null) {
  233 + obj.sFromDate = '1/1/1';
  234 + }
  235 + if (obj.sToDate == '' || obj.sToDate == null) {
  236 + obj.sToDate = '1/1/9999';
  237 + }
224 238 obj.sFromDate = this.datePipe.transform(obj.sFromDate, 'MM/dd/yyyy');
225 239 obj.sToDate = this.datePipe.transform(obj.sToDate, 'MM/dd/yyyy');
226 240 if (obj.sAccountNumber == null)
227 241 obj.sAccountNumber = '';
  242 +
228 243 return this.http.get(this.commonService.resourceBaseUrl + "Report/GetSiteLicenseUsageReport?sFromDate=" + obj.sFromDate +
229 244 "&sToDate=" + obj.sToDate +
230 245 "&sAccountNumber=" + obj.sAccountNumber +
231 246 "&iEdition=" + obj.iEdition +
232   - "&pageNo=" + pageNo +
233   - "&pageLength=" + pageLength)
  247 + "&iLoginTypeId=" + obj.iLoginTypeId +
  248 + "&sortColumn=" + obj.sortColumn +
  249 + "&sortOrder=" + obj.sortOrder +
  250 + "&pageNo=" + obj.pageNo +
  251 + "&pageLength=" + obj.pageLength)
234 252 .map(this.extractData)
235 253 .catch((res: Response) => this.handleError(res));
236 254 }
237 255  
238 256  
239   - GetDiscountReport(obj: any, pageNo: number, pageLength: number) {
240   - if (obj.sFromDate == '') {
241   - obj.sFromDate = '1/1/1';
242   - }
243   - if (obj.sToDate == '') {
244   - obj.sToDate = '1/1/9999';
245   - }
  257 + GetDiscountReport(obj: any) {
  258 + if (obj.sFromDate == '' || obj.sFromDate == null) {
  259 + obj.sFromDate = '1/1/1';
  260 + }
  261 + if (obj.sToDate == '' || obj.sToDate == null) {
  262 + obj.sToDate = '1/1/9999';
  263 + }
246 264 obj.sFromDate = this.datePipe.transform(obj.sFromDate, 'MM/dd/yyyy');
247 265 obj.sToDate = this.datePipe.transform(obj.sToDate, 'MM/dd/yyyy');
248 266 if (obj.sAccountNumber == null)
... ... @@ -252,18 +270,20 @@ export class ReportService {
252 270 "&sToDate=" + obj.sToDate +
253 271 "&iDiscountCode=" + obj.iDiscountCode +
254 272 "&sAccountNumber=" + obj.sAccountNumber +
255   - "&pageNo=" + pageNo +
256   - "&pageLength=" + pageLength)
  273 + "&sortColumn=" + obj.sortColumn +
  274 + "&sortOrder=" + obj.sortOrder +
  275 + "&pageNo=" + obj.pageNo +
  276 + "&pageLength=" + obj.pageLength)
257 277 .map(this.extractData)
258 278 .catch((res: Response) => this.handleError(res));
259 279 }
260 280  
261 281  
262   - GetImageExportReport(obj: any, pageNo: number, pageLength: number) {
263   - if (obj.sFromDate == '') {
  282 + GetImageExportReport(obj: any) {
  283 + if (obj.sFromDate == '' || obj.sFromDate == null) {
264 284 obj.sFromDate = '1/1/1';
265 285 }
266   - if (obj.sToDate == '') {
  286 + if (obj.sToDate == '' || obj.sToDate == null) {
267 287 obj.sToDate = '1/1/9999';
268 288 }
269 289 obj.sFromDate = this.datePipe.transform(obj.sFromDate, 'MM/dd/yyyy');
... ... @@ -275,8 +295,10 @@ export class ReportService {
275 295 return this.http.get(this.commonService.resourceBaseUrl + "Report/GetImageExportReport?sFromDate=" + obj.sFromDate +
276 296 "&sToDate=" + obj.sToDate +
277 297 "&sAccountNumber=" + obj.sAccountNumber +
278   - "&pageNo=" + pageNo +
279   - "&pageLength=" + pageLength)
  298 + "&sortColumn=" + obj.sortColumn +
  299 + "&sortOrder=" + obj.sortOrder +
  300 + "&pageNo=" + obj.pageNo +
  301 + "&pageLength=" + obj.pageLength)
280 302 .map(this.extractData)
281 303 .catch((res: Response) => this.handleError(res));
282 304 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/reportdatamodel.ts
... ... @@ -12,7 +12,7 @@ export class UsageReports {
12 12 LicenseZip: string;
13 13 LicenseCountry: string;
14 14 TotalLogins: number;
15   - LastLoginDate: string;
  15 + LastLogin: string;
16 16 }
17 17  
18 18 export class CustomerSummaryReports {
... ... @@ -110,14 +110,13 @@ export class DiscountCodeReports {
110 110 }
111 111  
112 112 export class ImageExportReports {
113   - LicenseId: number;
114   - ExportedDate: string;
  113 + Title: string;
115 114 ImageName: string;
  115 + OriginalFileName: string;
  116 + ModuleName: string;
  117 + ExportedDate: string;
116 118 AccountNumber: string;
117   - OriginalFileName: string;
118   - Title: string;
119   - ModuleName: string;
120   - UserName: string;
  119 + UserName: string;
121 120 ExportLimit: string;
122 121 imageCount: number;
123 122  
... ...
400-SOURCECODE/Admin/src/app/components/Reports/sitelicenseusagereport.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
3 3 <h4>Site License Usage Report</h4>
4 4 </div>
5 5 <div class="col-sm-12">
6 6  
7 7 <div class="container-fluid main-full">
8   - <div class="row">
  8 + <div class="row" style="margin-right:-40px">
9 9 <div class="well no-margin-btm">
10 10 <div class="col-xs-12" *ngIf="alerts !== ''">
11 11 <div class="alert alert-danger" [innerHTML]="alerts">
... ... @@ -16,10 +16,11 @@
16 16 <div class="row">
17 17 <div class="col-sm-12">
18 18 <div class="form-group marginTop5">
19   - <label for="FromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
  19 + <label for="sFromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
20 20 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
21   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
22   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1">
  21 + <div id="sFromDate" class="input-group input-group-sm input-append date">
  22 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1"
  23 + (bsValueChange)="FromDateChange(dp1)" (change)="FromDateChange(dp1)" placeholder="mm/dd/yyyy">
23 24 <span class="input-group-btn add-on">
24 25 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
25 26 </span>
... ... @@ -31,10 +32,11 @@
31 32  
32 33 <div class="col-sm-12">
33 34 <div class="form-group marginTop5">
34   - <label for="ToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
  35 + <label for="sToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
35 36 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
36   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
37   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2">
  37 + <div id="sToDate" class="input-group input-group-sm input-append date">
  38 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2"
  39 + (bsValueChange)="ToDateChange(dp2)" (change)="ToDateChange(dp2)" placeholder="mm/dd/yyyy">
38 40 <span class="input-group-btn add-on">
39 41 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
40 42 </span>
... ... @@ -68,6 +70,20 @@
68 70 </select>
69 71 </div>
70 72 </div>
  73 +
  74 + <div class="col-sm-12">
  75 + <div class="form-group marginTop5">
  76 + <label for="AccountNumber" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Site Usage :</label>
  77 + </div>
  78 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  79 + <select class="form-control input-sm" id="LoginTypeId" formControlName="iLoginTypeId">
  80 + <option selected="selected" value="0">All</option>
  81 + <option value="1">Site License Report</option>
  82 + <option value="2">Embed URL Report</option>
  83 + </select>
  84 + </div>
  85 + </div>
  86 +
71 87 </div>
72 88 </div>
73 89  
... ... @@ -88,26 +104,7 @@
88 104 <label class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0 hidden-lg hidden-xs">&nbsp;</label>
89 105 </div>
90 106 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
91   - <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
92   - <!--<div class="modal fade bs-example-modal-sm text-left" tabindex="-1" role="dialog" id="mymodal">
93   - <div class="modal-dialog modal-sm" role="document">
94   - <div class="modal-content">
95   - <div class="modal-header annotation-modal-header ui-draggable-handle">
96   - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">ร—</span></button>
97   - <h4 class="modal-title" id="">Alert</h4>
98   - </div>
99   - <div class="modal-body">
100   - <h5>Account number does not exist in the system.</h5>
101   - </div>
102   - <div class="modal-footer">
103   - <div class="row">
104   - <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
105   - </div>
106   - </div>
107   -
108   - </div>
109   - </div>
110   - </div>-->
  107 + <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()" [disabled]="!SiteLicenseUsageReportForm.valid || alerts != ''"><i class="fa fa-file"></i> Generate Report</button>
111 108 </div>
112 109 </div>
113 110 </div>
... ... @@ -117,16 +114,16 @@
117 114 </div>
118 115  
119 116 <div class="well">
120   - <table id="fixed_hdr2" class="table-hover ">
  117 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
121 118 <thead>
122 119 <tr>
123   - <th>Account Number</th>
124   - <th>Edition</th>
125   - <th>Institution Name</th>
126   - <th>Original Entry Date</th>
127   - <th>Referel URL</th>
128   - <th>Total Login</th>
129   - <th>Last Login Date</th>
  120 + <th id="AccountNumber">Account Number</th>
  121 + <th id="EditionTitle">Edition</th>
  122 + <th id="InstitutionName">Institution Name</th>
  123 + <th id="LicenseCreationDate">Original Entry Date</th>
  124 + <th id="ReferalUrl">Referel URL</th>
  125 + <th id="TotalLogins">Total Login</th>
  126 + <th id="LastLogin">Last Login Date</th>
130 127 </tr>
131 128 </thead>
132 129 <tbody>
... ... @@ -138,10 +135,10 @@
138 135 <td>{{item.AccountNumber}}</td>
139 136 <td>{{item.EditionTitle}}</td>
140 137 <td>{{item.InstitutionName}}</td>
141   - <td>{{item.LicenseCreationDate}}</td>
  138 + <td>{{item.LicenseCreationDate | date: 'MM/dd/yyyy'}}</td>
142 139 <td>{{item.ReferalUrl}}</td>
143 140 <td>{{item.TotalLogins}}</td>
144   - <td>{{item.LastLogin}}</td>
  141 + <td>{{item.LastLogin | date: 'MM/dd/yyyy'}}</td>
145 142 </tr>
146 143 </tbody>
147 144 </table>
... ...
400-SOURCECODE/Admin/src/app/components/Reports/sitelicenseusagereport.component.ts
... ... @@ -54,6 +54,19 @@ export class SiteLicenseUsageReport implements OnInit {
54 54 pageNo: number;
55 55 pageLength: number;
56 56 DisableAccountNumberControl: boolean;
  57 + actualPageNo: number;
  58 + actualPageLength: number;
  59 + SearchField:any={
  60 + sFromDate:new Date(),
  61 + sToDate:new Date(),
  62 + sAccountNumber:'',
  63 + iEdition:0,
  64 + iLoginTypeId:0,
  65 + sortColumn:'AccountNumber',
  66 + sortOrder:'asc',
  67 + pageNo:1,
  68 + pageLength:10
  69 + };
57 70 // Declare height and width variables
58 71 scrHeight:any;
59 72 scrWidth:any;
... ... @@ -62,12 +75,15 @@ export class SiteLicenseUsageReport implements OnInit {
62 75  
63 76 var $ua = navigator.userAgent;
64 77 if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
65   - this.scrHeight = window.innerHeight-470;
  78 + this.scrHeight = window.innerHeight-500;
66 79 }
67 80 else
68 81 {
69   - this.scrHeight = window.innerHeight-400;
  82 + this.scrHeight = window.innerHeight-430;
70 83 }
  84 + if(this.scrHeight<=360) this.scrHeight=360;
  85 +
  86 + $(".ft_container").css("height",this.scrHeight);
71 87 }
72 88 constructor(private router: Router, private reportservice: ReportService, private fb: FormBuilder,
73 89 private modalService: BsModalService, public global: GlobalService,
... ... @@ -84,7 +100,8 @@ export class SiteLicenseUsageReport implements OnInit {
84 100 sFromDate: [this.previousdate],
85 101 sToDate: [this.date],
86 102 sAccountNumber:[],
87   - iEdition:[0]
  103 + iEdition:[0],
  104 + iLoginTypeId:[0]
88 105 });
89 106 if (this.global.UserTypeName == "Client Admin" || this.global.UserTypeName == "District Admin") {
90 107 this.SiteLicenseUsageReportForm.controls['sAccountNumber'].setValue(this.global.AccountNumber)
... ... @@ -100,19 +117,10 @@ export class SiteLicenseUsageReport implements OnInit {
100 117 { width: 180, align: 'center' },
101 118 { width: 250, align: 'center' },
102 119 { width: 250, align: 'Center' },
103   - { width: 150, align: 'Center' },
  120 + { width: 250, align: 'Center' },
  121 + { width: 350, align: 'Center' },
104 122 { width: 350, align: 'Center' },
105   - { width: 500, align: 'Center' },
106   - { width: 130, align: 'Center' },
107   - // { width: 120, align: 'center' },
108   - // { width: 280, align: 'Center' },
109   - // { width: 180, align: 'center' },
110   - // { width: 200, align: 'center' },
111   - // { width: 170, align: 'center' },
112   - // { width: 80, align: 'center' },
113   - // { width: 150, align: 'center' },
114   - // { width: 150, align: 'center' },
115   - // { width: 180, align: 'Center' },
  123 + { width: 160, align: 'Center' }
116 124 ],
117 125 sort: true
118 126 });
... ... @@ -122,47 +130,100 @@ export class SiteLicenseUsageReport implements OnInit {
122 130 this.recordCount = 0;
123 131 this.pagerComponent = new PagerComponent();
124 132  
125   - if(document.getElementById("fixed_table_rc") != null){
126   - document.getElementById("fixed_table_rc").remove();
127   - var testScript = document.createElement("script");
128   - testScript.setAttribute("id", "fixed_table_rc");
129   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
130   - testScript.setAttribute("type", "text/javascript");
131   - document.body.appendChild(testScript);
132   - }
  133 + var thisObject=this;//class object
  134 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  135 +
  136 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  137 + {
  138 + var fieldName=event.currentTarget.id;
  139 + var sortType=''
  140 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  141 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  142 +
  143 + if (isAscSort) {
  144 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  145 + sortType="desc";
  146 + } else {
  147 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  148 + sortType="asc";
  149 + }
  150 +
  151 + thisObject.SortTableRecords(fieldName,sortType);
  152 +
  153 + }
  154 +
  155 + });
133 156 }
  157 +
  158 + FromDateChange(dateValue: any){
  159 + this.alerts = '';
  160 + this.global.compareTwoDates(this.SiteLicenseUsageReportForm.controls['sToDate'].value, dateValue._bsValue);
  161 + if (this.global.ValidationMsg != '') {
  162 + this.alerts = this.global.ValidationMsg;
  163 + }
  164 + }
  165 +
  166 + ToDateChange(dateValue: any){
  167 + this.alerts = '';
  168 + this.global.compareTwoDates(dateValue._bsValue, this.SiteLicenseUsageReportForm.controls['sFromDate'].value);
  169 + if (this.global.ValidationMsg != '') {
  170 + this.alerts = this.global.ValidationMsg;
  171 + }
  172 + }
  173 +
  174 + SortTableRecords(fieldName:string,sortType:string) {
  175 + this.SearchField.sortColumn=fieldName;
  176 + this.SearchField.sortOrder=sortType;
  177 +
  178 + this.GetSiteLicenseUsageReportList();
  179 + }
134 180  
135 181 GetEdition() {
136 182 this.reportservice.GetEdition().subscribe(st => { this.lstEdition = st; }, error => this.error = <any>error);
137 183 }
138   -
  184 +
  185 +
139 186 GetSiteLicenseUsageReport(evt: any) {
140   - this.alerts = '';
141   - this.global.compareTwoDates(this.SiteLicenseUsageReportForm.controls['sToDate'].value, this.SiteLicenseUsageReportForm.controls['sFromDate'].value);
142   - if (this.global.ValidationMsg != '') {
143   - this.alerts = this.global.ValidationMsg
144   - }
145   - if (this.alerts == '') {
146   - this._loadingService.ShowLoading("global-loading");
147   - var tempArr = evt.split(',');
148   - this.pageNo = parseInt(tempArr[0]);
149   - var actulalength=this.pageLength;
150   - this.pageLength = parseInt(tempArr[1]);
151   - this._loadingService.ShowLoading("global-loading");
152   - this.SiteLicenseUsageReport = this.SiteLicenseUsageReportForm.value;
153   - var obj = this.SiteLicenseUsageReport;
154   - if (this.ExportingStart) {
155   - this.reportservice.GetSiteLicenseUsageReport(obj, this.pageNo, this.pageLength).subscribe((SiteLicenseUsageReports: SiteLicenseUsageReports[]) => {
156   - //reset length after csvexport
157   - this.pageLength=actulalength;
158   - this.ExportService(SiteLicenseUsageReports); }, error => this.error = <any>error);
159   - }
160   - else {
161   - this.reportservice.GetSiteLicenseUsageReport(obj, this.pageNo, this.pageLength).subscribe((SiteLicenseUsageReports: SiteLicenseUsageReports[]) => { this.BindFormFields(SiteLicenseUsageReports); }, error => this.error = <any>error);
162   - }
163   - }
  187 + this.actualPageNo = this.pageNo;
  188 + this.actualPageLength =this.pageLength;
  189 +
  190 + var tempArr = evt.split(',');
  191 + this.pageNo = parseInt(tempArr[0]);
  192 + this.pageLength = parseInt(tempArr[1]);
  193 +
  194 + this.SearchField.pageNo=this.pageNo;
  195 + this.SearchField.pageLength=this.pageLength;
  196 +
  197 + this.GetSiteLicenseUsageReportList();
164 198 }
165   -
  199 +
  200 + GetSiteLicenseUsageReportList() {
  201 + this._loadingService.ShowLoading("global-loading");
  202 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  203 +
  204 + if (this.SearchField.sortOrder=='asc') {
  205 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  206 + } else
  207 + {
  208 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  209 + }
  210 + if (this.ExportingStart) {
  211 + this.reportservice.GetSiteLicenseUsageReport(this.SearchField).subscribe((SiteLicenseUsageReports: SiteLicenseUsageReports[]) => {
  212 + //reset length after csvexport
  213 + this.pageNo = this.actualPageNo;
  214 + this.pageLength=this.actualPageLength;
  215 +
  216 + this.SearchField.pageNo=this.pageNo;
  217 + this.SearchField.pageLength=this.pageLength;
  218 + this.ExportService(SiteLicenseUsageReports); }, error => this.error = <any>error);
  219 + }
  220 + else {
  221 + this.reportservice.GetSiteLicenseUsageReport(this.SearchField).subscribe((SiteLicenseUsageReports: SiteLicenseUsageReports[]) => { this.BindFormFields(SiteLicenseUsageReports); }, error => this.error = <any>error);
  222 + }
  223 +
  224 + this.ExportingStart = false;
  225 + }
  226 +
166 227 BindFormFields(data) {
167 228 this.recordCount = data.RecordCount;
168 229 this.lstSiteLicenseUsageReport = data.SiteLicenseUsageList;
... ... @@ -180,25 +241,35 @@ export class SiteLicenseUsageReport implements OnInit {
180 241 }
181 242  
182 243 SearchRecords() {
183   - this.ExportingStart = false;
184   - this.GetSiteLicenseUsageReport('1, ' + this.pageLength);
  244 + this.ExportingStart = false;
  245 + this.pageNo=1;
  246 + this.SearchField.sFromDate=this.SiteLicenseUsageReportForm.controls['sFromDate'].value;
  247 + this.SearchField.sToDate=this.SiteLicenseUsageReportForm.controls['sToDate'].value;
  248 + this.SearchField.sAccountNumber=this.SiteLicenseUsageReportForm.controls['sAccountNumber'].value;
  249 + this.SearchField.iEdition=this.SiteLicenseUsageReportForm.controls['iEdition'].value;
  250 + this.SearchField.iLoginTypeId=this.SiteLicenseUsageReportForm.controls['iLoginTypeId'].value;
  251 +
  252 + this.SearchField.pageNo=this.pageNo;
  253 +
  254 + this.GetSiteLicenseUsageReportList();
185 255 }
186 256  
187 257 ExportEvent() {
188 258 if (this.buttonStatus) {
189 259 this.ExportingStart = true;
190 260 this.GetSiteLicenseUsageReport('1, ' + this.recordCount);
191   - this.ExportingStart = false;
192 261 }
193 262 }
194 263 ExportService(data: any) {
195   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
196   - for (let i = 0; i < data.SiteLicenseUsageList.length; i++) {
197   - delete data.SiteLicenseUsageList[i][this.global.RemoveColumns[c].toString()];
198   - }
199   - }
  264 + for (let i = 0; i < data.SiteLicenseUsageList.length; i++) {
  265 + data.SiteLicenseUsageList[i]['LastLogin']= this.datePipe.transform(data.SiteLicenseUsageList[i]['LastLogin'], 'MM/dd/yyyy');
  266 + data.SiteLicenseUsageList[i]['LicenseCreationDate']= this.datePipe.transform(data.SiteLicenseUsageList[i]['LicenseCreationDate'], 'MM/dd/yyyy');
  267 + }
  268 +
  269 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  270 + this.global.ExportToCSV(data.SiteLicenseUsageList, "SiteLicenseUsageReport-"+reportname);
  271 +
200 272 this._loadingService.HideLoading("global-loading");
201   - this.global.ExportToCSV(data.SiteLicenseUsageList, "SiteLicenseUsageReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
202   -
  273 +
203 274 }
204 275 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/subscriptioncancellationreport.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
3 3 <h4>Subscription Cancellation Report</h4>
4 4 </div>
5 5 <div class="col-sm-12">
6 6  
7 7 <div class="container-fluid main-full">
8   - <div class="row">
  8 + <div class="row" style="margin-right:-40px" >
9 9 <div class="well no-margin-btm">
10 10 <div class="col-xs-12" *ngIf="alerts !== ''">
11 11 <div class="alert alert-danger" [innerHTML]="alerts">
... ... @@ -16,10 +16,11 @@
16 16 <div class="row">
17 17 <div class="col-sm-12">
18 18 <div class="form-group marginTop5">
19   - <label for="FromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
  19 + <label for="sFromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
20 20 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
21   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
22   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1">
  21 + <div id="sFromDate" class="input-group input-group-sm input-append date">
  22 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1"
  23 + (bsValueChange)="FromDateChange(dp1)" (change)="FromDateChange(dp1)" placeholder="mm/dd/yyyy">
23 24 <span class="input-group-btn add-on">
24 25 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
25 26 </span>
... ... @@ -31,10 +32,11 @@
31 32  
32 33 <div class="col-sm-12">
33 34 <div class="form-group marginTop5">
34   - <label for="ToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
  35 + <label for="sToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
35 36 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
36   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
37   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2">
  37 + <div id="sToDate" class="input-group input-group-sm input-append date">
  38 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2"
  39 + (bsValueChange)="ToDateChange(dp2)" (change)="ToDateChange(dp2)" placeholder="mm/dd/yyyy">
38 40 <span class="input-group-btn add-on">
39 41 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
40 42 </span>
... ... @@ -134,29 +136,7 @@
134 136  
135 137 <div class="col-sm-12">
136 138 <div class="form-group marginTop5 text-right">
137   - <button class="btn btn-primary btn-sm" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
138   - <!--modal-->
139   - <!--<div class="modal fade bs-example-modal-sm text-left" tabindex="-1" role="dialog" id="mymodal">
140   - <div class="modal-dialog modal-sm" role="document">
141   - <div class="modal-content">
142   - <div class="modal-header annotation-modal-header ui-draggable-handle">
143   - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">ร—</span></button>
144   - <h4 class="modal-title" id="">Alert</h4>
145   - </div>
146   - <div class="modal-body">
147   - <h5>Account number does not exist in the system.</h5>
148   - </div>
149   - <div class="modal-footer">
150   - <div class="row">
151   - <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
152   - </div>
153   - </div>
154   -
155   - </div>
156   - </div>
157   - </div>
158   -
159   - </div>-->
  139 + <button class="btn btn-primary btn-sm" (click)="SearchRecords()" [disabled]="!SubscriptionCancellationReportForm.valid || alerts != ''"><i class="fa fa-file"></i> Generate Report</button>
160 140 </div>
161 141  
162 142 </div>
... ... @@ -170,17 +150,17 @@
170 150 <table id="fixed_hdr2" class="table-hover ">
171 151 <thead>
172 152 <tr>
173   - <th>Account Number</th>
174   - <th>Licensee Name</th>
175   - <th>License Type</th>
176   - <th>Institution Name</th>
177   - <th>Account Type</th>
178   - <th>Edition</th>
179   - <th>Start Date</th>
180   - <th>Original Entry Date</th>
181   - <th>End Date</th>
182   - <th>Subscription Price</th>
183   - <th>Credit Card Number</th>
  153 + <th id="AccountNumber">Account Number</th>
  154 + <th id="LicenseeName">Licensee Name</th>
  155 + <th id="LicenseType">License Type</th>
  156 + <th id="InstitutionName">Institution Name</th>
  157 + <th id="AccountType">Account Type</th>
  158 + <th id="Edition">Edition</th>
  159 + <th id="StartDate">Start Date</th>
  160 + <th id="LicenseCreationDate">Original Entry Date</th>
  161 + <th id="EndDate">End Date</th>
  162 + <th id="SubscriptionPrice">Subscription Price</th>
  163 + <th id="CardNumber">Card Number</th>
184 164 </tr>
185 165 </thead>
186 166 <tbody>
... ... @@ -195,9 +175,9 @@
195 175 <td>{{sr.InstitutionName}}</td>
196 176 <td>{{sr.AccountType}}</td>
197 177 <td>{{sr.Edition}}</td>
198   - <td>{{sr.StartDate}}</td>
199   - <td>{{sr.LicenseCreationDate}}</td>
200   - <td>{{sr.EndDate}}</td>
  178 + <td>{{sr.StartDate | date: 'MM/dd/yyyy'}}</td>
  179 + <td>{{sr.LicenseCreationDate | date: 'MM/dd/yyyy'}}</td>
  180 + <td>{{sr.EndDate | date: 'MM/dd/yyyy'}}</td>
201 181 <td>{{sr.SubscriptionPrice | number:'1.2'}}</td>
202 182 <td>{{sr.CardNumber}}</td>
203 183 </tr>
... ...
400-SOURCECODE/Admin/src/app/components/Reports/subscriptioncancellationreport.component.ts
... ... @@ -56,6 +56,23 @@ export class SubscriptionCancellationReport implements OnInit {
56 56 pageNo: number;
57 57 pageLength: number;
58 58 NewSubscription = new SubscriptionCancellationReports();
  59 + actualPageNo: number;
  60 + actualPageLength: number;
  61 + SearchField:any={
  62 + sFromDate:new Date(),
  63 + sToDate:new Date(),
  64 + iLicenseTypeId:0,
  65 + iAccountTypeId:0,
  66 + sZip:'',
  67 + iStateId:0,
  68 + iCountryId:0,
  69 + icStartPrice:0,
  70 + icEndPrice:-1,
  71 + sortColumn:'AccountNumber',
  72 + sortOrder:'asc',
  73 + pageNo:1,
  74 + pageLength:10
  75 + };
59 76 // Declare height and width variables
60 77 scrHeight:any;
61 78 scrWidth:any;
... ... @@ -70,6 +87,9 @@ export class SubscriptionCancellationReport implements OnInit {
70 87 {
71 88 this.scrHeight = window.innerHeight-490;
72 89 }
  90 + if(this.scrHeight<=360) this.scrHeight=360;
  91 +
  92 + $(".ft_container").css("height",this.scrHeight);
73 93  
74 94 }
75 95 constructor(private router: Router, private reportservice: ReportService,
... ... @@ -84,13 +104,13 @@ export class SubscriptionCancellationReport implements OnInit {
84 104 let SubscriptionCancellationReport = new SubscriptionCancellationReports();
85 105 this.previousdate.setDate(this.previousdate.getDate());
86 106 this.SubscriptionCancellationReportForm = this.fb.group({
87   - sFromDate: [this.previousdate],
88   - sToDate: [this.date],
  107 + sFromDate: [this.previousdate,[Validators.required]],
  108 + sToDate: [this.date,[Validators.required]],
89 109 sZip: [''],
90 110 iLicenseTypeId: [0],
91 111 iAccountTypeId: [0],
92 112 iStateId: [0],
93   - icStartPrice: [0],
  113 + icStartPrice: [''],
94 114 icEndPrice: [''],
95 115 iCountryId: [0],
96 116 });
... ... @@ -111,36 +131,66 @@ export class SubscriptionCancellationReport implements OnInit {
111 131 { width: 140, align: 'center' },
112 132 { width: 170, align: 'center' },
113 133 { width: 150, align: 'Center' },
114   - { width: 160, align: 'Center' },
  134 + { width: 150, align: 'Center' },
115 135 { width: 130, align: 'Center' },
116   - { width: 400, align: 'Center' },
117   - { width: 100, align: 'Center' },
118   - { width: 140, align: 'center' },
119   - { width: 100, align: 'Center' },
120   - { width: 140, align: 'center' },
  136 + { width: 350, align: 'Center' },
  137 + { width: 110, align: 'Center' },
121 138 { width: 150, align: 'center' },
122   - // { width: 170, align: 'center' },
123   - // { width: 80, align: 'center' },
124   - // { width: 150, align: 'center' },
125   - // { width: 150, align: 'center' },
126   - // { width: 180, align: 'Center' },
127   - //{ width: 400, align: 'Center' },
128   - //{ width: 150, align: 'center' },
129   - //{ width: 110, align: 'center' },
  139 + { width: 110, align: 'Center' },
  140 + { width: 140, align: 'center' },
  141 + { width: 130, align: 'center' },
  142 +
130 143 ],
131 144 sort: true
132 145 });
133   - if(document.getElementById("fixed_table_rc") != null){
134   - document.getElementById("fixed_table_rc").remove();
135   - var testScript = document.createElement("script");
136   - testScript.setAttribute("id", "fixed_table_rc");
137   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
138   - testScript.setAttribute("type", "text/javascript");
139   - document.body.appendChild(testScript);
140   - }
  146 + var thisObject=this;//class object
  147 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  148 +
  149 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  150 + {
  151 + var fieldName=event.currentTarget.id;
  152 + var sortType=''
  153 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  154 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  155 +
  156 + if (isAscSort) {
  157 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  158 + sortType="desc";
  159 + } else {
  160 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  161 + sortType="asc";
  162 + }
  163 +
  164 + thisObject.SortTableRecords(fieldName,sortType);
  165 +
  166 + }
  167 +
  168 + });
141 169  
142 170 }
143 171  
  172 + FromDateChange(dateValue: any){
  173 + this.alerts = '';
  174 + this.global.compareTwoDates(this.SubscriptionCancellationReportForm.controls['sToDate'].value, dateValue._bsValue);
  175 + if (this.global.ValidationMsg != '') {
  176 + this.alerts = this.global.ValidationMsg;
  177 + }
  178 + }
  179 +
  180 + ToDateChange(dateValue: any){
  181 + this.alerts = '';
  182 + this.global.compareTwoDates(dateValue._bsValue, this.SubscriptionCancellationReportForm.controls['sFromDate'].value);
  183 + if (this.global.ValidationMsg != '') {
  184 + this.alerts = this.global.ValidationMsg;
  185 + }
  186 + }
  187 +
  188 + SortTableRecords(fieldName:string,sortType:string) {
  189 + this.SearchField.sortColumn=fieldName;
  190 + this.SearchField.sortOrder=sortType;
  191 +
  192 + this.GetCancellationReportList();
  193 + }
144 194  
145 195 GetCountry() {
146 196 this.reportservice.GetCountry().subscribe(y => { this.lstCountry = y; }, error => this.error = <any>error);
... ... @@ -156,34 +206,68 @@ export class SubscriptionCancellationReport implements OnInit {
156 206 GetAccountType() {
157 207 this.reportservice.GetAccountType().subscribe(st => { this.lstAccountType = st; }, error => this.error = <any>error);
158 208 }
159   -
160   - GetSubscriptionCancellationReport(evt: any) {
161   - this.alerts = '';
162   - this.global.compareTwoDates(this.SubscriptionCancellationReportForm.controls['sToDate'].value, this.SubscriptionCancellationReportForm.controls['sFromDate'].value);
163   - if (this.global.ValidationMsg != '') {
164   - this.alerts = this.global.ValidationMsg
165   - }
166   - if (this.alerts == '') {
167   - this._loadingService.ShowLoading("global-loading");
168   - var tempArr = evt.split(',');
169   - this.pageNo = parseInt(tempArr[0]);
170   - var actulalength=this.pageLength;
171   - this.pageLength = parseInt(tempArr[1]);
172   - this.NewSubscription = this.SubscriptionCancellationReportForm.value;
173   - var obj = this.NewSubscription;
174   - if (this.ExportingStart) {
175   - this.reportservice.GetSubscriptionCancellationReport(obj, this.pageNo, this.pageLength).subscribe((SubscriptionCancellationReports: SubscriptionCancellationReports[]) => {
176   - //reset length after csvexport
177   - this.pageLength=actulalength;
178   - this.ExportService(SubscriptionCancellationReports); }, error => this.error = <any>error);
179   - }
180   - else {
181   - this.reportservice.GetSubscriptionCancellationReport(obj, this.pageNo, this.pageLength).subscribe((SubscriptionCancellationReports: SubscriptionCancellationReports[]) => { this.BindFormFields(SubscriptionCancellationReports); }, error => this.error = <any>error);
182   - }
  209 +
  210 + GetSubscriptionCancellationReport(evt: any) {
  211 + this.actualPageNo = this.pageNo;
  212 + this.actualPageLength =this.pageLength;
  213 +
  214 + var tempArr = evt.split(',');
  215 + this.pageNo = parseInt(tempArr[0]);
  216 + this.pageLength = parseInt(tempArr[1]);
  217 +
  218 + this.SearchField.pageNo=this.pageNo;
  219 + this.SearchField.pageLength=this.pageLength;
  220 +
  221 + this.GetCancellationReportList();
  222 + }
  223 +
  224 + GetCancellationReportList() {
  225 + this._loadingService.ShowLoading("global-loading");
  226 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  227 +
  228 + if (this.SearchField.sortOrder=='asc') {
  229 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  230 + } else
  231 + {
  232 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  233 + }
  234 + if (this.ExportingStart) {
  235 + this.reportservice.GetSubscriptionCancellationReport(this.SearchField).subscribe((SubscriptionCancellationReports: SubscriptionCancellationReports[]) => {
  236 + //reset length after csvexport
  237 + this.pageNo = this.actualPageNo;
  238 + this.pageLength=this.actualPageLength;
  239 +
  240 + this.SearchField.pageNo=this.pageNo;
  241 + this.SearchField.pageLength=this.pageLength;
  242 + this.ExportService(SubscriptionCancellationReports); }, error => this.error = <any>error);
183 243 }
184   -
  244 + else {
  245 + this.reportservice.GetSubscriptionCancellationReport(this.SearchField).subscribe((SubscriptionCancellationReports: SubscriptionCancellationReports[]) => { this.BindFormFields(SubscriptionCancellationReports); }, error => this.error = <any>error);
  246 + }
  247 +
  248 + this.ExportingStart = false;
  249 + }
  250 +
  251 + SearchRecords() {
  252 + this.ExportingStart = false;
  253 + this.pageNo=1;
  254 + this.SearchField.sFromDate=this.SubscriptionCancellationReportForm.controls['sFromDate'].value;
  255 + this.SearchField.sToDate=this.SubscriptionCancellationReportForm.controls['sToDate'].value;
  256 + this.SearchField.iLicenseTypeId=this.SubscriptionCancellationReportForm.controls['iLicenseTypeId'].value;
  257 + this.SearchField.iAccountTypeId=this.SubscriptionCancellationReportForm.controls['iAccountTypeId'].value;
  258 + this.SearchField.sZip=this.SubscriptionCancellationReportForm.controls['sZip'].value;
  259 + this.SearchField.iStateId=this.SubscriptionCancellationReportForm.controls['iStateId'].value;
  260 + this.SearchField.iCountryId=this.SubscriptionCancellationReportForm.controls['iCountryId'].value;
  261 + this.SearchField.icStartPrice=this.SubscriptionCancellationReportForm.controls['icStartPrice'].value;
  262 + this.SearchField.icEndPrice=this.SubscriptionCancellationReportForm.controls['icEndPrice'].value;
  263 +
  264 + this.SearchField.pageNo=this.pageNo;
  265 +
  266 + this.GetCancellationReportList();
  267 +
185 268 }
186   - BindFormFields(data) {
  269 +
  270 + BindFormFields(data) {
187 271 this.recordCount = data.RecordCount;
188 272 this.lstSubscriptionCancellationReport = data.SubscriptionCancel
189 273  
... ... @@ -199,25 +283,25 @@ export class SubscriptionCancellationReport implements OnInit {
199 283 this.buttonStatus = false;
200 284 }
201 285 }
202   - SearchRecords() {
203   - this.ExportingStart = false;
204   - this.GetSubscriptionCancellationReport('1, ' + this.pageLength);
205   - }
  286 +
206 287 ExportEvent() {
207 288 if (this.buttonStatus) {
208 289 this.ExportingStart = true;
209 290 this.GetSubscriptionCancellationReport('1, ' + this.recordCount);
210   - this.ExportingStart = false;
211 291 }
212 292 }
  293 +
213 294 ExportService(data: any) {
214   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
215   - for (let i = 0; i < data.SubscriptionCancel.length; i++) {
216   - delete data.SubscriptionCancel[i][this.global.RemoveColumns[c].toString()];
217   - }
218   - }
  295 + for (let i = 0; i < data.SubscriptionCancel.length; i++) {
  296 + data.SubscriptionCancel[i]['StartDate']= this.datePipe.transform(data.SubscriptionCancel[i]['StartDate'], 'MM/dd/yyyy');
  297 + data.SubscriptionCancel[i]['EndDate']= this.datePipe.transform(data.SubscriptionCancel[i]['EndDate'], 'MM/dd/yyyy');
  298 + data.SubscriptionCancel[i]['LicenseCreationDate']= this.datePipe.transform(data.SubscriptionCancel[i]['LicenseCreationDate'], 'MM/dd/yyyy');
  299 + }
  300 +
  301 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  302 + this.global.ExportToCSV(data.SubscriptionCancel, "SubscriptionCancellationReport-"+reportname);
  303 +
219 304 this._loadingService.HideLoading("global-loading");
220   - this.global.ExportToCSV(data.SubscriptionCancel, "SubscriptionCancellationReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
221   -
  305 +
222 306 }
223 307 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/subscriptionreport.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
3 3 <h4>New Subscription Report</h4>
4 4 </div>
5 5 <div class="col-sm-12">
6 6  
7 7 <div class="container-fluid main-full">
8   - <div class="row">
  8 + <div class="row" style="margin-right:-40px">
9 9 <div class="well no-margin-btm">
10 10 <div class="col-xs-12" *ngIf="alerts !== ''">
11 11 <div class="alert alert-danger" [innerHTML]="alerts">
... ... @@ -16,10 +16,11 @@
16 16 <div class="row">
17 17 <div class="col-sm-12">
18 18 <div class="form-group marginTop5">
19   - <label for="FromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
  19 + <label for="sFromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
20 20 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
21   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
22   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1">
  21 + <div id="sFromDate" class="input-group input-group-sm input-append date">
  22 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sFromDate" #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1"
  23 + (bsValueChange)="FromDateChange(dp1)" (change)="FromDateChange(dp1)" placeholder="mm/dd/yyyy">
23 24 <span class="input-group-btn add-on">
24 25 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
25 26 </span>
... ... @@ -31,10 +32,11 @@
31 32  
32 33 <div class="col-sm-12">
33 34 <div class="form-group marginTop5">
34   - <label for="ToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
  35 + <label for="sToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
35 36 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
36   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
37   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2">
  37 + <div id="sToDate" class="input-group input-group-sm input-append date">
  38 + <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2"
  39 + (bsValueChange)="ToDateChange(dp2)" (change)="ToDateChange(dp2)" placeholder="mm/dd/yyyy">
38 40 <span class="input-group-btn add-on">
39 41 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
40 42 </span>
... ... @@ -134,28 +136,7 @@
134 136  
135 137 <div class="col-sm-12">
136 138 <div class="form-group marginTop5 text-right">
137   - <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
138   - <!--modal-->
139   - <!--<div class="modal fade bs-example-modal-sm text-left" tabindex="-1" role="dialog" id="mymodal">
140   - <div class="modal-dialog modal-sm" role="document">
141   - <div class="modal-content">
142   - <div class="modal-header annotation-modal-header ui-draggable-handle">
143   - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">ร—</span></button>
144   - <h4 class="modal-title" id="">Alert</h4>
145   - </div>
146   - <div class="modal-body">
147   - <h5>Account number does not exist in the system.</h5>
148   - </div>
149   - <div class="modal-footer">
150   - <div class="row">
151   - <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
152   - </div>
153   - </div>
154   -
155   - </div>
156   - </div>
157   - </div>-->
158   - <!--modal-->
  139 + <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" (click)="SearchRecords()" [disabled]="!SubscriptionReportForm.valid || alerts != ''"><i class="fa fa-file"></i> Generate Report</button>
159 140 </div>
160 141 </div>
161 142  
... ... @@ -167,20 +148,20 @@
167 148 </div>
168 149  
169 150 <div class="well">
170   - <table id="fixed_hdr2" class="table-hover ">
  151 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
171 152 <thead>
172 153 <tr>
173   - <th>Account Number</th>
174   - <th>Licensee Name</th>
175   - <th>License Type</th>
176   - <th>Institution Name</th>
177   - <th>Account Type</th>
178   - <th>Edition</th>
179   - <th>Start Date</th>
180   - <th>Original Entry Date</th>
181   - <th>End Date</th>
182   - <th>Subscription Price</th>
183   - <th>Credit Card Number</th>
  154 + <th id="AccountNumber">Account Number</th>
  155 + <th id="LicenseeName">Licensee Name</th>
  156 + <th id="LicenseType">License Type</th>
  157 + <th id="InstitutionName">Institution Name</th>
  158 + <th id="AccountType">Account Type</th>
  159 + <th id="Edition">Edition</th>
  160 + <th id="StartDate">Start Date</th>
  161 + <th id="LicenseCreationDate">Original Entry Date</th>
  162 + <th id="EndDate">End Date</th>
  163 + <th id="SubscriptionPrice">Subscription Price</th>
  164 + <th id="CardNumber">Card Number</th>
184 165 </tr>
185 166 </thead>
186 167 <tbody>
... ... @@ -195,9 +176,9 @@
195 176 <td>{{sr.InstitutionName}}</td>
196 177 <td>{{sr.AccountType}}</td>
197 178 <td>{{sr.Edition}}</td>
198   - <td>{{sr.StartDate}}</td>
199   - <td>{{sr.LicenseCreationDate}}</td>
200   - <td>{{sr.EndDate}}</td>
  179 + <td>{{sr.StartDate | date: 'MM/dd/yyyy'}}</td>
  180 + <td>{{sr.LicenseCreationDate | date: 'MM/dd/yyyy'}}</td>
  181 + <td>{{sr.EndDate | date: 'MM/dd/yyyy'}}</td>
201 182 <td>{{sr.SubscriptionPrice | number:'1.2'}}</td>
202 183 <td>{{sr.CardNumber}}</td>
203 184 </tr>
... ...
400-SOURCECODE/Admin/src/app/components/Reports/subscriptionreport.component.ts
... ... @@ -56,6 +56,24 @@ export class SubscriptionReport implements OnInit {
56 56 pageNo: number;
57 57 pageLength: number;
58 58 NewSubscription = new SubscriptionReports();
  59 + actualPageNo: number;
  60 + actualPageLength: number;
  61 + SearchField:any={
  62 + sFromDate:new Date(),
  63 + sToDate:new Date(),
  64 + iLicenseTypeId:0,
  65 + iAccountTypeId:0,
  66 + sZip:'',
  67 + iStateId:0,
  68 + iCountryId:0,
  69 + icStartPrice:0,
  70 + icEndPrice:-1,
  71 + sortColumn:'AccountNumber',
  72 + sortOrder:'asc',
  73 + pageNo:1,
  74 + pageLength:10
  75 + };
  76 +
59 77 // Declare height and width variables
60 78 scrHeight:any;
61 79 scrWidth:any;
... ... @@ -70,6 +88,9 @@ export class SubscriptionReport implements OnInit {
70 88 {
71 89 this.scrHeight = window.innerHeight-480;
72 90 }
  91 + if(this.scrHeight<=360) this.scrHeight=360;
  92 +
  93 + $(".ft_container").css("height",this.scrHeight);
73 94  
74 95 }
75 96 constructor(private router: Router, private reportservice: ReportService,
... ... @@ -84,13 +105,13 @@ export class SubscriptionReport implements OnInit {
84 105 let SubscriptionReport = new SubscriptionReports();
85 106 this.previousdate.setDate(this.previousdate.getDate());
86 107 this.SubscriptionReportForm = this.fb.group({
87   - sFromDate: [this.previousdate],
88   - sToDate: [this.date],
  108 + sFromDate: [this.previousdate,[Validators.required]],
  109 + sToDate: [this.date,[Validators.required]],
89 110 sZip: [''],
90 111 iLicenseTypeId: [0],
91 112 iAccountTypeId: [0],
92 113 iStateId: [0],
93   - icStartPrice: [0],
  114 + icStartPrice: [''],
94 115 icEndPrice: [''],
95 116 iCountryId: [0],
96 117 });
... ... @@ -104,7 +125,6 @@ export class SubscriptionReport implements OnInit {
104 125 this.pageLength = 10;
105 126 this.pagerComponent = new PagerComponent();
106 127 this._loadingService.HideLoading("global-loading");
107   - //this.GetSubscriptionReport();
108 128 $('#fixed_hdr2').fxdHdrCol({
109 129 fixedCols: 0,
110 130 width: "100%",
... ... @@ -115,34 +135,63 @@ export class SubscriptionReport implements OnInit {
115 135 { width: 150, align: 'Center' },
116 136 { width: 150, align: 'Center' },
117 137 { width: 140, align: 'Center' },
118   - { width: 400, align: 'Center' },
119   - { width: 100, align: 'Center' },
  138 + { width: 350, align: 'Center' },
  139 + { width: 110, align: 'Center' },
120 140 { width: 150, align: 'center' },
121   - { width: 100, align: 'Center' },
122   - { width: 140, align: 'center' },
  141 + { width: 110, align: 'Center' },
123 142 { width: 150, align: 'center' },
124   - // { width: 170, align: 'center' },
125   - // { width: 80, align: 'center' },
126   - // { width: 150, align: 'center' },
127   - // { width: 150, align: 'center' },
128   - // { width: 180, align: 'Center' },
129   - //{ width: 400, align: 'Center' },
130   - //{ width: 150, align: 'center' },
131   - //{ width: 110, align: 'center' },
  143 + { width: 140, align: 'center' },
132 144 ],
133 145 sort: true
134 146 });
135   - if(document.getElementById("fixed_table_rc") != null){
136   - document.getElementById("fixed_table_rc").remove();
137   - var testScript = document.createElement("script");
138   - testScript.setAttribute("id", "fixed_table_rc");
139   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
140   - testScript.setAttribute("type", "text/javascript");
141   - document.body.appendChild(testScript);
142   - }
143   -
  147 +
  148 + var thisObject=this;//class object
  149 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  150 +
  151 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  152 + {
  153 + var fieldName=event.currentTarget.id;
  154 + var sortType=''
  155 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  156 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  157 +
  158 + if (isAscSort) {
  159 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  160 + sortType="desc";
  161 + } else {
  162 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  163 + sortType="asc";
  164 + }
  165 +
  166 + thisObject.SortTableRecords(fieldName,sortType);
  167 +
  168 + }
  169 +
  170 + });
144 171 }
145 172  
  173 + FromDateChange(dateValue: any){
  174 + this.alerts = '';
  175 + this.global.compareTwoDates(this.SubscriptionReportForm.controls['sToDate'].value, dateValue._bsValue);
  176 + if (this.global.ValidationMsg != '') {
  177 + this.alerts = this.global.ValidationMsg;
  178 + }
  179 + }
  180 +
  181 + ToDateChange(dateValue: any){
  182 + this.alerts = '';
  183 + this.global.compareTwoDates(dateValue._bsValue, this.SubscriptionReportForm.controls['sFromDate'].value);
  184 + if (this.global.ValidationMsg != '') {
  185 + this.alerts = this.global.ValidationMsg;
  186 + }
  187 + }
  188 +
  189 + SortTableRecords(fieldName:string,sortType:string) {
  190 + this.SearchField.sortColumn=fieldName;
  191 + this.SearchField.sortOrder=sortType;
  192 +
  193 + this.GetSubscriptionReportList();
  194 + }
146 195  
147 196 GetCountry() {
148 197 this.reportservice.GetCountry().subscribe(y => { this.lstCountry = y; }, error => this.error = <any>error);
... ... @@ -158,34 +207,69 @@ export class SubscriptionReport implements OnInit {
158 207 GetAccountType() {
159 208 this.reportservice.GetAccountType().subscribe(st => { this.lstAccountType = st; }, error => this.error = <any>error);
160 209 }
161   -
  210 +
  211 +
162 212 GetSubscriptionReport(evt: any) {
163   - this.alerts = '';
164   - this.global.compareTwoDates(this.SubscriptionReportForm.controls['sToDate'].value, this.SubscriptionReportForm.controls['sFromDate'].value);
165   - if (this.global.ValidationMsg != '') {
166   - this.alerts = this.global.ValidationMsg
167   - }
168   - if (this.alerts == '') {
169   - this._loadingService.ShowLoading("global-loading");
170   - var tempArr = evt.split(',');
171   - this.pageNo = parseInt(tempArr[0]);
172   - var actulalength=this.pageLength;
173   - this.pageLength = parseInt(tempArr[1]);
174   - this.NewSubscription = this.SubscriptionReportForm.value;
175   - var obj = this.NewSubscription;
176   - if (this.ExportingStart) {
177   - this.reportservice.GetSubscriptionReport(obj, this.pageNo, this.pageLength).subscribe((SubscriptionReports: SubscriptionReports[]) => {
178   - //reset length after csvexport
179   - this.pageLength=actulalength;
180   - this.ExportService(SubscriptionReports); }, error => this.error = <any>error);
181   - }
182   - else {
183   - this.reportservice.GetSubscriptionReport(obj, this.pageNo, this.pageLength).subscribe((SubscriptionReports: SubscriptionReports[]) => { this.BindFormFields(SubscriptionReports); }, error => this.error = <any>error);
184   - }
  213 + this.actualPageNo = this.pageNo;
  214 + this.actualPageLength =this.pageLength;
  215 +
  216 + var tempArr = evt.split(',');
  217 + this.pageNo = parseInt(tempArr[0]);
  218 + this.pageLength = parseInt(tempArr[1]);
  219 +
  220 + this.SearchField.pageNo=this.pageNo;
  221 + this.SearchField.pageLength=this.pageLength;
  222 +
  223 + this.GetSubscriptionReportList();
  224 + }
  225 +
  226 + GetSubscriptionReportList() {
  227 + this._loadingService.ShowLoading("global-loading");
  228 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  229 +
  230 + if (this.SearchField.sortOrder=='asc') {
  231 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  232 + } else
  233 + {
  234 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  235 + }
  236 + if (this.ExportingStart) {
  237 + this.reportservice.GetSubscriptionReport(this.SearchField).subscribe((SubscriptionReports: SubscriptionReports[]) => {
  238 + //reset length after csvexport
  239 + this.pageNo = this.actualPageNo;
  240 + this.pageLength=this.actualPageLength;
  241 +
  242 + this.SearchField.pageNo=this.pageNo;
  243 + this.SearchField.pageLength=this.pageLength;
  244 + this.ExportService(SubscriptionReports); }, error => this.error = <any>error);
185 245 }
186   -
  246 + else {
  247 + this.reportservice.GetSubscriptionReport(this.SearchField).subscribe((SubscriptionReports: SubscriptionReports[]) => { this.BindFormFields(SubscriptionReports); }, error => this.error = <any>error);
  248 + }
  249 +
  250 + this.ExportingStart = false;
  251 + }
  252 +
  253 + SearchRecords() {
  254 + this.ExportingStart = false;
  255 + this.pageNo=1;
  256 + this.SearchField.sFromDate=this.SubscriptionReportForm.controls['sFromDate'].value;
  257 + this.SearchField.sToDate=this.SubscriptionReportForm.controls['sToDate'].value;
  258 + this.SearchField.iLicenseTypeId=this.SubscriptionReportForm.controls['iLicenseTypeId'].value;
  259 + this.SearchField.iAccountTypeId=this.SubscriptionReportForm.controls['iAccountTypeId'].value;
  260 + this.SearchField.sZip=this.SubscriptionReportForm.controls['sZip'].value;
  261 + this.SearchField.iStateId=this.SubscriptionReportForm.controls['iStateId'].value;
  262 + this.SearchField.iCountryId=this.SubscriptionReportForm.controls['iCountryId'].value;
  263 + this.SearchField.icStartPrice=this.SubscriptionReportForm.controls['icStartPrice'].value;
  264 + this.SearchField.icEndPrice=this.SubscriptionReportForm.controls['icEndPrice'].value;
  265 +
  266 + this.SearchField.pageNo=this.pageNo;
  267 +
  268 + this.GetSubscriptionReportList();
  269 +
187 270 }
188   - BindFormFields(data) {
  271 +
  272 + BindFormFields(data) {
189 273 this.recordCount = data.RecordCount;
190 274 this.lstSubscriptionReport = data.Subscription
191 275 this.numberOfSubscriptionReport = this.lstSubscriptionReport.length; this.limit = this.lstSubscriptionReport.length;
... ... @@ -200,24 +284,24 @@ export class SubscriptionReport implements OnInit {
200 284 this.buttonStatus = false;
201 285 }
202 286 }
203   - SearchRecords() {
204   - this.ExportingStart = false;
205   - this.GetSubscriptionReport('1, ' + this.pageLength);
206   - }
  287 +
207 288 ExportEvent() {
208 289 if (this.buttonStatus) {
209 290 this.ExportingStart = true;
210 291 this.GetSubscriptionReport('1, ' + this.recordCount);
211   - this.ExportingStart = false;
212 292 }
213 293 }
214 294 ExportService(data: any) {
215   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
216   - for (let i = 0; i < data.Subscription.length; i++) {
217   - delete data.Subscription[i][this.global.RemoveColumns[c].toString()];
218   - }
219   - }
  295 + for (let i = 0; i < data.Subscription.length; i++) {
  296 + data.Subscription[i]['StartDate']= this.datePipe.transform(data.Subscription[i]['StartDate'], 'MM/dd/yyyy');
  297 + data.Subscription[i]['EndDate']= this.datePipe.transform(data.Subscription[i]['EndDate'], 'MM/dd/yyyy');
  298 + data.Subscription[i]['LicenseCreationDate']= this.datePipe.transform(data.Subscription[i]['LicenseCreationDate'], 'MM/dd/yyyy');
  299 + }
  300 +
  301 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  302 + this.global.ExportToCSV(data.Subscription, "SubscriptionReport-"+reportname);
  303 +
220 304 this._loadingService.HideLoading("global-loading");
221   - this.global.ExportToCSV(data.Subscription, "SubscriptionReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
222   - }
  305 +
  306 + }
223 307 }
... ...
400-SOURCECODE/Admin/src/app/components/Reports/usagereport.component.html
... ... @@ -3,14 +3,14 @@
3 3 font-size: 12px;
4 4 }
5 5 </style>
6   -<div class="row">
  6 +<div class="row" style="margin-right: auto;">
7 7 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
8 8 <h4>Usage Report</h4>
9 9 </div>
10 10 <div class="col-sm-12">
11 11  
12 12 <div class="container-fluid main-full">
13   - <div class="row">
  13 + <div class="row" style="margin-right:-40px">
14 14 <div class="well no-margin-btm">
15 15 <div class="col-xs-12" *ngIf="alerts !== ''">
16 16 <div class="alert alert-danger" [innerHTML]="alerts">
... ... @@ -22,11 +22,12 @@
22 22 <div class="row">
23 23 <div class="col-sm-12">
24 24 <div class="form-group marginTop5">
25   - <label for="FirstDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
  25 + <label for="sFromDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">From Date :</label>
26 26 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
27   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
28   - <input type="text" class="form-control" formControlName="sFromDate" #dp1="bsDatepicker"
29   - bsDatepicker [(bsValue)]="bsValue1" [bsConfig]="bsConfig">
  27 + <div id="sFromDate" class="input-group input-group-sm input-append date">
  28 + <input type="text" class="form-control" formControlName="sFromDate"
  29 + #dp1="bsDatepicker" bsDatepicker [(bsValue)]="bsValue1" (bsValueChange)="FromDateChange(dp1)" (change)="FromDateChange(dp1)"
  30 + [bsConfig]="bsConfig" placeholder="mm/dd/yyyy">
30 31 <span class="input-group-btn add-on">
31 32 <button class="btn btn-default" type="button" (click)="dp1.toggle()"><i class="fa fa-calendar"></i></button>
32 33 </span>
... ... @@ -38,11 +39,12 @@
38 39  
39 40 <div class="col-sm-12">
40 41 <div class="form-group marginTop5">
41   - <label for="ToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
  42 + <label for="sToDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">To Date :</label>
42 43 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
43   - <div id="datetimepicker2" class="input-group input-group-sm input-append date">
44   - <input type="text" class="form-control" [bsConfig]="bsConfig" formControlName="sToDate" #dp2="bsDatepicker"
45   - bsDatepicker [(bsValue)]="bsValue2">
  44 + <div id="sToDate" class="input-group input-group-sm input-append date">
  45 + <input type="text" class="form-control" formControlName="sToDate"
  46 + #dp2="bsDatepicker" bsDatepicker [(bsValue)]="bsValue2" (bsValueChange)="ToDateChange(dp2)" (change)="ToDateChange(dp2)"
  47 + [bsConfig]="bsConfig" placeholder="mm/dd/yyyy">
46 48 <span class="input-group-btn add-on">
47 49 <button class="btn btn-default" type="button" (click)="dp2.toggle()"><i class="fa fa-calendar"></i></button>
48 50 </span>
... ... @@ -106,7 +108,7 @@
106 108  
107 109 <div class="col-sm-12">
108 110 <div class="form-group marginTop5 text-right">
109   - <button class="btn btn-primary btn-sm" data-toggle="modal" (click)="SearchRecords()"><i class="fa fa-file"></i> Generate Report</button>
  111 + <button class="btn btn-primary btn-sm" data-toggle="modal" (click)="SearchRecords()" [disabled]="!UsageReportForm.valid || alerts != ''"><i class="fa fa-file"></i> Generate Report</button>
110 112 <!--modal-->
111 113 <div class="modal fade bs-example-modal-sm text-left" tabindex="-1" role="dialog" id="mymodal">
112 114 <div class="modal-dialog modal-sm" role="document">
... ... @@ -124,10 +126,9 @@
124 126 </div>
125 127 </div>
126 128  
127   - </div><!-- /.modal-content -->
128   - </div><!-- /.modal-dialog -->
129   - </div><!-- /.modal -->
130   - <!--modal-->
  129 + </div>
  130 + </div>
  131 + </div>
131 132 </div>
132 133 </div>
133 134 </div>
... ... @@ -139,49 +140,46 @@
139 140 </div>
140 141  
141 142 <div class="well">
142   - <!--<ng2-smart-table [settings]="settings" [source]="data">
143   - <i class="fa fa-spinner fa-spin" style="font-size:24px"></i>
144   - </ng2-smart-table>-->
145   - <table id="fixed_hdr2" class="table-hover ">
146   - <thead>
147   - <tr>
148   - <th>User Name</th>
149   - <th>First Name</th>
150   - <th>Last Name</th>
151   - <th>Account Number</th>
152   - <th>Institution Name</th>
153   - <th>Credit Card Number</th>
154   - <th>User Type</th>
155   - <th>Zip</th>
156   - <th>State(only U.S.)</th>
157   - <th>Country</th>
158   - <th>Total Login</th>
159   - <th>Original Entry Date</th>
160   - <th>Last Login Date</th>
161   - </tr>
162   - </thead>
163   - <tbody>
164   - <tr *ngIf="NoRecord !== ''">
  143 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
  144 + <thead>
  145 + <tr>
  146 + <th id="LoginId">User Name</th>
  147 + <th id="FirstName">First Name</th>
  148 + <th id="LastName">Last Name</th>
  149 + <th id="AccountNumber">Account Number</th>
  150 + <th id="InstitutionName">Institution Name</th>
  151 + <th id="CardNumber">Card Number</th>
  152 + <th id="UserType">User Type</th>
  153 + <th id="LicenseZip">Zip</th>
  154 + <th id="LicenseState">State(only U.S.)</th>
  155 + <th id="LicenseCountry">Country</th>
  156 + <th id="TotalLogins">Total Login</th>
  157 + <th id="LicenseCreationDate">Org. Entry Date</th>
  158 + <th id="LastLogin">Last Login Date</th>
  159 + </tr>
  160 + </thead>
  161 + <tbody>
  162 + <tr *ngIf="NoRecord !== ''">
165 163  
166   - <td colspan="6"><b style="color: red;text-align: center; padding-left: 606px;"><span [innerHTML]="NoRecord"></span></b></td>
167   - </tr>
168   - <tr *ngFor="let usage of lstUserUsageReport">
169   - <td>{{usage.LoginId}}</td>
170   - <td>{{usage.FirstName}}</td>
171   - <td>{{usage.LastName}}</td>
172   - <td>{{usage.AccountNumber}}</td>
173   - <td>{{usage.InstitutionName}}</td>
174   - <td>{{usage.CardNumber}}</td>
175   - <td>{{usage.UserType}}</td>
176   - <td>{{usage.LicenseZip}}</td>
177   - <td>{{usage.LicenseState}}</td>
178   - <td>{{usage.LicenseCountry}}</td>
179   - <td>{{usage.TotalLogins}}</td>
180   - <td>{{usage.LicenseCreationDate}}</td>
181   - <td>{{usage.LastLogin}}</td>
182   - </tr>
183   - </tbody>
184   - </table>
  164 + <td colspan="6"><b style="color: red;text-align: center; padding-left: 606px;"><span [innerHTML]="NoRecord"></span></b></td>
  165 + </tr>
  166 + <tr *ngFor="let usage of lstUserUsageReport">
  167 + <td>{{usage.LoginId}}</td>
  168 + <td>{{usage.FirstName}}</td>
  169 + <td>{{usage.LastName}}</td>
  170 + <td>{{usage.AccountNumber}}</td>
  171 + <td>{{usage.InstitutionName}}</td>
  172 + <td>{{usage.CardNumber}}</td>
  173 + <td>{{usage.UserType}}</td>
  174 + <td>{{usage.LicenseZip}}</td>
  175 + <td>{{usage.LicenseState}}</td>
  176 + <td>{{usage.LicenseCountry}}</td>
  177 + <td>{{usage.TotalLogins}}</td>
  178 + <td>{{usage.LicenseCreationDate | date: 'MM/dd/yyyy'}}</td>
  179 + <td>{{usage.LastLogin | date: 'MM/dd/yyyy'}}</td>
  180 + </tr>
  181 + </tbody>
  182 + </table>
185 183 <admin-pager [recordCount]="recordCount" [pageNo]="pageNo" [pageLength]="pageLength" (pagerEvent)="GetUsageReport($event)"></admin-pager>
186 184 <div class="row">
187 185 <div class="col-sm-12 marginTop20 text-center">
... ...
400-SOURCECODE/Admin/src/app/components/Reports/usagereport.component.ts
... ... @@ -37,7 +37,6 @@ export class UsageReport implements OnInit, AfterViewChecked {
37 37 limit: number;
38 38 page: number = 1;
39 39 error;
40   - usagereport = new UsageReports();
41 40 modalAlerts: string;
42 41 divClass: string = '';
43 42 topPos: string = '2000px';
... ... @@ -58,76 +57,20 @@ export class UsageReport implements OnInit, AfterViewChecked {
58 57 recordCount: number;
59 58 pageNo: number;
60 59 pageLength: number;
  60 + actualPageNo: number;
  61 + actualPageLength: number;
61 62 DisableAccountNumberControl: boolean;
62   - //Smart Table Setting
63   - settings = {
64   - actions: { add: false, edit: false, delete: false },
65   - pager: {
66   - display: true,
67   - perPage: 50
68   - },
69   - attr: {
70   - class: 'table table-condensed table-bordered table-striped table-hover'
71   - },
72   - columns: {
73   - LoginId: {
74   - title: 'User Name',
75   - width: '140px',
76   - },
77   - FirstName: {
78   - title: 'First Name',
79   - width: '140px'
80   - },
81   - LastName: {
82   - title: 'Last Name',
83   - width: '140px'
84   - },
85   - AccountNumber: {
86   - title: 'Account Number',
87   - width: '140px'
88   - },
89   - InstitutionName: {
90   - title: 'Institution Name',
91   - width: '140px'
92   - },
93   - CardNumber: {
94   - title: 'Credit Card Number',
95   - width: '140px'
96   - }
97   - ,
98   - UserType: {
99   - title: 'User Type',
100   - width: '140px'
101   - },
102   - Zip: {
103   - title: 'Zip',
104   - width: '140px'
105   - },
106   - LicenseState: {
107   - title: 'State(only U.S.)',
108   - width: '140px'
109   - }
110   - ,
111   - LicenseCountry: {
112   - title: 'Country',
113   - width: '140px'
114   - }
115   - ,
116   - TotalLogins: {
117   - title: 'Total Login',
118   - width: '140px'
119   - },
120   - LicenseCreationDate: {
121   - title: 'Original Entry Date',
122   - width: '140px'
123   - },
124   - LastLogin: {
125   - title: 'Last Login Date',
126   - width: '140px'
127   - }
128   -
129   -
130   - }
  63 + SearchField:any={
  64 + sFromDate:new Date(),
  65 + sToDate:new Date(),
  66 + sAccountNumber:'',
  67 + sZip:'',
  68 + iState:0,
  69 + iCountry:0,
  70 + sortColumn:'AccountNumber',
  71 + sortOrder:'asc',
  72 + pageNo:1,
  73 + pageLength:10
131 74 };
132 75  
133 76 // Declare height and width variables
... ... @@ -144,6 +87,9 @@ export class UsageReport implements OnInit, AfterViewChecked {
144 87 {
145 88 this.scrHeight = window.innerHeight-440;
146 89 }
  90 + if(this.scrHeight<=360) this.scrHeight=360;
  91 +
  92 + $(".ft_container").css("height",this.scrHeight);
147 93 }
148 94  
149 95 constructor(private router: Router, private reportservice: ReportService, private fb: FormBuilder,
... ... @@ -156,11 +102,10 @@ export class UsageReport implements OnInit, AfterViewChecked {
156 102 this.buttonStatus = false;
157 103 this.bsConfig = Object.assign({}, { containerClass: 'theme-dark-blue' });
158 104 this.NoRecord = this.global.NoRecords;
159   - let usagereport = new UsageReports();
160 105 this.previousdate.setDate(this.previousdate.getDate());
161 106 this.UsageReportForm = this.fb.group({
162   - sFromDate: [this.previousdate],
163   - sToDate: [this.date],
  107 + sFromDate: [this.previousdate,[Validators.required]],
  108 + sToDate: [this.date,[Validators.required]],
164 109 sAccountNumber: [''],
165 110 sZip: [''],
166 111 iState: [0],
... ... @@ -178,75 +123,140 @@ export class UsageReport implements OnInit, AfterViewChecked {
178 123 this.pageNo = 0;
179 124 this.pageLength = 10;
180 125 this.pagerComponent = new PagerComponent();
181   - this.GetUsageReport('1, ' + this.pageLength);
  126 +
182 127 $('#fixed_hdr2').fxdHdrCol({
183 128 fixedCols: 0,
184 129 width: "100%",
185 130 height: this.scrHeight,
186 131 colModal: [
187   - { width: 150, align: 'center' },
188   - { width: 150, align: 'center' },
189   - { width: 150, align: 'Center' },
190   - { width: 150, align: 'Center' },
191   - { width: 300, align: 'Center' },
192   - { width: 150, align: 'Center' },
  132 + { width: 140, align: 'center' },
  133 + { width: 140, align: 'center' },
  134 + { width: 140, align: 'Center' },
  135 + { width: 140, align: 'Center' },
  136 + { width: 200, align: 'Center' },
  137 + { width: 120, align: 'Center' },
193 138 { width: 130, align: 'Center' },
194   - { width: 120, align: 'center' },
  139 + { width: 90, align: 'center' },
195 140 { width: 150, align: 'Center' },
196 141 { width: 140, align: 'center' },
197 142 { width: 100, align: 'center' },
198   - { width: 150, align: 'center' },
199   - { width: 120, align: 'center' },
200   - // { width: 150, align: 'center' },
201   - // { width: 150, align: 'center' },
202   - // { width: 180, align: 'Center' },
203   - // { width: 400, align: 'Center' },
204   - // { width: 150, align: 'center' },
205   - // { width: 110, align: 'center' },
  143 + { width: 130, align: 'center' },
  144 + { width: 130, align: 'center' },
  145 +
206 146 ],
207 147 sort: true
208 148 });
209   - if(document.getElementById("fixed_table_rc") != null){
210   - document.getElementById("fixed_table_rc").remove();
211   - var testScript = document.createElement("script");
212   - testScript.setAttribute("id", "fixed_table_rc");
213   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
214   - testScript.setAttribute("type", "text/javascript");
215   - document.body.appendChild(testScript);
216   - }
  149 +
  150 + var thisObject=this;//class object
  151 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  152 +
  153 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null)
  154 + {
  155 + var fieldName=event.currentTarget.id;
  156 + var sortType=''
  157 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  158 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  159 +
  160 + if (isAscSort) {
  161 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  162 + sortType="desc";
  163 + } else {
  164 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  165 + sortType="asc";
  166 + }
  167 +
  168 + thisObject.SortTableRecords(fieldName,sortType);
  169 +
  170 + }
  171 +
  172 + });
217 173  
218 174 }
219 175  
220   - GetUsageReport(evt: any) {
221   - var tempArr = evt.split(',');
222   - this.pageNo = parseInt(tempArr[0]);
223   - var actulalength=this.pageLength;
224   - this.pageLength = parseInt(tempArr[1]);
225   - this.alerts = '';
226   - this.global.compareTwoDates(this.UsageReportForm.controls['sToDate'].value, this.UsageReportForm.controls['sFromDate'].value);
  176 +
  177 + FromDateChange(dateValue: any){
  178 + this.alerts = '';
  179 + this.global.compareTwoDates(this.UsageReportForm.controls['sToDate'].value, dateValue._bsValue);
227 180 if (this.global.ValidationMsg != '') {
228   - this.alerts = this.global.ValidationMsg
229   - }
230   - if (this.alerts == '') {
231   - this._loadingService.ShowLoading("global-loading");
232   - this.usagereport = this.UsageReportForm.value;
233   - var obj = this.usagereport;
234   - if (this.ExportingStart) {
235   - this.reportservice.GetUsageReport(obj,this.pageNo, this.pageLength).subscribe((UsageReports: UsageReports[]) => {
236   - //reset length after csvexport
237   - this.pageLength=actulalength;
238   - this.ExportService(UsageReports); }, error => this.error = <any>error);
239   - }
240   - else {
241   - this.reportservice.GetUsageReport(obj, this.pageNo, this.pageLength).subscribe((UsageReports: UsageReports[]) => { this.BindFormFields(UsageReports); }, error => this.error = <any>error);
242   - }
243   -
244   - }
  181 + this.alerts = this.global.ValidationMsg;
  182 + }
  183 + }
  184 + ToDateChange(dateValue: any){
  185 + this.alerts = '';
  186 + this.global.compareTwoDates(dateValue._bsValue, this.UsageReportForm.controls['sFromDate'].value);
  187 + if (this.global.ValidationMsg != '') {
  188 + this.alerts = this.global.ValidationMsg;
  189 + }
  190 + }
  191 +
  192 + SortTableRecords(fieldName:string,sortType:string) {
  193 + this.SearchField.sortColumn=fieldName;
  194 + this.SearchField.sortOrder=sortType;
  195 +
  196 + this.GetUsageReportList();
  197 + }
  198 +
  199 + GetUsageReport(evt: any) {
  200 + this.actualPageNo = this.pageNo;
  201 + this.actualPageLength =this.pageLength;
  202 +
  203 + var tempArr = evt.split(',');
  204 + this.pageNo = parseInt(tempArr[0]);
  205 + this.pageLength = parseInt(tempArr[1]);
  206 +
  207 + this.SearchField.pageNo=this.pageNo;
  208 + this.SearchField.pageLength=this.pageLength;
  209 +
  210 + this.GetUsageReportList();
  211 +
245 212 }
246   - SearchRecords() {
  213 +
  214 + GetUsageReportList() {
  215 + this._loadingService.ShowLoading("global-loading");
  216 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  217 +
  218 + if (this.SearchField.sortOrder=='asc') {
  219 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  220 + } else
  221 + {
  222 + $(".ft_rwrapper table thead tr #"+this.SearchField.sortColumn).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  223 + }
  224 +
  225 + if (this.ExportingStart) {
  226 + this.reportservice.GetUsageReport(this.SearchField).subscribe((UsageReports: UsageReports[]) => {
  227 + //reset length after csvexport
  228 + this.pageNo = this.actualPageNo;
  229 + this.pageLength=this.actualPageLength;
  230 +
  231 + this.SearchField.pageNo=this.pageNo;
  232 + this.SearchField.pageLength=this.pageLength;
  233 +
  234 + this.ExportService(UsageReports); }, error => this.error = <any>error);
  235 + }
  236 + else {
  237 + this.reportservice.GetUsageReport(this.SearchField).subscribe((UsageReports: UsageReports[]) => { this.BindFormFields(UsageReports); }, error => this.error = <any>error);
  238 + }
  239 +
  240 + this.ExportingStart = false;
  241 + }
  242 +
  243 +
  244 + SearchRecords() {
247 245 this.ExportingStart = false;
248   - this.GetUsageReport('1, ' + this.pageLength);
  246 + this.pageNo=1;
  247 + this.SearchField.sFromDate=this.UsageReportForm.controls['sFromDate'].value;
  248 + this.SearchField.sToDate=this.UsageReportForm.controls['sToDate'].value;
  249 + this.SearchField.sAccountNumber=this.UsageReportForm.controls['sAccountNumber'].value;
  250 + this.SearchField.sZip=this.UsageReportForm.controls['sZip'].value;
  251 + this.SearchField.iState=this.UsageReportForm.controls['iState'].value;
  252 + this.SearchField.iCountry=this.UsageReportForm.controls['iCountry'].value;
  253 +
  254 + this.SearchField.pageNo=this.pageNo;
  255 +
  256 + this.GetUsageReportList();
  257 +
249 258 }
  259 +
250 260 GetCountry() {
251 261 this.reportservice.GetCountry().subscribe(y => { this.lstCountry = y; }, error => this.error = <any>error);
252 262 }
... ... @@ -275,16 +285,18 @@ export class UsageReport implements OnInit, AfterViewChecked {
275 285 if (this.buttonStatus) {
276 286 this.ExportingStart = true;
277 287 this.GetUsageReport('1,' + this.recordCount);
278   - this.ExportingStart = false;
279 288 }
280 289 }
281 290 ExportService(data: any) {
282   - for (let c = 0; c < this.global.RemoveColumns.length; c++) {
283   - for (let i = 0; i < data.UserUsage.length; i++) {
284   - delete data.UserUsage[i][this.global.RemoveColumns[c].toString()];
285   - }
286   - }
  291 + for (let i = 0; i < data.UserUsage.length; i++) {
  292 + data.UserUsage[i]['LicenseCreationDate']= this.datePipe.transform(data.UserUsage[i]['LicenseCreationDate'], 'MM/dd/yyyy');
  293 + data.UserUsage[i]['LastLogin']= this.datePipe.transform(data.UserUsage[i]['LastLogin'], 'MM/dd/yyyy');
  294 + }
  295 +
  296 + var reportname=+ this.date.getDay() + "-" + (this.date.getMonth()+1) + "-" + this.date.getSeconds()
  297 + this.global.ExportToCSV(data.UserUsage, "UsageReport-"+reportname);
  298 +
287 299 this._loadingService.HideLoading("global-loading");
288   - this.global.ExportToCSV(data.UserUsage, "UsageReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
  300 +
289 301 }
290 302 }
... ...
400-SOURCECODE/Admin/src/app/components/SubscriptionPrice/subscriptionprice.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <!-- main-heading -->
3 3 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
4 4  
... ... @@ -43,7 +43,7 @@
43 43 <div class="container-fluid main-full">
44 44 <!-- form -->
45 45 <form class="form" [formGroup]="subscriptionPriceFrm" (submit)="UpdateSubscriptionPrices(templatesuccess)">
46   - <div [style.display]="(Mode == 'Search') ? 'block' : 'none'" class="row">
  46 + <div [style.display]="(Mode == 'Search') ? 'block' : 'none'" class="row" style="margin-right:-40px;margin-left:-30px">
47 47  
48 48 <div class="well marginBtm12">
49 49 <div class="form-group" *ngIf="alerts != ''">
... ... @@ -70,14 +70,14 @@
70 70 <div role="tabpanel" class="tab-pane active" id="higher-edu">
71 71 <div class="table-responsive blue">
72 72 <!--<table class="table table-condensed table-bordered margin-btm0 table-striped table-hover">-->
73   - <table id="fixed_hdr2" class="table-hover ">
  73 + <table id="fixed_hdr2" class="table-hover ui-widget-header sorttable">
74 74 <thead>
75 75 <tr>
76   - <th>Select</th>
77   - <th>Subscription Type</th>
78   - <th>Duration(in Month)</th>
79   - <th>Price</th>
80   - <th>Active</th>
  76 + <th id="unknown">Select</th>
  77 + <th id="Title">Subscription Type</th>
  78 + <th id="Duration">Duration(in Month)</th>
  79 + <th id="Price">Price</th>
  80 + <th id="IsActive">Active</th>
81 81 </tr>
82 82 </thead>
83 83 <tbody>
... ...
400-SOURCECODE/Admin/src/app/components/SubscriptionPrice/subscriptionprice.component.ts
... ... @@ -44,6 +44,13 @@ RecordDeleted: number[];
44 44 // Declare height and width variables
45 45 scrHeight:any;
46 46 scrWidth:any;
  47 + SearchField:any={
  48 + editionId:1,
  49 + sortColumn:'Id',
  50 + sortOrder:'asc',
  51 + pageNo:1,
  52 + pageLength:10
  53 + }
47 54 @HostListener('window:resize', ['$event'])
48 55 getScreenSize(event?) {
49 56  
... ... @@ -53,8 +60,11 @@ getScreenSize(event?) {
53 60 }
54 61 else
55 62 {
56   - this.scrHeight = window.innerHeight-350;
  63 + this.scrHeight = window.innerHeight-330;
57 64 }
  65 + if(this.scrHeight<=360) this.scrHeight=360;
  66 +
  67 + $(".ft_container").css("height",this.scrHeight);
58 68 }
59 69  
60 70 constructor(private subscriptionPriceService: SubscriptionPriceService, private router: Router,
... ... @@ -97,15 +107,41 @@ getScreenSize(event?) {
97 107 this.recordCount = 0;
98 108 this.pagerComponent = new PagerComponent();
99 109  
100   - if(document.getElementById("fixed_table_rc") != null){
101   - document.getElementById("fixed_table_rc").remove();
102   - var testScript = document.createElement("script");
103   - testScript.setAttribute("id", "fixed_table_rc");
104   - testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
105   - testScript.setAttribute("type", "text/javascript");
106   - document.body.appendChild(testScript);
107   - }
  110 + // if(document.getElementById("fixed_table_rc") != null){
  111 + // document.getElementById("fixed_table_rc").remove();
  112 + // var testScript = document.createElement("script");
  113 + // testScript.setAttribute("id", "fixed_table_rc");
  114 + // testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
  115 + // testScript.setAttribute("type", "text/javascript");
  116 + // document.body.appendChild(testScript);
  117 + // }
  118 +
  119 + var thisObject=this;//class object
  120 + $(".ft_rwrapper table thead tr th").on("click",function(event){
  121 +
  122 + if(event.currentTarget.id!=undefined && event.currentTarget.id!="" && event.currentTarget.id!=null && event.currentTarget.id!="unknown")
  123 + {
  124 + var fieldName=event.currentTarget.id;
  125 + var sortType=''
  126 + var isAscSort = $(".ft_rwrapper table thead tr #"+fieldName).hasClass('fx_sort_asc');
  127 + $(".ft_rwrapper table thead tr th").removeClass('fx_sort_asc fx_sort_desc');
  128 + $(".ft_rwrapper table thead tr #unknown").removeClass('fx_sort_bg');
  129 +
  130 + if (isAscSort) {
  131 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_desc').removeClass('fx_sort_asc');
  132 + sortType="desc";
  133 + } else {
  134 + $(".ft_rwrapper table thead tr #"+fieldName).addClass('fx_sort_asc').removeClass('fx_sort_desc');
  135 + sortType="asc";
  136 + }
  137 +
  138 + thisObject.SortTableRecords(fieldName,sortType);
  139 +
  140 + }
  141 +
  142 + });
108 143 }
  144 +
109 145 public noWhitespaceValidator(control: FormControl) {
110 146 // new validation for intial whaite space
111 147 //****Birendra *****/
... ... @@ -134,29 +170,40 @@ getScreenSize(event?) {
134 170  
135 171 }
136 172  
  173 + SortTableRecords(fieldName:string,sortType:string) {
  174 + this.SearchField.sortColumn=fieldName;
  175 + this.SearchField.sortOrder=sortType;
  176 +
  177 + this.GetPriceList();
  178 + }
  179 +
137 180 public SearchSubscriptionPrices(evt: any) {
138   - if (this.global.ValidationMsg != '') {
139   - this.alerts = this.global.ValidationMsg
140   - }
141   - if (this.alerts != '') return;
142   - this._loadingService.ShowLoading("global-loading");
143 181 var tempArr = evt.split(',');
144 182 this.pageNo = parseInt(tempArr[0]);
145 183 this.pageLength = parseInt(tempArr[1]);
146   - this._loadingService.ShowLoading("global-loading");
147   - this.subscriptionPriceService.GetSubscriptionPrices(
148   - {
149   - editionId: this.selectedEditionId,
150   - pageNo: this.pageNo,
151   - pageLength: this.pageLength
152   - })
153   - .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  184 + this.SearchField.pageNo=this.pageNo;
  185 + this.SearchField.pageLength=this.pageLength;
  186 +
  187 + this.GetPriceList();
  188 +
154 189 }
155 190  
156 191 SearchRecords(searchEditionId: number) {
157   - this.selectedEditionId = searchEditionId;
158   - this.SearchSubscriptionPrices('1, ' + this.pageLength);
  192 + this.selectedEditionId = searchEditionId;
  193 + this.pageNo=1;
  194 + this.SearchField.editionId=this.selectedEditionId;
  195 + this.SearchField.pageNo=this.pageNo;
  196 +
  197 + this.GetPriceList();
159 198 }
  199 +
  200 + GetPriceList() {
  201 + this._loadingService.ShowLoading("global-loading");
  202 + $(".ft_rwrapper table thead tr #unknown").removeClass('fx_sort_bg');
  203 + this.subscriptionPriceService.GetSubscriptionPrices(this.SearchField)
  204 + .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  205 +
  206 + }
160 207  
161 208 openModal(template: TemplateRef<any>) {
162 209 if(this.checkedRecords.filter(C => C > 0).length == 0) return;
... ... @@ -174,7 +221,6 @@ getScreenSize(event?) {
174 221  
175 222 AfterDeleteData(data, template) {
176 223 if (data.Status == "false") {
177   - //this.alerts = "<span>Subscription prices delete unsuccessfull</span>";
178 224 this._confirmService.activate("Subscription prices delete unsuccessfull", "alertMsg");
179 225 } else {
180 226 this.modalAlerts = "<p>Subscription prices deleted successfully</p>";
... ... @@ -185,29 +231,26 @@ getScreenSize(event?) {
185 231  
186 232 AfterInsertData(data, template) {
187 233 if (data.Status == "false") {
188   - // this.alerts = "<span>Subscription price save unsuccessfull</span>";
189 234 this.modalAlerts = "<p>Subscription insert unsuccessfull</p>";
190 235 this.modalRef = this.modalService.show(template);
191   - // this._confirmService.activate("Subscription insert unsuccessfull", "alertMsg");
  236 + this._loadingService.HideLoading("global-loading");
192 237 } else {
193 238 this._confirmService.activate("Subscription saved successfull", "alertMsg");
194   - //this.modalAlerts = "<p>Subscriptions saved successfully</p>";
195 239 this.CancelAdd();
196   - //this.modalRef = this.modalService.show(template);
  240 +
197 241 }
  242 +
198 243 }
199 244  
200 245 AfterUpdateData(data, template) {
201 246 if (data.Status == "false") {
202 247 this.modalAlerts = "<p>Subscription prices update unsuccessfull</p>";
203 248 this.modalRef = this.modalService.show(template);
204   - //this.alerts = "<span>Subscription prices update unsuccessfull</span>\n";
205   - //this._confirmService.activate("Subscription prices update unsuccessfull", "alertMsg");
  249 +
206 250 } else {
207 251 this._confirmService.activate("Subscriptions updated successfully", "alertMsg");
208   - //this.modalAlerts = "<p>Subscriptions updated successfully</p>";
209   - //this.modalRef = this.modalService.show(template);
210 252 }
  253 + this._loadingService.HideLoading("global-loading");
211 254 }
212 255  
213 256 BindFormFields(data){
... ... @@ -229,10 +272,12 @@ getScreenSize(event?) {
229 272 console.log(this.subscriptionPriceFrm.value);
230 273 this.alerts = '';
231 274 if(this.alerts == ''){
  275 + this._loadingService.ShowLoading("global-loading");
232 276 var obj = this.subscriptionPriceFrm.controls['subscriptionPrices'].value;
233 277 this.subscriptionPriceService.UpdateSubscriptionPrices(obj).subscribe(
234 278 data => (this.AfterUpdateData(data, template)),
235 279 error => {
  280 + this._loadingService.HideLoading("global-loading");
236 281 this.error = <any>error;
237 282 this.alerts = "<span>" + this.error + "</span>";
238 283 });
... ... @@ -243,6 +288,7 @@ getScreenSize(event?) {
243 288 console.log(this.insertSubscriptionPriceFrm.value);
244 289 this.alerts = '';
245 290 if(this.alerts == ''){
  291 + this._loadingService.ShowLoading("global-loading");
246 292 var obj = this.insertSubscriptionPriceFrm.value;
247 293 return this.subscriptionPriceService.InsertSubscriptionPrice(obj)
248 294 .subscribe(
... ... @@ -262,6 +308,7 @@ getScreenSize(event?) {
262 308 var unDeletedSubscriptions = '';
263 309 let cnt = 0;
264 310 if(this.alerts == ''){
  311 + this._loadingService.ShowLoading("global-loading");
265 312 this.RecordDeleted = [];
266 313 this.checkedRecords.filter(C => C > 0).forEach(element => {
267 314 this.subscriptionPriceService.CheckSubscriptionPlanForLicense(element)
... ...
400-SOURCECODE/Admin/src/app/components/SubscriptionPrice/subscriptionprice.service.ts
... ... @@ -16,7 +16,12 @@ export class SubscriptionPriceService {
16 16  
17 17 GetSubscriptionPrices(obj: any) {
18 18 return this.http.get(this.commonService.resourceBaseUrl + "SubscriptionPrice/GetSubscriptionPrices?editionId="
19   - + obj.editionId + "&pageNo=" + obj.pageNo + "&pageLength=" + obj.pageLength)
  19 + + obj.editionId
  20 + + "&sortColumn=" + obj.sortColumn
  21 + + "&sortOrder=" + obj.sortOrder
  22 + + "&pageNo=" + obj.pageNo
  23 + + "&pageLength=" + obj.pageLength
  24 + )
20 25 .map(this.extractData)
21 26 .catch((res: Response) => this.handleError(res));
22 27 }
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/changeuserid.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <!-- main-heading -->
3 3 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
4 4 <h4> Change User ID</h4>
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/changeuserpassword.component.html
1   -<div class="row">
  1 +<div class="row" style="margin-right: auto;">
2 2 <!-- main-heading -->
3 3 <div class="col-sm-12 pageHeading" style="margin-left: 15px;">
4 4 <h4> Change Password</h4>
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/datamodel.ts
... ... @@ -71,6 +71,7 @@ export class License {
71 71 MasterSiteUrl: string;
72 72 SiteUrlFrom: string;
73 73 SiteUrlTo: string;
  74 + SiteUserId: number;
74 75 LoginId: string;
75 76 Password: string;
76 77 SecurityQuestionId: number;
... ...