Commit 1d9b6982ef4e4d830aed3465a45dbf793675524f

Authored by Utkarsh Singh
1 parent 8566ff1d

Commit for Forgot UserID, Password, Reset password

400-SOURCECODE/AIAHTML5.API/AIAHTML5.API.csproj
... ... @@ -96,6 +96,8 @@
96 96 <ItemGroup>
97 97 <Content Include="Global.asax" />
98 98 <Content Include="index.html" />
  99 + <Content Include="Templates\forgot-Password.html" />
  100 + <Content Include="Templates\forgot-UserId.html" />
99 101 <Content Include="Web.config">
100 102 <SubType>Designer</SubType>
101 103 </Content>
... ... @@ -104,9 +106,12 @@
104 106 <Compile Include="App_Start\WebApiConfig.cs" />
105 107 <Compile Include="Constants\AIAConstants.cs" />
106 108 <Compile Include="Controllers\AuthenticateController.cs" />
  109 + <Compile Include="Controllers\ForgotUserController.cs" />
  110 + <Compile Include="Controllers\ResetPasswordController.cs" />
107 111 <Compile Include="Global.asax.cs">
108 112 <DependentUpon>Global.asax</DependentUpon>
109 113 </Compile>
  114 + <Compile Include="Models\ResetUser.cs" />
110 115 <Compile Include="Models\Users.cs" />
111 116 <Compile Include="Properties\AssemblyInfo.cs" />
112 117 <Compile Include="Properties\Settings.Designer.cs">
... ... @@ -114,6 +119,7 @@
114 119 <DesignTimeSharedInput>True</DesignTimeSharedInput>
115 120 <DependentUpon>Settings.settings</DependentUpon>
116 121 </Compile>
  122 + <Compile Include="Utility\EmailUtility.cs" />
117 123 </ItemGroup>
118 124 <ItemGroup>
119 125 <Content Include="Logs\AIALogs.log" />
... ...
400-SOURCECODE/AIAHTML5.API/AIAHTML5.API.csproj.user
... ... @@ -6,6 +6,7 @@
6 6 <WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
7 7 <WebStackScaffolding_LayoutPageFile />
8 8 <WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
  9 + <ProjectView>ShowAllFiles</ProjectView>
9 10 </PropertyGroup>
10 11 <ProjectExtensions>
11 12 <VisualStudio>
... ...
400-SOURCECODE/AIAHTML5.API/Controllers/ForgotUserController.cs 0 → 100644
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Net;
  5 +using System.Net.Http;
  6 +using System.Web.Http;
  7 +using AIAHTML5.API.Constants;
  8 +using log4net;
  9 +using Newtonsoft.Json;
  10 +using Newtonsoft.Json.Linq;
  11 +using AIAHTML5.API.Models;
  12 +using AIAHTML5.API.Utility;
  13 +
  14 +namespace AIAHTML5.API.Controllers
  15 +{
  16 + public class ForgotUserController : ApiController
  17 + {
  18 + // GET api/<controller>
  19 + public IEnumerable<string> Get()
  20 + {
  21 + return new string[] { "value1", "value2" };
  22 + }
  23 +
  24 + // GET api/<controller>/5
  25 + public string Get(int id)
  26 + {
  27 + return "value";
  28 + }
  29 +
  30 + // POST api/<controller>
  31 + //public void Post([FromBody]string value)
  32 + //{
  33 + //}
  34 + public HttpResponseMessage Post([FromBody]JObject userInfo)
  35 + {
  36 + ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
  37 + logger.Debug("inside POST");
  38 + //UserInfo userData = new UserInfo();
  39 + //dynamic userData = AIAHTML5.API.Models.Users.GetUserByEmail(userEmail);
  40 + //dynamic userData = AIAHTML5.API.Models.Users.GetUserByEmail(userInfo);
  41 + //userData = AIAHTML5.API.Models.Users.GetUserByEmail(userInfo);
  42 + dynamic userData = AIAHTML5.API.Models.Users.GetUserByEmail(userInfo);
  43 + if (Convert.ToString(userData) != AIAConstants.USER_NOT_FOUND && Convert.ToString(userData) != AIAConstants.ERROR_IN_FECTHING_DETAILS)
  44 + {
  45 + bool res = false;
  46 + string userDetails = Newtonsoft.Json.JsonConvert.SerializeObject(userData);
  47 + if (Convert.ToBoolean(userInfo["isPassword"]))
  48 + res = AIAHTML5.API.Models.ResetUser.SendEmail(userData, true);
  49 + else
  50 + res = AIAHTML5.API.Models.ResetUser.SendEmail(userData, false);
  51 +
  52 + if (res)
  53 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userDetails) };
  54 + else
  55 + return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(userData) };
  56 + }
  57 + else
  58 + {
  59 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userData) }; //new StringContent(userData)
  60 +
  61 + }
  62 + }
  63 +
  64 +
  65 + //public HttpResponseMessage Post([FromBody]JObject userInfo)
  66 + //{
  67 + // ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
  68 + // logger.Debug("inside POST");
  69 + // //UserInfo userData = new UserInfo();
  70 + // //dynamic userData = AIAHTML5.API.Models.Users.GetUserByEmail(userEmail);
  71 + // //dynamic userData = AIAHTML5.API.Models.Users.GetUserByEmail(userInfo);
  72 + // //userData = AIAHTML5.API.Models.Users.GetUserByEmail(userInfo);
  73 + // dynamic userData = AIAHTML5.API.Models.Users.GetUserByEmail(userInfo);
  74 + // if (Convert.ToString(userData) != AIAConstants.USER_NOT_FOUND && Convert.ToString(userData) != AIAConstants.ERROR_IN_FECTHING_DETAILS)
  75 + // {
  76 + // bool res = false;
  77 + // string userDetails = Newtonsoft.Json.JsonConvert.SerializeObject(userData);
  78 + // if (Convert.ToBoolean(userInfo["isPassword"]))
  79 + // res = AIAHTML5.API.Models.ResetUser.SendEmail(userData, true);
  80 + // else
  81 + // res = AIAHTML5.API.Models.ResetUser.SendEmail(userData, false);
  82 +
  83 + // if (res)
  84 + // return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userDetails) };
  85 + // else
  86 + // return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(userData) };
  87 + // }
  88 + // else
  89 + // {
  90 + // return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userData) }; //new StringContent(userData)
  91 +
  92 + // }
  93 + //}
  94 + // PUT api/<controller>/5
  95 + public void Put(int id, [FromBody]string value)
  96 + {
  97 + }
  98 +
  99 + // DELETE api/<controller>/5
  100 + public void Delete(int id)
  101 + {
  102 + }
  103 + }
  104 +}
0 105 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Controllers/ResetPasswordController.cs 0 → 100644
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Net;
  5 +using System.Net.Http;
  6 +using System.Web.Http;
  7 +using AIAHTML5.API.Constants;
  8 +using log4net;
  9 +using Newtonsoft.Json;
  10 +using Newtonsoft.Json.Linq;
  11 +using AIAHTML5.API.Models;
  12 +using AIAHTML5.API.Utility;
  13 +
  14 +namespace AIAHTML5.API.Controllers
  15 +{
  16 + public class ResetPasswordController : ApiController
  17 + {
  18 + // GET api/<controller>
  19 + public IEnumerable<string> Get()
  20 + {
  21 + return new string[] { "value1", "value2" };
  22 + }
  23 +
  24 + // GET api/<controller>/5
  25 + public string Get(int id)
  26 + {
  27 + return "value";
  28 + }
  29 +
  30 + // POST api/<controller>
  31 + //public void Post([FromBody]string value)
  32 + //{
  33 + //}
  34 + public HttpResponseMessage Post([FromBody]JObject userInfo)
  35 + {
  36 + ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
  37 + logger.Debug("inside POST");
  38 + dynamic userData = AIAHTML5.API.Models.Users.GetUserByEmail(userInfo);
  39 + if (Convert.ToString(userData) != AIAConstants.USER_NOT_FOUND && Convert.ToString(userData) != AIAConstants.ERROR_IN_FECTHING_DETAILS)
  40 + {
  41 + dynamic updatedInfo = AIAHTML5.API.Models.Users.UpdatePassword(userInfo);
  42 + string upInfo = Newtonsoft.Json.JsonConvert.SerializeObject(updatedInfo);
  43 + if(!string.IsNullOrEmpty(Convert.ToString(updatedInfo)))
  44 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(upInfo) };
  45 + else
  46 + return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(userData) };
  47 + }
  48 + else
  49 + {
  50 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userData) }; //new StringContent(userData)
  51 +
  52 + }
  53 + }
  54 +
  55 + // PUT api/<controller>/5
  56 + public void Put(int id, [FromBody]string value)
  57 + {
  58 + }
  59 +
  60 + // DELETE api/<controller>/5
  61 + public void Delete(int id)
  62 + {
  63 + }
  64 + }
  65 +}
0 66 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Models/ResetUser.cs 0 → 100644
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Web;
  5 +using MongoDB.Driver;
  6 +using MongoDB.Bson;
  7 +using AIAHTML5.API.Properties;
  8 +using AIAHTML5.API.Constants;
  9 +using log4net;
  10 +using System.Net.Mail;
  11 +using AIAHTML5.API.Utility;
  12 +using System.Text;
  13 +using System.IO;
  14 +using System.Net.Mime;
  15 +
  16 +namespace AIAHTML5.API.Models
  17 +{
  18 + public class ResetUser
  19 + {
  20 + public static bool SendEmail(dynamic UserDetails, bool isPassword)
  21 + {
  22 + try
  23 + {
  24 + List<LinkedResource> lstLinkedResource = new List<LinkedResource>();
  25 + EmailUtility sEmailUtility = new EmailUtility();
  26 + List<string> lstToAddress = new List<string>();
  27 + List<string> lstBccAddress = new List<string>();
  28 + LinkedResource LinkImage;
  29 + string ParseText = "";
  30 + int TextPos = 0;
  31 + int MinPos = 0;
  32 + string ImgSrc = "";
  33 + int Counter = 0;
  34 + string sEmailText = string.Empty;
  35 + string _userId = string.Empty;
  36 + string _password = string.Empty;
  37 + string _userMail = string.Empty;
  38 + string _userName = string.Empty;
  39 + string _fName = string.Empty;
  40 + string _lName = string.Empty;
  41 +
  42 + foreach (KeyValuePair<string, object> kvp in UserDetails)
  43 + {
  44 + if (kvp.Key == "loginId")
  45 + _userId = kvp.Value.ToString();
  46 +
  47 + if (kvp.Key == "password")
  48 + _password = kvp.Value.ToString();
  49 +
  50 + if (kvp.Key == "emailId")
  51 + _userMail = kvp.Value.ToString();
  52 +
  53 + if (kvp.Key == "firstName")
  54 + _fName = kvp.Value.ToString();
  55 +
  56 + if (kvp.Key == "lastName")
  57 + _lName = kvp.Value.ToString();
  58 + }
  59 +
  60 + string _fullName = _fName + " " + _lName;
  61 +
  62 + ImgSrc = "//52.2.38.120/content/images/common/logo-large.png";
  63 + ImgSrc = "//192.168.86.34:82/content/images/common/logo-large.png";
  64 + string _logoPath = HttpContext.Current.Server.MapPath("//52.2.38.120/content/images/common/logo-large.png");
  65 +
  66 + string _templatePath = string.Empty;
  67 +
  68 + if (!isPassword)
  69 + _templatePath = "~/Templates/forgot-UserId.html";
  70 + else
  71 + _templatePath = "~/Templates/forgot-Password.html";
  72 +
  73 + string _resetPassLink = "//192.168.86.34:82?e:"+ HttpUtility.UrlEncode(_userMail);
  74 +
  75 +
  76 +
  77 + string mailBody = ResetUser.ReadMailBodyTextFromFile(_templatePath, _userId, _password, _userMail, _fullName, _resetPassLink);
  78 + //sBody.Append("<style type='text/css'>strong {font-size: 18px;color: #ffff00;}</style><table width='500' border='0' align='center' cellpadding='0' cellspacing='0'><tbody><tr><td align='center' valign='middle' bgcolor='#393939' style='padding:30px 0 20px 0;'><a href='#'><img src='{logoPath}' alt='AIA' title='AIA' /></a></td></tr><tr><td align='center' valign='top' bgcolor='#808d43' style='padding:20px;'><table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'><tbody><tr><td colspan='2' style=' font-size:32px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>Forgot UserID</td></tr><tr><td colspan='2'>&nbsp;</td><tr><td colspan='2' style='font-size:20px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>Hello {userName}</td><tr><td colspan='2'>&nbsp;</td></tr><tr><td colspan='2' style=' font-size:16px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>You have requested your 'Login ID' for following account: {emailId}</td></tr><tr><td colspan='2'>&nbsp;</td></tr><tr><td colspan='2' style=' font-size:18px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#fff;'>Your login ID is: <strong>{loginId}</strong></td></tr><tr><td colspan='2'>&nbsp;</td></tr><tr><td colspan='2'>&nbsp;</td></tr><tr><td colspan='2'>&nbsp;</td></tr></tbody></table></td></tr><tr><td bgcolor='#f9f2e7' style='padding:20px;'><table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'><tbody><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>A.D.A.M. – the company that pioneered online health content – is dedicated to creating and offering the most effective and innovative educational solutions possible for teaching medical science and improving health literacy.</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>Give us a <b>call toll-free at 1-888-278-9614</b> or <em>send us an email</em> if you have any questions or if you need help. It will be our pleasure to help you.</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'><em>&copy; 2017 Ebix, Inc. All Rights Reserved. </em></td></tr></tbody></table></td></tr></tbody></table>");
  79 +
  80 + lstToAddress.Add(_userMail);
  81 +
  82 + sEmailText = mailBody;
  83 +
  84 + // for embedding images in email
  85 + if (sEmailText.Contains("<img"))
  86 + {
  87 + ParseText = sEmailText;
  88 + TextPos = ParseText.IndexOf("<img", TextPos);
  89 + while (TextPos != -1)
  90 + {
  91 + TextPos = ParseText.IndexOf("src", TextPos) + 5;
  92 + MinPos = ParseText.IndexOf('"', TextPos);
  93 + //ImgSrc = ParseText.Substring(TextPos, MinPos - TextPos);
  94 + string ImagePath = HttpContext.Current.Server.MapPath(ImgSrc);
  95 + LinkImage = new LinkedResource(ImagePath);
  96 + Counter++;
  97 + LinkImage.ContentId = "Img" + Counter;
  98 + sEmailText = sEmailText.Replace("\"" + ImgSrc + "\"", "cid:" + LinkImage.ContentId);
  99 + lstLinkedResource.Add(LinkImage);
  100 + TextPos = ParseText.IndexOf("<img", TextPos);
  101 + }
  102 + }
  103 +
  104 + string _mailSubject = string.Empty;
  105 + if(!isPassword)
  106 + _mailSubject = "UserID recovery mail for: ";
  107 + else
  108 + _mailSubject = "Password recovery mail for: ";
  109 +
  110 +
  111 + //LinkedResource logoImage = new LinkedResource(ImgSrc);
  112 + ////logoImage.ContentType = MediaTypeNames.Image.Gif;
  113 + //logoImage.ContentId = "logo-large";
  114 + //lstLinkedResource.Add(logoImage);
  115 +
  116 + //sEmailUtility.sAlternateView = AlternateView.CreateAlternateViewFromString(sEmailText, null, "text/html");
  117 + //foreach (var sItem in lstLinkedResource)
  118 + //{
  119 + // sEmailUtility.sAlternateView.LinkedResources.Add(sItem);
  120 + //}
  121 +
  122 +
  123 +
  124 +
  125 + sEmailUtility.sHostName = "10.100.12.13";
  126 + sEmailUtility.sFromAddress = "utkarsh.singh@ebix.com";
  127 + sEmailUtility.bIsBodyHtml = true;
  128 + sEmailUtility.bEnableSsl = false;
  129 + sEmailUtility.sSubject = _mailSubject + _userMail;
  130 + sEmailUtility.sBodyText = sEmailText;
  131 + sEmailUtility.iPort = 25;
  132 + sEmailUtility.sToAddresses = lstToAddress;
  133 + sEmailUtility.sBccAddresses = lstBccAddress;
  134 +
  135 + sEmailUtility.SendSmtpEmail();
  136 + return true;
  137 + }
  138 + catch (Exception ex)
  139 + {
  140 + string message = "Exception: " + ex.Message;
  141 + return false;
  142 + }
  143 + }
  144 +
  145 + protected static string ReadMailBodyTextFromFile(string templatePath, string userId, string password, string userMail, string fullName, string resetPasswordUrl)
  146 + {
  147 + string fileToRead = string.Empty;
  148 + string sBody = string.Empty;
  149 + try
  150 + {
  151 + fileToRead = HttpContext.Current.Server.MapPath(templatePath);
  152 +
  153 + using (StreamReader reader = new StreamReader(fileToRead))
  154 + {
  155 + sBody = reader.ReadToEnd();
  156 + }
  157 +
  158 + //System.Net.Mail.LinkedResource imageResource = new System.Net.Mail.LinkedResource(logoPath, "image/jpng");
  159 + //imageResource.ContentId = "HDIImage";
  160 +
  161 + //sBody = sBody.Replace("{logoPath}", imageResource.ContentStream.ToString());
  162 + sBody = sBody.Replace("{loginId}", userId);
  163 + sBody = sBody.Replace("{emailId}", userMail);
  164 + sBody = sBody.Replace("{userFullName}", fullName);
  165 + sBody = sBody.Replace("{resetPasswordLink}", resetPasswordUrl);
  166 + }
  167 + catch (Exception e)
  168 + {
  169 + sBody = "Exception: " + e.Message;
  170 + }
  171 + return sBody;
  172 + }
  173 +
  174 + protected static AlternateView GetEmbeddedImage(String filePath)
  175 + {
  176 + LinkedResource inline = new LinkedResource(filePath);
  177 + inline.ContentId = Guid.NewGuid().ToString();
  178 + string htmlBody = @"<img src='cid:" + inline.ContentId + @"'/>";
  179 + AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html);
  180 + alternateView.LinkedResources.Add(inline);
  181 + return alternateView;
  182 + }
  183 + }
  184 +}
0 185 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Models/Users.cs
... ... @@ -12,7 +12,7 @@ namespace AIAHTML5.API.Models
12 12 {
13 13 public class Users
14 14 {
15   -
  15 +
16 16  
17 17 internal static dynamic AuthenticateUser(Newtonsoft.Json.Linq.JObject credentials)
18 18 {
... ... @@ -29,9 +29,9 @@ namespace AIAHTML5.API.Models
29 29 Builders<dynamic>.Filter.Eq("password", credentials["password"].ToString())};
30 30  
31 31 dynamic userDetails = collection.Find(Builders<dynamic>.Filter.And(filterCondition)).SingleOrDefault();
32   -
33   -
34   - if (userDetails!= null)
  32 +
  33 +
  34 + if (userDetails != null)
35 35 {
36 36 logger.Debug("userDetails.loginId= " + userDetails.loginId);
37 37 return userDetails;
... ... @@ -41,15 +41,81 @@ namespace AIAHTML5.API.Models
41 41 return AIAConstants.USER_NOT_FOUND;
42 42 }
43 43 }
44   - catch(Exception e)
  44 + catch (Exception e)
45 45 {
46   -
  46 +
47 47 logger.Fatal("Exception in AuthenticateUser for loginId =" + credentials["username"].ToString() + " and password= " + credentials["password"].ToString() + "Exception= " + e.Message);
48   -
  48 +
49 49 string errorMessage = AIAConstants.ERROR_IN_FECTHING_DETAILS;
50 50 return errorMessage;
51 51 }
52 52  
53 53 }
  54 +
  55 + internal static dynamic GetUserByEmail(Newtonsoft.Json.Linq.JObject userInfo)
  56 + {
  57 + ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
  58 + var client = new MongoClient();
  59 +
  60 + try
  61 + {
  62 +
  63 + var db = client.GetDatabase(Settings.Default.database);
  64 +
  65 + var collection = db.GetCollection<dynamic>("Users");
  66 +
  67 + FilterDefinition<dynamic> filterCondition = Builders<dynamic>.Filter.Eq("emailId", userInfo["emailId"].ToString().ToLower());
  68 +
  69 + dynamic userDetails = collection.Find(Builders<dynamic>.Filter.And(filterCondition)).SingleOrDefault();
  70 +
  71 + if (userDetails != null)
  72 + return userDetails;
  73 + else
  74 + return AIAConstants.USER_NOT_FOUND;
  75 + }
  76 + catch (Exception e)
  77 + {
  78 + logger.Fatal("Exception= " + e.Message);
  79 + return AIAConstants.ERROR_IN_FECTHING_DETAILS;
  80 + }
  81 + }
  82 +
  83 + internal static dynamic UpdatePassword(Newtonsoft.Json.Linq.JObject userInfo)
  84 + {
  85 + ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
  86 + var client = new MongoClient();
  87 + try
  88 + {
  89 + //var db = client.GetDatabase(Settings.Default.database);
  90 +
  91 + //var collection = db.GetCollection<dynamic>("Users");
  92 +
  93 + //FilterDefinition<dynamic> filterCondition = Builders<dynamic>.Filter.Eq("emailId", userInfo["emailId"].ToString().ToLower());
  94 +
  95 + //dynamic userDetails = collection.Find(Builders<dynamic>.Update.Set<filterCondition>("password", userInfo["newpass"].ToString()));
  96 +
  97 + //if (userDetails != null)
  98 + // return userDetails;
  99 + //else
  100 + // return AIAConstants.USER_NOT_FOUND;
  101 +
  102 + var db = client.GetDatabase(Settings.Default.database);
  103 + //var collection = db.GetCollection<dynamic>("Users");
  104 + var collection = db.GetCollection<BsonDocument>("Users");
  105 + var filter = Builders<BsonDocument>.Filter.Eq("emailId", userInfo["emailId"].ToString());
  106 + var update = Builders<BsonDocument>.Update.Set("password", userInfo["newpass"].ToString()).CurrentDate("modifiedDate");
  107 + var result = collection.UpdateOne(filter, update);
  108 +
  109 + if (result != null)
  110 + return result;
  111 + else
  112 + return AIAConstants.USER_NOT_FOUND;
  113 + }
  114 + catch (Exception e)
  115 + {
  116 + logger.Fatal("Exception= " + e.Message);
  117 + return AIAConstants.ERROR_IN_FECTHING_DETAILS;
  118 + }
  119 + }
54 120 }
55 121 }
56 122 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Templates/Forgot-UserId.html 0 → 100644
  1 +<style type='text/css'>
  2 + strong {
  3 + font-size: 18px;
  4 + color: #ffff00;
  5 + }
  6 +</style>
  7 +<table width='500' border='0' align='center' cellpadding='0' cellspacing='0'>
  8 + <tbody>
  9 + <tr>
  10 + <td align='center' valign='middle' bgcolor='#393939' style='padding:30px 0 20px 0;'>
  11 + <a href='#'><img src='{logoPath}' alt='AIA' title='AIA' /></a>
  12 + </td>
  13 + </tr>
  14 + <tr>
  15 + <td align='center' valign='top' bgcolor='#808d43' style='padding:20px;'>
  16 + <table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'>
  17 + <tbody>
  18 + <tr>
  19 + <td colspan='2' style=' font-size:32px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>Forgot UserID</td>
  20 + </tr>
  21 + <tr>
  22 + <td colspan='2'>&nbsp;</td>
  23 + </tr>
  24 + <tr>
  25 + <td colspan='2' style='font-size:20px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>Hello {userFullName}</td>
  26 + </tr>
  27 + <tr>
  28 + <td colspan='2'>&nbsp;</td>
  29 + </tr>
  30 + <tr>
  31 + <td colspan='2' style=' font-size:16px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>You have requested your 'Login ID' for following account: {emailId}</td>
  32 + </tr>
  33 + <tr>
  34 + <td colspan='2'>&nbsp;</td>
  35 + </tr>
  36 + <tr>
  37 + <td colspan='2' style=' font-size:18px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#fff;'>Your login ID is: <strong>{loginId}</strong></td>
  38 + </tr>
  39 + <tr>
  40 + <td colspan='2'>&nbsp;</td></tr><tr><td colspan='2'>&nbsp;</td>
  41 + </tr>
  42 + <tr>
  43 + <td colspan='2'>&nbsp;</td>
  44 + </tr>
  45 + </tbody>
  46 + </table>
  47 + </td>
  48 + </tr>
  49 + <tr>
  50 + <td bgcolor='#f9f2e7' style='padding:20px;'>
  51 + <table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'>
  52 + <tbody>
  53 + <tr>
  54 + <td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>A.D.A.M. – the company that pioneered online health content – is dedicated to creating and offering the most effective and innovative educational solutions possible for teaching medical science and improving health literacy.</td>
  55 + </tr>
  56 + <tr>
  57 + <td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td>
  58 + </tr>
  59 + <tr>
  60 + <td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>Give us a <b>call toll-free at 1-888-278-9614</b> or <em>send us an email</em> if you have any questions or if you need help. It will be our pleasure to help you.</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'><em>&copy; 2017 Ebix, Inc. All Rights Reserved. </em></td>
  61 + </tr>
  62 + </tbody>
  63 + </table>
  64 + </td>
  65 + </tr>
  66 + </tbody>
  67 +</table>
0 68 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Templates/forgot-Password.html 0 → 100644
  1 +<style type='text/css'>
  2 + strong {
  3 + font-size: 18px;
  4 + color: #ffff00;
  5 + }
  6 +</style>
  7 +<table width='500' border='0' align='center' cellpadding='0' cellspacing='0'>
  8 + <tbody>
  9 + <tr>
  10 + <td align='center' valign='middle' bgcolor='#393939' style='padding:30px 0 20px 0;'>
  11 + <a href='#'><img src='{logoPath}' alt='AIA' title='AIA' /></a>
  12 + </td>
  13 + </tr>
  14 + <tr>
  15 + <td align='center' valign='top' bgcolor='#808d43' style='padding:20px;'>
  16 + <table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'>
  17 + <tbody>
  18 + <tr>
  19 + <td colspan='2' style=' font-size:32px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>Forgot Password</td>
  20 + </tr>
  21 + <tr>
  22 + <td colspan='2'>&nbsp;</td>
  23 + </tr>
  24 + <tr>
  25 + <td colspan='2' style='font-size:20px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>Hi,</td>
  26 + </tr>
  27 + <tr>
  28 + <td colspan='2'>&nbsp;</td>
  29 + </tr>
  30 + <tr>
  31 + <td colspan='2' style=' font-size:16px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>You have requested password reset for your account: {emailId}</td>
  32 + </tr>
  33 + <tr>
  34 + <td colspan='2'>&nbsp;</td>
  35 + </tr>
  36 + <tr>
  37 + <td colspan='2' style=' font-size:16px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>You can reset your password by clicking the link below:</td>
  38 + </tr>
  39 + <tr>
  40 + <td colspan='2' style=' font-size:16px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'><a href="{resetPasswordLink}">{resetPasswordLink}</a></td>
  41 + </tr>
  42 + <tr>
  43 + <td colspan='2'>&nbsp;</td>
  44 + </tr>
  45 + <tr>
  46 + <td colspan='2' style=' font-size:16px; font-weight:bold; color:#fff; font-family:Gotham, Helvetica, Arial, sans-serif'>If you have not requested for password reset, please ignore this mail.</td>
  47 + </tr>
  48 + <tr>
  49 + <td colspan='2'>&nbsp;</td>
  50 + </tr>
  51 + <tr>
  52 + <td colspan='2'>&nbsp;</td>
  53 + </tr>
  54 + <tr>
  55 + <td colspan='2'>&nbsp;</td>
  56 + </tr>
  57 + </tbody>
  58 + </table>
  59 + </td>
  60 + </tr>
  61 + <tr>
  62 + <td bgcolor='#f9f2e7' style='padding:20px;'>
  63 + <table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'>
  64 + <tbody>
  65 + <tr>
  66 + <td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>A.D.A.M. – the company that pioneered online health content – is dedicated to creating and offering the most effective and innovative educational solutions possible for teaching medical science and improving health literacy.</td>
  67 + </tr>
  68 + <tr>
  69 + <td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td>
  70 + </tr>
  71 + <tr>
  72 + <td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>Give us a <b>call toll-free at 1-888-278-9614</b> or <em>send us an email</em> if you have any questions or if you need help. It will be our pleasure to help you.</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'>&nbsp;</td></tr><tr><td style=' font-size:12px; font-family:Gotham, Helvetica, Arial, sans-serif; color:#000000;'><em>&copy; 2017 Ebix, Inc. All Rights Reserved. </em></td>
  73 + </tr>
  74 + </tbody>
  75 + </table>
  76 + </td>
  77 + </tr>
  78 + </tbody>
  79 +</table>
0 80 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Utility/EmailUtility.cs 0 → 100644
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Web;
  5 +using System.Configuration;
  6 +using System.Collections;
  7 +using System.Xml;
  8 +using System.Text;
  9 +using System.IO;
  10 +using System.Net.Mail;
  11 +
  12 +namespace AIAHTML5.API.Utility
  13 +{
  14 +
  15 + public class EmailUtility
  16 + {
  17 + public string sFromAddress { get; set; }
  18 + public List<string> sToAddresses { get; set; }
  19 + public List<string> sBccAddresses { get; set; }
  20 + public string sHostName { get; set; }
  21 + public string sSubject { get; set; }
  22 + public int iPort { get; set; }
  23 + public bool bEnableSsl { get; set; }
  24 + public string sUserName { get; set; }
  25 + public string sPassword { get; set; }
  26 + public bool bIsBodyHtml { get; set; }
  27 + public List<Attachment> sAttachments { get; set; }
  28 + public string sBodyText { get; set; }
  29 + public AlternateView sAlternateView { get; set; }
  30 +
  31 + public void SendMail(MailMessage mm)
  32 + {
  33 + SmtpClient smtp = new SmtpClient();
  34 + smtp.Host = ConfigurationManager.AppSettings["SMTPAddress"];
  35 + smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSSL"]);
  36 + System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(mm.From.ToString(), ConfigurationManager.AppSettings["SenderPassword"]);
  37 + smtp.Credentials = NetworkCred;
  38 + smtp.Port = Convert.ToInt32(ConfigurationManager.AppSettings["SMTPPort"]);
  39 + /*string ccAddress = ConfigurationManager.AppSettings["NotifyCopyAddress"];
  40 + string[] emailArr = ccAddress.Split(',');
  41 + if (mm.From.ToString().Equals("pfizerhelp@ebix.com"))
  42 + {
  43 + ccAddress = emailArr[0];
  44 + if (!ccAddress.Equals(""))
  45 + {
  46 + mm.Bcc.Add(ccAddress);
  47 + }
  48 + }
  49 + else
  50 + {
  51 + if (!ccAddress.Equals(""))
  52 + {
  53 + mm.Bcc.Add(ccAddress);
  54 + }
  55 + }*/
  56 +
  57 +
  58 + smtp.Send(mm);
  59 + }
  60 +
  61 + public void SendSmtpEmail()
  62 + {
  63 + try
  64 + {
  65 + MailMessage sMail = new MailMessage();
  66 + SmtpClient SmtpServer = new SmtpClient(sHostName);
  67 + string recipientEmailAddress = string.Empty;
  68 +
  69 +
  70 + if (sToAddresses != null)
  71 + {
  72 + foreach (var sItem in sToAddresses)
  73 + {
  74 + sMail.To.Add(sItem);
  75 +
  76 + }
  77 + }
  78 +
  79 + if (sBccAddresses != null)
  80 + {
  81 + foreach (var sItem in sBccAddresses)
  82 + {
  83 + sMail.Bcc.Add(sItem);
  84 + }
  85 + }
  86 +
  87 + sMail.IsBodyHtml = bIsBodyHtml;
  88 +
  89 + if (sAlternateView != null)
  90 + {
  91 + sMail.AlternateViews.Add(sAlternateView);
  92 + }
  93 + else
  94 + {
  95 + sMail.Body = sBodyText;
  96 + }
  97 +
  98 + sMail.Subject = sSubject;
  99 + if (sAttachments != null)
  100 + {
  101 + foreach (var sItem in sAttachments)
  102 + {
  103 + sMail.Attachments.Add(sItem);
  104 + }
  105 + }
  106 +
  107 + SmtpServer.Port = iPort;
  108 + SmtpServer.Credentials = new System.Net.NetworkCredential(sUserName, sPassword);
  109 + SmtpServer.EnableSsl = bEnableSsl;
  110 +
  111 + // SmtpServer.Send(sMail);
  112 + using (MailMessage mm = new MailMessage(sFromAddress, sMail.To.ToString()))
  113 + //using (MailMessage mm = new MailMessage())
  114 + {
  115 + mm.Subject = sSubject;
  116 + mm.IsBodyHtml = bIsBodyHtml;
  117 + // mm.To.Add(sMail.To.ToString());
  118 + //mm.From = new MailAddress(sFromAddress, "AdamOnDemand");
  119 + if (sAlternateView != null)
  120 + {
  121 + mm.AlternateViews.Add(sAlternateView);
  122 + }
  123 + else
  124 + {
  125 + mm.Body = sBodyText;
  126 + }
  127 + // mm.Body = sAlternateView;
  128 + // string bccAddress = (!string.IsNullOrEmpty(sBccAddresses) ? lstBccAddress : ConfigurationManager.AppSettings["AccountsEmailAddress"]);
  129 + /* if (sBccAddresses != null)
  130 + {
  131 + foreach (var sItem in sBccAddresses)
  132 + {
  133 + mm.Bcc.Add(sItem);
  134 + }
  135 + }*/
  136 + //else
  137 + //{
  138 + // string bccAddress = ConfigurationManager.AppSettings["AccountsEmailAddress"];
  139 + // mm.Bcc.Add(bccAddress);
  140 + //}
  141 + mm.IsBodyHtml = true;
  142 + SendMail(mm);
  143 + }
  144 +
  145 + }
  146 + catch (Exception ex)
  147 + {
  148 + throw ex;
  149 + }
  150 + }
  151 +
  152 +
  153 + //public static bool SendEmail(dynamic UserDetails, bool isPassword)
  154 + //{
  155 + // try
  156 + // {
  157 + // List<LinkedResource> lstLinkedResource = new List<LinkedResource>();
  158 + // EmailUtility sEmailUtility = new EmailUtility();
  159 + // List<string> lstToAddress = new List<string>();
  160 + // List<string> lstBccAddress = new List<string>();
  161 + // LinkedResource LinkImage;
  162 + // string AdminNames = "";
  163 + // string sEmailText = "";
  164 + // string ParseText = "";
  165 + // int TextPos = 0;
  166 + // int MinPos = 0;
  167 + // string ImgSrc = "";
  168 + // int Counter = 0;
  169 +
  170 + // string _userId = string.Empty;
  171 + // string _password = string.Empty;
  172 + // string _userMail = string.Empty;
  173 +
  174 + // foreach (KeyValuePair<string, object> kvp in UserDetails)
  175 + // {
  176 + // if(kvp.Key == "loginId")
  177 + // _userId = kvp.Value.ToString();
  178 +
  179 + // if(kvp.Key == "password")
  180 + // _password = kvp.Value.ToString();
  181 +
  182 + // if(kvp.Key == "emailId")
  183 + // _userMail = kvp.Value.ToString();
  184 + // }
  185 +
  186 + // if (isPassword)
  187 + // sEmailText = "Your password is: <b>" + _password;
  188 + // else
  189 + // sEmailText = "Your LoginID is: <b>" + _userId;
  190 +
  191 + // lstToAddress.Add(_userMail);
  192 +
  193 + // sEmailUtility.sSubject = "Recovery mail [" + _userMail + "]";
  194 +
  195 + // ////// for embedding images in email
  196 + // ////if (sEmailText.Contains("<img"))
  197 + // ////{
  198 + // //// ParseText = sEmailText;
  199 + // //// TextPos = ParseText.IndexOf("<img", TextPos);
  200 + // //// while (TextPos != -1)
  201 + // //// {
  202 + // //// TextPos = ParseText.IndexOf("src", TextPos) + 5;
  203 + // //// MinPos = ParseText.IndexOf('"', TextPos);
  204 + // //// ImgSrc = ParseText.Substring(TextPos, MinPos - TextPos);
  205 + // //// string ImagePath = HttpContext.Current.Server.MapPath(ImgSrc);
  206 + // //// LinkImage = new LinkedResource(ImagePath);
  207 + // //// Counter++;
  208 + // //// LinkImage.ContentId = "Img" + Counter;
  209 + // //// sEmailText = sEmailText.Replace("\"" + ImgSrc + "\"", "cid:" + LinkImage.ContentId);
  210 + // //// lstLinkedResource.Add(LinkImage);
  211 + // //// TextPos = ParseText.IndexOf("<img", TextPos);
  212 + // //// }
  213 + // ////}
  214 +
  215 + // /*foreach (var sItem in lstEmailParams)
  216 + // {
  217 + // sEmailText = sEmailText.Replace(sItem.Item1, sItem.Item2);
  218 + // }*/
  219 +
  220 + // /*if (!string.IsNullOrEmpty(recipientEmailAddress))
  221 + // {
  222 + // string[] sStrArr = recipientEmailAddress.Split(',');
  223 + // for (int i = 0; i < sStrArr.Length - 1; i++)
  224 + // {
  225 + // string sEmail = sStrArr[i];
  226 + // lstToAddress.Add(sStrArr[i]);
  227 + // }
  228 + // }*/
  229 +
  230 +
  231 + // /*if (!string.IsNullOrEmpty(bccEmailAddress))
  232 + // {
  233 + // string[] sStrArr = bccEmailAddress.Split(',');
  234 + // for (int i = 0; i < sStrArr.Length - 1; i++)
  235 + // {
  236 + // string sEmail = sStrArr[i];
  237 + // lstBccAddress.Add(sEmail);
  238 + // //AdminNames += context.Users.Where(El => El.EmailAddress == sEmail).First().FirstName + ", ";
  239 + // }
  240 + // // AdminNames = AdminNames.Substring(0, AdminNames.Length - 2);
  241 + // sEmailText = sEmailText.Replace("#ADMINNAMES#", AdminNames);
  242 + // }*/
  243 +
  244 + // sEmailUtility.sAlternateView = AlternateView.CreateAlternateViewFromString(sEmailText, null, "text/html");
  245 + // foreach (var sItem in lstLinkedResource)
  246 + // {
  247 + // sEmailUtility.sAlternateView.LinkedResources.Add(sItem);
  248 + // }
  249 +
  250 + // sEmailUtility.sHostName = "10.100.12.13";
  251 + // sEmailUtility.sFromAddress = "utkarsh.singh@ebix.com";
  252 + // sEmailUtility.bIsBodyHtml = true;
  253 + // sEmailUtility.bEnableSsl = false;
  254 + // //sEmailUtility.sSubject = "Recovery mail [User Information]";
  255 + // sEmailUtility.iPort = 25;
  256 + // sEmailUtility.sToAddresses = lstToAddress;//Convert.ToString(UserDetails[7]); ;
  257 + // sEmailUtility.sBccAddresses = lstBccAddress;
  258 +
  259 + // sEmailUtility.SendSmtpEmail();
  260 + // return true;
  261 + // }
  262 + // catch (Exception ex)
  263 + // {
  264 + // return false;
  265 + // }
  266 + //}
  267 + }
  268 +}
0 269 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Web.config
... ... @@ -31,6 +31,13 @@
31 31 </log4net>
32 32  
33 33 <appSettings>
  34 + <add key="SenderEmailAddress" value="support@interactiveanatomy.com" />
  35 + <add key="ErrorNotificationEmailAddress" value="support@interactiveanatomy.com" />
  36 + <add key="SenderPassword" value="" />
  37 + <add key="SMTPAddress" value="smtp.emailsrvr.com" />
  38 + <add key="SMTPPort" value="587" />
  39 + <add key="EnableSSL" value="false" />
  40 + <add key="NotifyEmailAddress" value="support@interactiveanatomy.com" />
34 41 </appSettings>
35 42 <system.web>
36 43 <compilation debug="true" targetFramework="4.5" />
... ...
400-SOURCECODE/AIAHTML5.API/bin/AIAHTML5.API.dll
No preview for this file type
400-SOURCECODE/AIAHTML5.API/bin/AIAHTML5.API.dll.config
... ... @@ -31,6 +31,13 @@
31 31 </log4net>
32 32  
33 33 <appSettings>
  34 + <add key="SenderEmailAddress" value="utkarsh.singh@ebix.com" />
  35 + <add key="ErrorNotificationEmailAddress" value="utkarsh.singh@ebix.com" />
  36 + <add key="SenderPassword" value="utkarsh@3bix" />
  37 + <add key="SMTPAddress" value="smtp.emailsrvr.com" />
  38 + <add key="SMTPPort" value="587" />
  39 + <add key="EnableSSL" value="false" />
  40 + <add key="NotifyEmailAddress" value="ashish.jain@ebix.com" />
34 41 </appSettings>
35 42 <system.web>
36 43 <compilation debug="true" targetFramework="4.5" />
... ...
400-SOURCECODE/AIAHTML5.API/bin/AIAHTML5.API.pdb
No preview for this file type
400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
... ... @@ -76,17 +76,23 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
76 76 $rootScope.initializeAIA = function () {
77 77  
78 78 $rootScope.isLoading = false;
79   - $rootScope.isVisibleLogin = true;
80   -
  79 + $rootScope.isVisibleLogin = false;
  80 + $rootScope.isVisibleResetPass = true;
  81 + //VerifyUrlForQuerystring();
81 82 getUserDetails();
82 83 }
83 84  
84 85 $rootScope.userInfo = {
85 86 username: null,
86   - password: null
  87 + password: null,
  88 + emailId: null,
  89 + newpass: null,
  90 + newpass2: null
87 91 };
88 92 $rootScope.userData ;
89   - $rootScope.userModules ;
  93 + $rootScope.userModules;
  94 +
  95 + $location.search('email', $rootScope.userInfo.emailId);
90 96  
91 97 $rootScope.AuthenticateUser = function (userInfo) {
92 98 $rootScope.isVisibleLogin = false;
... ... @@ -152,9 +158,60 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
152 158 }
153 159 }
154 160  
  161 + $rootScope.GetUserByEmail = function (userInfo, missingPass) {
  162 +
  163 + if ((userInfo.emailId != null) && (userInfo.emailId != '')) {
  164 + if (validateEmail(userInfo.emailId)) {
  165 + if (missingPass == 'true')
  166 + userInfo.isPassword = true;
  167 + else
  168 + userInfo.isPassword = false;
  169 +
  170 + AuthenticationService.GetUserByEmail(userInfo);
  171 + }
  172 + else {
  173 + alert("Please, enter correct email id");
  174 + }
  175 + }
  176 + else {
  177 + alert("Please, enter your email id");
  178 + }
  179 + };
  180 +
  181 + function validateEmail(email) {
  182 + var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  183 + return re.test(email);
  184 + }
  185 +
155 186 $(document).ready(function () {
156 187 getUserDetails();
157   - });
  188 + });
  189 +
  190 + $rootScope.UpdateUserPassword = function (userInfo) {
  191 + userInfo.emailId = 'utkarsh.singh@ebix.com';
  192 + AuthenticationService.UpdateUserPassword(userInfo)
  193 + .then(
  194 + function (result) {
  195 + if (result == LoginConstants.USER_NOT_FOUND) {
  196 +
  197 + alert(result);
  198 + }
  199 + else if (result == LoginConstants.ERROR_IN_FECTHING_DETAILS) {
  200 + alert(result);
  201 + }
  202 + else {
  203 + if (result.loginId != undefined || result.loginId != "" || result.loginId != null) {
  204 + alert('Password updated successfully.');
  205 + $rootScope.isVisibleLogin = true;
  206 + $rootScope.isVisibleResetPass = false;
  207 + }
  208 + }
  209 + },
  210 + function (error) {
  211 + console.log(' Error in authentication = ' + error.statusText);
  212 + alert(LoginConstants.ERROR_IN_FECTHING_DETAILS);
  213 + });
  214 + }
158 215  
159 216 $rootScope.$on("$locationChangeSuccess", function () {
160 217  
... ... @@ -2623,7 +2680,7 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
2623 2680 };
2624 2681  
2625 2682 $rootScope.ShowPrintWindow = function () { // Print Active Viewer
2626   - html2canvas($("#canvasDiv"), {
  2683 + /*html2canvas($("#canvasDiv"), {
2627 2684 onrendered: function (canvas) {
2628 2685 var dataURL = canvas.toDataURL("image/jpeg");
2629 2686 var imageToPrint = new Image();
... ... @@ -2635,7 +2692,8 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
2635 2692  
2636 2693 PrintDIVContent('printBox'); // Open Print Window
2637 2694 }
2638   - });
  2695 + });*/
  2696 + OpenResetPasswordHtmlPage();
2639 2697 };
2640 2698  
2641 2699 $rootScope.ShowPrintPreviewWindow = function (event) { // Print Preview
... ... @@ -2794,7 +2852,7 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
2794 2852 console.log('close')
2795 2853 });
2796 2854  
2797   - $rootScope.ShowPrintWindow = function () { // Print Active Viewer
  2855 + /*$rootScope.ShowPrintWindow = function () { // Print Active Viewer
2798 2856 html2canvas($("#canvasDiv"), {
2799 2857 onrendered: function (canvas) {
2800 2858 var dataURL = canvas.toDataURL("image/jpeg");
... ... @@ -2808,7 +2866,7 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
2808 2866 PrintDivContentByID('printBox'); // Open Print Window
2809 2867 }
2810 2868 });
2811   - };
  2869 + };*/
2812 2870 $rootScope.restrictBodySystemList = function () {
2813 2871 var RestrictListDiv = document.getElementById("restrictListDiv");
2814 2872 if (RestrictListDiv.style.display == 'block') {
... ... @@ -2820,6 +2878,36 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
2820 2878 $(".restrict-carret-icon").css({ "transform": "rotate(90deg)", "-moz-transform": "rotate(90deg)", "-webkit-transform": "rotate(90deg)", "-ms-transform": "rotate(90deg)" });
2821 2879  
2822 2880 }
2823   -
  2881 +
  2882 + function OpenResetPasswordHtmlPage() {
  2883 + var url = 'app/views/home/resetPwd.html';
  2884 + $location.url(url);
  2885 + $window.location.url(url);
  2886 + };
  2887 +
  2888 + function ValidateResetForm() {
  2889 + //if(!('#pass').val().length)
  2890 + }
  2891 +
  2892 + function VerifyUrlForQuerystring() {
  2893 + var url = $location.url();
  2894 +
  2895 + var field = 'em';
  2896 + //var url = window.location.href;
  2897 + var htmFileUrl = 'app/views/Home/resetPwd.html'; //<!--#resetpass" href="/app/views/Home/resetPwd.html"-->
  2898 +
  2899 + if (url.indexOf('?' + field + '=') != -1) {
  2900 + $rootScope.isVisibleLogin = false;
  2901 + $rootScope.isVisibleResetPass = true;
  2902 + $(".modal-content").load(htmFileUrl).dialog({ modal: true });
  2903 + return true;
  2904 + }
  2905 + else {
  2906 + $rootScope.isVisibleLogin = true;
  2907 + $rootScope.isVisibleResetPass = false;
  2908 + //$(".modal-content").load(htmFileUrl).dialog({ modal: true });
  2909 + return false;
  2910 + }
  2911 + }
2824 2912 }]
2825 2913 );
2826 2914 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/app/services/AuthenticationService.js
... ... @@ -16,7 +16,51 @@
16 16 deferred.reject(status);
17 17 });
18 18 return deferred.promise;
19   - }
  19 + },
  20 +
  21 + GetUserByEmail: function (userInfo, isPassword) {
  22 + var deferred = $q.defer();
  23 +
  24 + $http.post('/API/api/ForgotUser', userInfo, { //JSON.stringify(userEmail)
  25 + headers: {
  26 + 'Content-Type': 'application/json'
  27 + }
  28 + })
  29 + .success(function (data, status, headers, config) {
  30 + if (data == "User not found.")
  31 + alert("User does not exists.");
  32 + else {
  33 + if (!userInfo.ispassword) {
  34 + alert("UserID sent in mail successfully.");
  35 + $('.forgot-sm').fadeOut();
  36 + }
  37 + }
  38 + console.log('success');
  39 + deferred.resolve(data);
  40 + }).error(function (data, status, headers, config) {
  41 + console.log('error')
  42 + deferred.reject(status);
  43 + });
  44 + return deferred.promise;
  45 + },
  46 +
  47 + UpdateUserPassword: function (userInfo) {
  48 + var deferred = $q.defer();
  49 +
  50 + $http.post('/API/api/ResetPassword', JSON.stringify(userInfo), {
  51 + headers: {
  52 + 'Content-Type': 'application/json'
  53 + }
  54 + })
  55 + .success(function (data, status, headers, config) {
  56 + console.log('success')
  57 + deferred.resolve(data);
  58 + }).error(function (data, status, headers, config) {
  59 + console.log('error')
  60 + deferred.reject(status);
  61 + });
  62 + return deferred.promise;
  63 + },
20 64  
21 65 }
22 66 });
23 67 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/Home/resetPassword.html 0 → 100644
  1 +<!doctype html>
  2 +<html>
  3 +<head>
  4 +<meta charset="utf-8">
  5 +<title>AIA</title>
  6 +<style type="text/css">
  7 +h1 {
  8 + font-size: 16px;
  9 + color: #FFFFFF;
  10 +}
  11 +</style>
  12 +</head>
  13 +
  14 +<body>
  15 +<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
  16 + <tbody>
  17 + <tr>
  18 + <td align="center" valign="middle" bgcolor="#393939 " style="padding:30px 0 20px 0;"><a href="#"><img src="/content/images/common/logo.png" alt="PPL" title="PPL" /></a></td>
  19 + </tr>
  20 + <tr>
  21 + <td align="center" valign="top" bgcolor="#808d43" style="padding:20px; overflow:hidden;">
  22 + <table width="100%" border="0" cellspacing="0" cellpadding="0" id='resetPwdform' ng-show="isVisibleResetPass" ng-init="CallResetPassword()">
  23 + <tbody>
  24 +
  25 + <tr>
  26 + <td style=" font-size:26px; font-weight:bold; color:#fff; font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif"><strong>Reset Password</strong></td>
  27 + </tr>
  28 + <tr>
  29 + <td>&nbsp;</td>
  30 + </tr>
  31 + <tr>
  32 + <td style="font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; color:#fff;">New Password </td>
  33 + </tr>
  34 + <tr>
  35 + <td><input class="form-control" id="" value="*****" ng-model="password" type="password" style="padding:3px 5px; height:25px; width:98%;"></td>
  36 + </tr>
  37 + <tr>
  38 + <td>&nbsp;</td>
  39 + </tr>
  40 + <tr>
  41 + <td style="font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; color:#fff;">Confirm Password </td>
  42 + </tr>
  43 +
  44 + <tr>
  45 + <td><input class="form-control" id="" value="*****" ng-model="password2" type="password" style="padding:3px 5px; height:25px; width:98%;"></td>
  46 + </tr>
  47 + <tr>
  48 + <td>&nbsp;</td>
  49 + </tr>
  50 + <tr>
  51 + <td>
  52 + <button type="button" style="color:#423030; background:#ff9900; border:1px solid #ff9900; cursor:pointer; color:#fff; padding:5px 10px; font-size:16px; text-transform:uppercase; text-align:center; text-decoration:none; font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif" ng-click="CallResetPassword">Submit</button>
  53 + <button type="button" style="color:#423030; background:#231f20; border:1px solid #231f20; cursor:pointer; color:#fff; padding:5px 10px; font-size:16px; text-transform:uppercase; text-align:center; text-decoration:none; font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif">Close</button>
  54 + </td>
  55 + </tr>
  56 + </tbody>
  57 +</table>
  58 + </tr>
  59 +
  60 +
  61 + </tbody>
  62 +</table>
  63 +</body>
  64 +</html>
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/Home/resetPwd.html 0 → 100644
  1 +<div id='dvResetPass'>
  2 + <!--<form name='form'>
  3 + <input data-ng-model='user.password' type="password" name='password' placeholder='password' required>
  4 + <div ng-show="form.password.$error.required">
  5 + Field required
  6 + </div>
  7 + <input ng-model='user.password_verify' type="password" name='confirm_password' placeholder='confirm password' required data-password-verify="user.password">
  8 + <div ng-show="form.confirm_password.$error.required">
  9 + Field required!
  10 + </div>
  11 + <div ng-show="form.confirm_password.$error.passwordVerify">
  12 + Fields are not equal!
  13 + </div>
  14 + <button type="button" class="btn btn-primary btn-block" ng-click="">Submit</button>
  15 + </form>-->
  16 + <!--<div id='resetPwdform' ng-show="isVisibleResetPass" ng-init="CallResetPassword()">
  17 + <div class="modal fade" tabindex="-1" role="dialog" id="reset">
  18 + <div class="modal-dialog" role="document">
  19 + <div class="modal-content">
  20 + <div class="modal-header">-->
  21 + <!--<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>-->
  22 + <!--<h4 class="modal-title">Reset Password</h4>
  23 + </div>
  24 + <div class="modal-body">
  25 + <form id="resetPass" class="form-horizontal pad20">
  26 + <div class="form-group">
  27 + <label for="Newpass">New Password</label>
  28 + <input class="form-control" id="pass" placeholder="*****" type="email" ng-model="password" required ng-show="restPasss.email.$error.required">
  29 + </div>
  30 +
  31 + <div class="form-group">
  32 + <label for="confom">Confirm Password</label>
  33 + <input class="form-control" id="retypePass" placeholder="*****" type="email" ng-model="password2" required ng-show="restpasss.email.$error.required">
  34 + </div>
  35 + </form>
  36 + </div>
  37 + <div class="modal-footer">
  38 + <button type="button" class="btn btn-info" ng-click="SaveData()" onclick="SaveData()">Submit</button>
  39 + <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
  40 + </div>
  41 + </div>
  42 + </div>
  43 + </div>
  44 + </div>
  45 +</div>-->
  46 +
  47 +<!-- Modal -->
  48 +
  49 + <!--<div class="modal-header">
  50 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  51 + <h4 class="modal-title" id="myModalLabel">Reset Password</h4>
  52 + </div>-->
  53 + <div class="modal-body">
  54 + <div class="col-sm-12">
  55 + <form class="form-horizontal pad20">
  56 + <div class="form-group">
  57 + <label for="Newpass">New Password</label>
  58 + <input class="form-control" id="newPass" placeholder="*****" type="password" ng-model="userInfo.newpass">
  59 + </div>
  60 +
  61 + <div class="form-group">
  62 + <label for="confom">Confirm Password</label>
  63 + <input class="form-control" id="confirmPass" placeholder="*****" type="password" ng-model="userInfo.newpass2">
  64 + </div>
  65 + </form>
  66 + </div>
  67 + </div>
  68 + <div class="modal-footer">
  69 +
  70 + <button type="button" class="btn btn-info" ng-click="UpdateUserPassword(userInfo)">Submit</button>
  71 + <!--<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>-->
  72 +
  73 +
  74 + <!--<div class="col-xs-12 resetPanel">
  75 + <div class="loginBox clearfix">
  76 + <div class="col-xs-12">
  77 + <form class="ng-pristine ng-valid">
  78 + <div class="form-group">
  79 + <div class="input-group">
  80 + <span class="input-group-addon"><i class="fa fa-user"></i></span>
  81 + <input type="text" class="form-control ng-pristine ng-valid ng-touched" placeholder="Username" ng-model="userInfo.username">
  82 + </div>
  83 + </div>
  84 + <div class="form-group">
  85 + <div class="input-group">
  86 + <span class="input-group-addon"><i class="fa fa-key"></i></span>
  87 + <input type="password" class="form-control ng-pristine ng-valid ng-touched" placeholder="Password" ng-model="userInfo.password">
  88 + </div>
  89 + </div>
  90 + <div class="form-group">
  91 + <button class="btn btn-primary pull-right" ng-click="UpdateUserPassword(userInfo)">Submit</button>
  92 + </div>
  93 + </form>
  94 + </div>
  95 + </div>
  96 + </div>-->
  97 + </div>
  98 + </div>
  99 +
  100 +
... ...
400-SOURCECODE/AIAHTML5.Web/content/images/logo.png 0 → 100644

11.5 KB

400-SOURCECODE/AIAHTML5.Web/index.html
... ... @@ -9,16 +9,9 @@
9 9 <!--<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">-->
10 10 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0 maximum-scale=1.0" />
11 11 <title>A.D.A.M. Interactive Anatomy</title>
12   -
13 12 <link href="themes/default/css/bootstrap/3.3.6/bootstrap.css" rel="stylesheet" />
14   -
15   -
16   -
17   -
18 13 <link href="themes/default/css/bootstrap/3.3.6/main.css" rel="stylesheet" />
19   -
20 14 <link href="themes/default/css/bootstrap/3.3.6/secondeffect.css" rel="stylesheet" />
21   -
22 15 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
23 16 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,800,700,600,400italic">
24 17  
... ... @@ -30,9 +23,7 @@
30 23 <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
31 24 <![endif]-->
32 25 <link href="themes/default/css/bootstrap/3.3.6/jquery.mCustomScrollbar.css" rel="stylesheet" />
33   -
34 26 <link href="themes/default/css/bootstrap/3.3.6/jquery-ui.css" rel="stylesheet" />
35   -
36 27 <link href="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.css" rel="stylesheet" />
37 28 <link href="libs/video_4_12_11/css/video-js_4_12_11.css" rel="stylesheet" />
38 29 <link href="libs/jquery/jquery_plugin/SpeechBubble/css/bubble.css" rel="stylesheet" />
... ... @@ -52,7 +43,6 @@
52 43 color: #fff !important;
53 44 }
54 45  
55   -
56 46 .ActiveFormattingButtonClass {
57 47 background-color: #1B92D0 !important;
58 48 }
... ... @@ -63,7 +53,6 @@
63 53 cursor: pointer;
64 54 margin-right: 2px;
65 55 }
66   -
67 56 /*.italic-btn-css {
68 57 background: #4B4B4B;
69 58 padding: 4px;
... ... @@ -78,8 +67,6 @@
78 67 margin-right: 5px;
79 68 }
80 69  
81   -
82   -
83 70 .activebtncolor {
84 71 background-color: #1B92D0 !important;
85 72 border-color: #1B92D0 !important;
... ... @@ -91,7 +78,6 @@
91 78 border-color: #3f3f3f;
92 79 color: #ffffff;
93 80 }
94   -
95 81 /*.btn-black-annotation:hover {
96 82 background-color: #1B92D0 !important;
97 83 border-color: #1B92D0 !important;
... ... @@ -115,7 +101,6 @@
115 101 color: #000;
116 102 border-radius: 0;
117 103 }
118   -
119 104 /*7931*/
120 105 .custom-tooltip-annotation-edit {
121 106 background-color: #fff;
... ... @@ -149,258 +134,266 @@
149 134 color: #000;
150 135 border-radius: 0;
151 136 }
  137 +
152 138 .restrict-carret-icon {
153 139 font-size: 18px;
154 140 position: relative;
155 141 top: 1px;
156 142 }
157   - </style>
158   -
159   -
160   -
  143 + </style>
161 144 </head>
162 145 <body ng-controller="HomeController" id="bo" ng-init="initializeAIA()">
163   - <div id="login" ng-show="isVisibleLogin">
164   -
165   - <div class="container-fluid loginBg">
166   - <div class="row">
167   - <div class="col-xs-12 text-center">
168   - <a href="index.html" class="loginLogo"><img src="content/images/common/logo-large.png" class="img-responsive" alt=""></a>
169   - <div class="headerBand row">
170   - <div class="col-xs-12">
171   - <h1>A.D.A.M. Interactive Anatomy</h1>
172   - <p>The most compresive online interactive anatomy learning resource</p>
  146 + <div ng-hide="isVisibleResetPass">
  147 + <div id="login" ng-show="isVisibleLogin">
  148 + <div class="container-fluid loginBg">
  149 + <div class="row">
  150 + <div class="col-xs-12 text-center">
  151 + <a href="index.html" class="loginLogo"><img src="content/images/common/logo-large.png" class="img-responsive" alt=""></a>
  152 + <div class="headerBand row">
  153 + <div class="col-xs-12">
  154 + <h1>A.D.A.M. Interactive Anatomy</h1>
  155 + <p>The most compresive online interactive anatomy learning resource</p>
  156 + </div>
173 157 </div>
174 158 </div>
175   - </div>
176   - <!--LOGIN PANEL-->
177   - <div class="col-xs-12 loginPanel">
178   - <div class="loginBox clearfix">
179   - <div class="col-xs-12">
180   - <!--<strong>Login</strong>-->
181   - <form>
182   - <div class="form-group">
183   - <!--<label for="">User ID</label>-->
184   - <!--input type="email" class="form-control" placeholder="User ID">
185   - <span class="help-block text-right small"><a href="#" class="color-white">Forgot User ID?</a></span>-->
186   -
  159 + <!--LOGIN PANEL-->
  160 + <div class="col-xs-12 loginPanel">
  161 + <div class="loginBox clearfix">
  162 + <div class="col-xs-12">
  163 + <!--<strong>Login</strong>-->
  164 + <form>
  165 + <div class="form-group">
  166 + <!--<label for="">User ID</label>-->
  167 + <!--input type="email" class="form-control" placeholder="User ID">
  168 + <span class="help-block text-right small"><a href="#" class="color-white">Forgot User ID?</a></span>-->
187 169  
188   - <div class="input-group">
189   - <span class="input-group-addon"><i class="fa fa-user"></i></span>
190   - <input type="text" class="form-control" placeholder="Username" ng-model="userInfo.username">
  170 + <div class="input-group">
  171 + <span class="input-group-addon"><i class="fa fa-user"></i></span>
  172 + <input type="text" class="form-control" placeholder="Username" ng-model="userInfo.username">
  173 + </div>
  174 + <span class="help-block text-right small"><a href="#" class="color-white" id="forgotUserIdAnchor" data-toggle="modal" data-target=".forgot-sm">Forgot User ID?</a></span>
191 175 </div>
192   - <span class="help-block text-right small"><a href="#" class="color-white">Forgot User ID?</a></span>
193   -
194   -
195   - </div>
196   - <div class="form-group">
197   - <!--<label for="">Password</label>-->
198   - <!--<input type="password" class="form-control" placeholder="Password">
199   - <span class="help-block text-right small "><a href="#" class="color-white">Forgot Password?</a></span>-->
200   - <div class="input-group">
201   - <span class="input-group-addon"><i class="fa fa-key"></i></span>
202   - <input type="password" class="form-control" placeholder="Password" ng-model="userInfo.password">
  176 + <div class="form-group">
  177 + <!--<label for="">Password</label>-->
  178 + <!--<input type="password" class="form-control" placeholder="Password">
  179 + <span class="help-block text-right small "><a href="#" class="color-white">Forgot Password?</a></span>-->
  180 + <div class="input-group">
  181 + <span class="input-group-addon"><i class="fa fa-key"></i></span>
  182 + <input type="password" class="form-control" placeholder="Password" ng-model="userInfo.password">
  183 + </div>
  184 + <span class="help-block text-right small "><a class="color-white" id="forgotPasswordAnchor" data-toggle="modal" data-target=".forgot-sm1">Forgot Password?</a></span> <!--#resetpass" href="/app/views/Home/resetPwd.html"-->
203 185 </div>
204   - <span class="help-block text-right small "><a href="#" class="color-white">Forgot Password?</a></span>
205   - </div>
206   - <div class="form-group">
207   - <button class="btn btn-primary pull-right" ng-click="AuthenticateUser(userInfo)">Log In</button>
208   - </div>
209   - </form>
  186 + <div class="form-group">
  187 + <button class="btn btn-primary pull-right" ng-click="AuthenticateUser(userInfo)">Log In</button>
  188 + </div>
  189 + </form>
  190 + </div>
210 191 </div>
211   - </div>
212   - <div class="loginExBtn">
213   - <a href="#" class="btn btn-primary">Subscribe Now</a>
214   - <a href="#" class="btn btn-primary pull-right">Learn More</a>
  192 + <div class="loginExBtn"> <a href="#" class="btn btn-primary">Subscribe Now</a> <a href="#" class="btn btn-primary pull-right">Learn More</a> </div>
215 193 </div>
216 194 </div>
217 195 </div>
218   - </div>
219   -
220   - <!-- Footer -->
221   - <footer class="dark">
222   - <div class="container-fluid text-center">Copyright &copy; 2016 Ebix Inc. All rights reserved.</div>
223   - </footer>
224 196  
225   - </div>
226   - <div id="index" ng-hide="isVisibleLogin">
227   - <div class="container-fluid ">
228   - <!--Header-->
229   -
230   - <nav class="navbar navbar-inverse navbar-fixed-top">
231   - <div class="container-fluid">
232   - <!-- Brand and toggle get grouped for better mobile display -->
233   - <div class="navbar-header">
234   - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#topFixedNavbar1" aria-expanded="false">
235   - <span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
236   - </button>
237   - <a class="frameLogo navbar-brand" href="home"><img src="content/images/logo-main.png" class="img-responsive" alt=""></a>
  197 + <!-- Footer -->
  198 + <footer class="dark">
  199 + <div class="container-fluid text-center">Copyright &copy; 2016 Ebix Inc. All rights reserved.</div>
  200 + </footer>
  201 + </div>
  202 + <!-- Forgot User ID (Small modal) -->
  203 + <div class="modal fade forgot-sm" role="dialog" tabindex="-1" aria-labelledby="exampleModalLabel" data-target=".forgot-sm">
  204 + <div class="modal-dialog modal-sm" role="document">
  205 + <div class="modal-content">
  206 + <div class="modal-header">
  207 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  208 + <h5 class="modal-title" id="exampleModalLabel">Enter your email id to recover User id</h5>
  209 + </div>
  210 + <div class="modal-body">
  211 + <form>
  212 + <div class="form-group">
  213 + <div class="input-group">
  214 + <span class="input-group-addon"><i class="fa fa-envelope"></i></span>
  215 + <input id="btnEmail" class="form-control" placeholder="Email" type="email" ng-model="userInfo.emailId">
  216 + </div>
  217 + </div>
  218 + </form>
  219 + </div>
  220 + <div class="modal-footer">
  221 + <button type="button" class="btn btn-primary btn-block" ng-click="GetUserByEmail(userInfo, 'false')">Send Mail</button>
238 222 </div>
239   - <div ng-include="'app/widget/TopMenu.html'"></div>
240   - </div>
241   - </nav>
242   - <div class="bodyWrap row container-fluid">
243   -
244   - <div id="spinner" class="spinner" ng-show="isLoading" style="visibility:hidden">
245   - <img id="img-spinner" src="content/images/common/loading.gif" alt="Loading" />
246 223 </div>
247   - <div ng-view></div>
248   -
249 224 </div>
250   - </div>>
251   -
252   -
253   - <!--list manager Modal-->
254   - <div class="modal fade" id="ShowListManager" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" ng-init="tab = 1" style="width:27%;left:50%;overflow:hidden;height:500px;top:100px">
255   - <div class="modal-dialog" role="document" style="width:400px;">
256   - <div class="modal-content" style="width:100%;max-width:400px;">
257   - <div class="modal-header setting-modal-header" style="padding: 5px 10px; border-bottom: 1px solid #e5e5e5;">
258   - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
259   - <h4 class="modal-title" id="myModalLabel">Setting</h4>
  225 + </div>
  226 + <div id="light-box" style="display: none"></div>
  227 + <!-- Forgot Password (Small modal) -->
  228 + <div class="modal fade forgot-sm1" role="dialog" tabindex="-1" aria-labelledby="exampleModalLabel" data-target=".forgot-sm1">
  229 + <div class="modal-dialog modal-sm" role="document">
  230 + <div class="modal-content">
  231 + <div class="modal-header">
  232 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  233 + <h5 class="modal-title" id="exampleModalLabel">Enter your email id to recover Password</h5>
260 234 </div>
261 235 <div class="modal-body">
262   - <div class="row" style="padding-top:20px;">
263   - <div class="col-sm-12">
264   -
265   - <div aria-label="..." role="group" class="btn-group btn-group-justified">
266   - <div role="group" class="btn-group">
267   - <button class="btn btn-sm btn-success" type="button" ng-click="tab = 1">Appearance</button>
268   - </div>
269   - <div role="group" class="btn-group">
270   - <button class="btn btn-sm btn-success" type="button" ng-click="tab = 2">Lexicons</button>
271   - </div>
272   - <div role="group" class="btn-group">
273   - <button class="btn btn-sm btn-success" type="button" ng-click="tab = 3">Dissectible</button>
274   - </div>
  236 + <form>
  237 + <div class="form-group">
  238 + <div class="input-group">
  239 + <span class="input-group-addon"><i class="fa fa-envelope"></i></span>
  240 + <input id="btnEmail2" class="form-control" placeholder="Email" type="email" ng-model="userInfo.emailId">
275 241 </div>
276   -
277 242 </div>
278   -
279   -
280   - <div class="col-sm-12" ng-show="tab === 1">
281   -
282   -
283   - <div class="row">
284   - <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
285   - <div class="row" style="padding-top: 22px;">
286   - <div class="center-block col-md-10" style="float: none; ">
287   - <h5><strong>System Font</strong></h5>
288   -
289   - <div style="border:2px solid #ACACAC;float:left;padding:15px;background-color:#CCCCCC;">
290   - <div class="col-md-3" style="padding-left:0px;">
291   - Sample
292   - </div>
293   - <div class="col-md-6" style="padding-right:0px;">
294   - <input type="text" value="" style="width:85%;">
295   - </div>
296   - <div class="col-md-3" style="padding-left:0px;">
297   - <button class="btn btn-primary" style="margin-bottom:5px;">Change</button>
298   - <button class="btn btn-primary" style="margin-bottom:5px;">Default</button>
299   - </div>
300   -
301   - </div>
302   - </div>
  243 + </form>
  244 + </div>
  245 + <div class="modal-footer">
  246 + <button type="button" class="btn btn-primary btn-block" ng-click="GetUserByEmail(userInfo, 'true')">Send Mail</button>
  247 + </div>
  248 + </div>
  249 + </div>
  250 + </div>
  251 + <div id="index" ng-hide="isVisibleLogin">
  252 + <div class="container-fluid ">
  253 + <!--Header-->
  254 +
  255 + <nav class="navbar navbar-inverse navbar-fixed-top">
  256 + <div class="container-fluid">
  257 + <!-- Brand and toggle get grouped for better mobile display -->
  258 + <div class="navbar-header">
  259 + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#topFixedNavbar1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span> </button>
  260 + <a class="frameLogo navbar-brand" href="home"><img src="content/images/logo-main.png" class="img-responsive" alt=""></a>
  261 + </div>
  262 + <div ng-include="'app/widget/TopMenu.html'"></div>
  263 + </div>
  264 + </nav>
  265 + <div class="bodyWrap row container-fluid">
  266 + <div id="spinner" class="spinner" ng-show="isLoading" style="visibility:hidden"> <img id="img-spinner" src="content/images/common/loading.gif" alt="Loading" /> </div>
  267 + <div ng-view></div>
  268 + </div>
  269 + </div>
  270 +
  271 +
  272 + <!--list manager Modal-->
  273 + <div class="modal fade" id="ShowListManager" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" ng-init="tab = 1" style="width:27%;left:50%;overflow:hidden;height:500px;top:100px">
  274 + <div class="modal-dialog" role="document" style="width:400px;">
  275 + <div class="modal-content" style="width:100%;max-width:400px;">
  276 + <div class="modal-header setting-modal-header" style="padding: 5px 10px; border-bottom: 1px solid #e5e5e5;">
  277 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  278 + <h4 class="modal-title" id="myModalLabel">Setting</h4>
  279 + </div>
  280 + <div class="modal-body">
  281 + <div class="row" style="padding-top:20px;">
  282 + <div class="col-sm-12">
  283 + <div aria-label="..." role="group" class="btn-group btn-group-justified">
  284 + <div role="group" class="btn-group">
  285 + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 1">Appearance</button>
303 286 </div>
304   -
305   - </div>
306   - </div>
307   -
308   - </div>
309   - <div class="col-sm-12" ng-show="tab === 2">
310   -
311   -
312   - <div class="row">
313   - <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
314   - <div class="col-md-6">
315   - <h6><strong>Primary Lexicon</strong></h6>
316   - <input type="text" value="English" style="width:90%;">
317   - <button class="btn btn-primary" style="float:right;margin-bottom:5px;margin-top:5px;">Change</button>
318   - <h6>Secondry Lexicon</h6>
319   - <textarea style="width:90%;"></textarea>
320   - <button>Change</button>
321   - <button>Change</button>
  287 + <div role="group" class="btn-group">
  288 + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 2">Lexicons</button>
322 289 </div>
323   - <div class="col-md-6">
324   - <h6>Available Lexicon</h6>
325   - <select multiple class="form-control" id="sel2">
326   - <option>1</option>
327   - <option>2</option>
328   - <option>3</option>
329   - <option>4</option>
330   - <option>5</option>
331   - </select>
332   -
333   - <p>Note: Some languages require special system fonts to display correctly</p>
  290 + <div role="group" class="btn-group">
  291 + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 3">Dissectible</button>
334 292 </div>
335   -
336 293 </div>
337 294 </div>
338   -
339   - </div>
340   - <div class="col-sm-12" ng-show="tab === 3">
341   -
342   - <div class="row">
343   - <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
344   - <h6>Skin Tones</h6>
345   - <div class="center-block col-md-8" style="float: none;">
346   - <div class="col-md-6">
347   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
348   - </div>
349   - <div class="col-md-6">
350   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  295 + <div class="col-sm-12" ng-show="tab === 1">
  296 + <div class="row">
  297 + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
  298 + <div class="row" style="padding-top: 22px;">
  299 + <div class="center-block col-md-10" style="float: none; ">
  300 + <h5><strong>System Font</strong></h5>
  301 + <div style="border:2px solid #ACACAC;float:left;padding:15px;background-color:#CCCCCC;">
  302 + <div class="col-md-3" style="padding-left:0px;"> Sample </div>
  303 + <div class="col-md-6" style="padding-right:0px;">
  304 + <input type="text" value="" style="width:85%;">
  305 + </div>
  306 + <div class="col-md-3" style="padding-left:0px;">
  307 + <button class="btn btn-primary" style="margin-bottom:5px;">Change</button>
  308 + <button class="btn btn-primary" style="margin-bottom:5px;">Default</button>
  309 + </div>
  310 + </div>
  311 + </div>
351 312 </div>
  313 + </div>
  314 + </div>
  315 + </div>
  316 + <div class="col-sm-12" ng-show="tab === 2">
  317 + <div class="row">
  318 + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
352 319 <div class="col-md-6">
353   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  320 + <h6><strong>Primary Lexicon</strong></h6>
  321 + <input type="text" value="English" style="width:90%;">
  322 + <button class="btn btn-primary" style="float:right;margin-bottom:5px;margin-top:5px;">Change</button>
  323 + <h6>Secondry Lexicon</h6>
  324 + <textarea style="width:90%;"></textarea>
  325 + <button>Change</button>
  326 + <button>Change</button>
354 327 </div>
355 328 <div class="col-md-6">
356   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  329 + <h6>Available Lexicon</h6>
  330 + <select multiple class="form-control" id="sel2">
  331 + <option>1</option>
  332 + <option>2</option>
  333 + <option>3</option>
  334 + <option>4</option>
  335 + <option>5</option>
  336 + </select>
  337 + <p>Note: Some languages require special system fonts to display correctly</p>
357 338 </div>
358   -
359 339 </div>
360   - <h6>Modesty Setting</h6>
361   - <div class="col-md-6">
362   - <div class="col-md-4">
363   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  340 + </div>
  341 + </div>
  342 + <div class="col-sm-12" ng-show="tab === 3">
  343 + <div class="row">
  344 + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
  345 + <h6>Skin Tones</h6>
  346 + <div class="center-block col-md-8" style="float: none;">
  347 + <div class="col-md-6"> <img class="img-responsive" alt="" src="http://placehold.it/400x300"> </div>
  348 + <div class="col-md-6"> <img class="img-responsive" alt="" src="http://placehold.it/400x300"> </div>
  349 + <div class="col-md-6"> <img class="img-responsive" alt="" src="http://placehold.it/400x300"> </div>
  350 + <div class="col-md-6"> <img class="img-responsive" alt="" src="http://placehold.it/400x300"> </div>
364 351 </div>
365   - <div class="col-md-8">
366   -
367   - <div class="radio">
368   - <label><input type="radio" name="optradio" checked>On</label>
369   - </div>
370   - <div class="radio">
371   - <label><input type="radio" name="optradio">Off</label>
  352 + <h6>Modesty Setting</h6>
  353 + <div class="col-md-6">
  354 + <div class="col-md-4"> <img class="img-responsive" alt="" src="http://placehold.it/400x300"> </div>
  355 + <div class="col-md-8">
  356 + <div class="radio">
  357 + <label>
  358 + <input type="radio" name="optradio" checked>
  359 + On
  360 + </label>
  361 + </div>
  362 + <div class="radio">
  363 + <label>
  364 + <input type="radio" name="optradio">
  365 + Off
  366 + </label>
  367 + </div>
372 368 </div>
373   -
374 369 </div>
375   - </div>
376   - <div class="col-md-6">
377   - <h6>Annotaion</h6>
378   - <div class="checkbox">
379   - <label><input type="checkbox" value="" checked>Erase Annotations when changeing layers</label>
  370 + <div class="col-md-6">
  371 + <h6>Annotaion</h6>
  372 + <div class="checkbox">
  373 + <label>
  374 + <input type="checkbox" value="" checked>
  375 + Erase Annotations when changeing layers
  376 + </label>
  377 + </div>
380 378 </div>
381 379 </div>
382 380 </div>
383   -
384 381 </div>
385   -
386   -
387   -
388 382 </div>
389   - </div>
390   - <div class="modal-footer">
391   - <button type="button" class="btn btn-primary">Ok</button>
392   - <button type="button" class="btn btn-primary" data-dismiss="modal">Cancle</button>
393   - <button type="button" class="btn btn-primary">Apply</button>
  383 + <div class="modal-footer">
  384 + <button type="button" class="btn btn-primary">Ok</button>
  385 + <button type="button" class="btn btn-primary" data-dismiss="modal">Cancle</button>
  386 + <button type="button" class="btn btn-primary">Apply</button>
  387 + </div>
394 388 </div>
395 389 </div>
396 390 </div>
397 391 </div>
398   - </div>
399 392  
400   - <!--Settings modal-->
401   - <!--<div id="modal-settings" style="z-index: 1000000000; background: white;width: 302px;position:absolute;left:40%;right:0;top:70px;">-->
402   - <div id="modelsettingsbackground" style="background-color: black; bottom: 0; display: none; height: 100%; left: 0; opacity: 0.5; position: fixed; right: 0; top: 0; width: 100%; z-index: 12000000;"></div>
403   - <div id="modal-settings" style="display:none;z-index: 1000000000;height:auto;width: 300px;position:absolute;left:40%;right:0;top:70px;">
  393 + <!--Settings modal-->
  394 + <!--<div id="modal-settings" style="z-index: 1000000000; background: white;width: 302px;position:absolute;left:40%;right:0;top:70px;">-->
  395 + <div id="modelsettingsbackground" style="background-color: black; bottom: 0; display: none; height: 100%; left: 0; opacity: 0.5; position: fixed; right: 0; top: 0; width: 100%; z-index: 12000000;"></div>
  396 + <div id="modal-settings" style="display:none;z-index: 1000000000;height:auto;width: 300px;position:absolute;left:40%;right:0;top:70px;">
404 397 <div role="document">
405 398 <form>
406 399 <div ng-init="loadsettings()" class="modal-content" id="setting-modal-dark">
... ... @@ -415,7 +408,6 @@
415 408 <li role="presentation" ng-class="{'active':SettingsTab==1}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(1)">Appearance</a></li>
416 409 <li role="presentation" ng-class="{'active':SettingsTab==2}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(2)">Lexicons</a></li>
417 410 <li role="presentation" ng-class="{'active':SettingsTab==3}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(3)">Dissectible</a></li>
418   -
419 411 </ul>
420 412 <!-- Tab panes -->
421 413 <div class="tab-content">
... ... @@ -442,7 +434,6 @@
442 434 <input type="text" class="form-control" value="English" disabled>
443 435 <button class="btn btn-sm btn-success btn-block marginTop5">Change</button>
444 436 </div>
445   -
446 437 <div class="form-group">
447 438 <label for="SystemFont" class="font13">Secondary Lexicon</label>
448 439 <textarea class="form-control" rows="3"></textarea>
... ... @@ -480,28 +471,19 @@
480 471 <div class="skin-tones">
481 472 <div align="center">
482 473 <div class="col-sm-5">
483   - <button id="btnEthnicW" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'W')">
484   - <img src="~/../content/images/common/skin1.jpg" alt="">
485   - </button>
  474 + <button id="btnEthnicW" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'W')"> <img src="~/../content/images/common/skin1.jpg" alt=""> </button>
486 475 </div>
487 476 <div class="col-sm-5">
488   - <button id="btnEthnicB" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'B')">
489   - <img src="~/../content/images/common/skin2.jpg" alt="">
490   - </button>
  477 + <button id="btnEthnicB" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'B')"> <img src="~/../content/images/common/skin2.jpg" alt=""> </button>
491 478 </div>
492 479 <div class="col-sm-5">
493   - <button id="btnEthnicL" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'A')">
494   - <img src="~/../content/images/common/skin3.jpg" alt="">
495   - </button>
  480 + <button id="btnEthnicL" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'A')"> <img src="~/../content/images/common/skin3.jpg" alt=""> </button>
496 481 </div>
497 482 <div class="col-sm-5">
498   - <button id="btnEthnicA" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'L')">
499   - <img src="~/../content/images/common/skin4.jpg" alt="">
500   - </button>
  483 + <button id="btnEthnicA" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'L')"> <img src="~/../content/images/common/skin4.jpg" alt=""> </button>
501 484 </div>
502 485 </div>
503 486 </div>
504   -
505 487 </div>
506 488 </div>
507 489 <div class="">
... ... @@ -559,7 +541,6 @@
559 541 <div class="row">
560 542 <div class="col-sm-12">
561 543 <h5>Mode</h5>
562   -
563 544 <div class="btn-group btn-group-justified" role="group" aria-label="...">
564 545 <div class="btn-group" role="group" tooltip>
565 546 <div id="identify-block" style="display: none; font-size:13px;">Identify Mode</div>
... ... @@ -570,7 +551,6 @@
570 551 <button id="DrawMode" type="button" ng-click="DrawingMode()" class="btn btn-sm btn-success">Draw</button>
571 552 </div>
572 553 </div>
573   -
574 554 </div>
575 555 <div class="col-sm-12">
576 556 <h5>Tools</h5>
... ... @@ -596,59 +576,44 @@
596 576  
597 577 <div id="edit-block" style="display: none; font-size: 13px;">Edit Shape Style</div>
598 578 <div id="previewBorder" class="outlinediv" ng-mouseover="mouseMoveToolTip(170, 170, 120, 'Edit Style')" ng-mouseleave="mouseOutToolTip()">
599   - <div id="shapeStyleDiv" style="background-color: #ffffff;" class="fullcolordiv" ng-click="disableAnnotationtoolOnListManager||enableAnnotationToolBar()">
600   -
601   - </div>
602   -
  579 + <div id="shapeStyleDiv" style="background-color: #ffffff;" class="fullcolordiv" ng-click="disableAnnotationtoolOnListManager||enableAnnotationToolBar()"> </div>
603 580 </div>
604 581 </div>
605 582 <div class="well well-popup">
606 583 <div class="" role="group" aria-label="...">
607 584 <div>
608 585 <a href="#canvasPaint" data-size="1" data-color="#fff" id="annotationpaintbrushsize" ng-mouseover="mouseMoveToolTip(270, 50, 120, 'Paint')" ng-mouseleave="mouseOutToolTip()" class="btn btn-black-annotation btn-xs pull-left btn-annotation btn-annotation-brush" role="button" data-placement="top" style="margin-right:1%;" ng-click="paintBrush()"><i class="fa fa-paint-brush"></i></a>
609   - <button type="button" class="btn btn-black-annotation btn-xs pull-left btn-annotation btn-annotation-erase" data-placement="top" ng-click="EraseDrawing()" ng-mouseover="mouseMoveToolTip(270, 70, 120, 'Erase')" ng-mouseleave="mouseOutToolTip()"><i class="fa fa-eraser"></i></button>&nbsp;
  586 + <button type="button" class="btn btn-black-annotation btn-xs pull-left btn-annotation btn-annotation-erase" data-placement="top" ng-click="EraseDrawing()" ng-mouseover="mouseMoveToolTip(270, 70, 120, 'Erase')" ng-mouseleave="mouseOutToolTip()"><i class="fa fa-eraser"></i></button>
  587 + &nbsp;
610 588 <div style="width: 80px; margin: 0px 0px 0px 4px; display: inline-block;float:left;">
611 589 <div style="width: 58px; float: left;" ng-mouseover="mouseMoveToolTip(270, 100, 120, 'Brush Size')" ng-mouseleave="mouseOutToolTip()">
612 590 <input type="text" id="btnBrushSize" class="form-control" value="1" style="height:32px;border-radius:0;" oninput="Brushsize(this)">
613 591 </div>
614 592 <div style="width: 22px; float: left;">
615 593 <div style="width: 100%; float: left; height: 16px;">
616   - <button type="button" id="btnBrushSizeIncrement" ng-mouseover="mouseMoveToolTip(270, 100, 120, 'Brush Size')" ng-mouseleave="mouseOutToolTip()" class="btn btn-default" style="padding:0 5px;border-radius:0;font-size: 10px;vertical-align:top;">
617   -
618   - <img style="width:10px;height:10px;" src="~/../content/images/DA/angle-up.png">
619   - </button>
  594 + <button type="button" id="btnBrushSizeIncrement" ng-mouseover="mouseMoveToolTip(270, 100, 120, 'Brush Size')" ng-mouseleave="mouseOutToolTip()" class="btn btn-default" style="padding:0 5px;border-radius:0;font-size: 10px;vertical-align:top;"> <img style="width:10px;height:10px;" src="~/../content/images/DA/angle-up.png"> </button>
620 595 </div>
621 596 <div style="width: 100%; float: left; height: 16px;">
622   - <button type="button" id="btnBrushSizeDecrease" ng-mouseover="mouseMoveToolTip(270, 100, 120, 'Brush Size')" ng-mouseleave="mouseOutToolTip()" class="btn btn-default" style="padding:0 5px;border-radius:0;font-size: 10px;vertical-align:top;">
623   - <img style="width:10px;height:10px;" src="~/../content/images/DA/angle-down.png">
624   - </button>
  597 + <button type="button" id="btnBrushSizeDecrease" ng-mouseover="mouseMoveToolTip(270, 100, 120, 'Brush Size')" ng-mouseleave="mouseOutToolTip()" class="btn btn-default" style="padding:0 5px;border-radius:0;font-size: 10px;vertical-align:top;"> <img style="width:10px;height:10px;" src="~/../content/images/DA/angle-down.png"> </button>
625 598 </div>
626 599 </div>
627   -
628 600 </div>
629   -
630 601 <div class="pull-left" style="width:45%; margin-left:2%;margin-top:5px;">
631 602 <div id="slider-range-min-2" ng-mouseover="mouseMoveToolTip(270, 170, 120, 'Brush Size')" ng-mouseleave="mouseOutToolTip()"></div>
632 603 </div>
633 604 <div class="clearfix"></div>
634 605 </div>
635   -
636 606 </div>
637   -
638   -
639 607 </div>
640   -
641 608 </div>
642 609 </div>
643 610 </div>
644   -
645 611 </div>
646 612 </div>
647 613 </div>
648 614  
649 615 <!--Modal For Annotation Text Box-->
650 616 <div id="annotationTextModal" style="display:none;z-index: 1000000000;width:500px;height:241px;padding-right:0!important;position:fixed;left:0;right:0;top:0px;bottom:0;margin:auto;">
651   -
652 617 <div class="modal-content">
653 618 <div class="modal-header" style="background-color: #808D43;padding:10px;border-bottom:0;">
654 619 <!--<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>-->
... ... @@ -672,41 +637,11 @@
672 637 <option>48</option>
673 638 <option>72</option>
674 639 </select>
675   - <span style="vertical-align:middle;">
676   - <span id="text-bold" class="Edittext-btn-css">
677   - <i aria-hidden="true" class="fa fa-bold" style="color: #fff"></i>
678   - </span>
679   - <span id="text-italic" class="Edittext-btn-css">
680   - <i class="fa fa-italic" aria-hidden="true" style="color: #fff"></i>
681   -
682   - </span>
683   - <span id="text-underline" class="underline-btn-css">
684   - <i class="fa fa-underline" aria-hidden="true" style="color: #fff"></i>
685   - </span>
686   - </span>
687   -
  640 + <span style="vertical-align:middle;"> <span id="text-bold" class="Edittext-btn-css"> <i aria-hidden="true" class="fa fa-bold" style="color: #fff"></i> </span> <span id="text-italic" class="Edittext-btn-css"> <i class="fa fa-italic" aria-hidden="true" style="color: #fff"></i> </span> <span id="text-underline" class="underline-btn-css"> <i class="fa fa-underline" aria-hidden="true" style="color: #fff"></i> </span> </span>
688 641 <div class="form-group" id="font-color" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
689   -
690 642 <input type="text" id="saturation-demo" class="form-control demo" data-control="saturation" style="display:none;" value="#0088cc">
691 643 </div>
692   -
693   - <span style="vertical-align:middle;">
694   - <span id="text-left" class="Edittext-btn-css">
695   - <i aria-hidden="true" class="fa fa-align-left" style="color: #fff"></i>
696   - </span>
697   - <span id="text-center" class="Edittext-btn-css">
698   - <i class="fa fa-align-center" aria-hidden="true" style="color: #fff"></i>
699   -
700   -
701   - </span>
702   - <span id="text-right" class="underline-btn-css">
703   - <i class="fa fa-align-right" aria-hidden="true" style="color: #fff"></i>
704   -
705   -
706   - </span>
707   - </span>
708   -
709   -
  644 + <span style="vertical-align:middle;"> <span id="text-left" class="Edittext-btn-css"> <i aria-hidden="true" class="fa fa-align-left" style="color: #fff"></i> </span> <span id="text-center" class="Edittext-btn-css"> <i class="fa fa-align-center" aria-hidden="true" style="color: #fff"></i> </span> <span id="text-right" class="underline-btn-css"> <i class="fa fa-align-right" aria-hidden="true" style="color: #fff"></i> </span> </span>
710 645 </div>
711 646 </div>
712 647 <textarea class="form-control" id="text_area" rows="3" style="font-family: 'Verdana, sans-serif';font-size:14px; font-weight: normal; font-style: normal; color: #000; text-align: left; text-decoration: none;"></textarea>
... ... @@ -717,12 +652,8 @@
717 652 <button type="button" id="saveBtn" class="btn btn-primary" data-dismiss="modal" ng-click="saveText()">Save</button>
718 653 </div>
719 654 </div>
720   -
721 655 </div>
722 656  
723   -
724   -
725   -
726 657 <!--List manager-->
727 658 <!--List manager-->
728 659 <style>
... ... @@ -771,7 +702,6 @@
771 702 <div class="modal-body">
772 703 <div class="row paddingTopBtm10">
773 704 <div class="col-sm-12" ng-init="FillListManager()">
774   -
775 705 <div class="form-group">
776 706 <label for="sel1">Window</label>
777 707 <select class="form-control" id="viewName" disabled>
... ... @@ -781,13 +711,9 @@
781 711 </div>
782 712 <div style="">
783 713 <div class="form-group">
784   - <div ng-click="restrictBodySystemList()" class="btn btn-success btn-block" style="padding:3px 12px;">
785   - <i class=" fa fa-caret-right restrict-carret-icon"></i> <span>Restrict List to</span>
786   - </div>
  714 + <div ng-click="restrictBodySystemList()" class="btn btn-success btn-block" style="padding:3px 12px;"> <i class=" fa fa-caret-right restrict-carret-icon"></i> <span>Restrict List to</span> </div>
787 715 </div>
788   -
789   - <div id="restrictListDiv" style="display:none;">
790   -
  716 + <div id="restrictListDiv" style="display:none;">
791 717 <div class="well well-sm marginTopBtm10">
792 718 <div class="form-horizontal">
793 719 <div class="form-group">
... ... @@ -802,28 +728,20 @@
802 728 <select class="form-control" disabled>
803 729 <option value="1" selected="">Entire View</option>
804 730 </select>
805   - </div>
  731 + </div>
806 732 </div>
807 733 </div>
808 734 </div>
809   -
810   -
811 735 </div>
812 736  
813 737 <!--DA > List Manager > Multiple structure selection should not be available.-->
814 738 <div class="form-group">
815 739 <select id="termList" class="form-control" size="10" onclick="if (typeof (this.selectedIndex) != 'undefined') onListManagerTermSelection(this.options[this.selectedIndex].id)"></select>
816 740 </div>
817   -
818 741 </div>
819 742 <div style="clear:both;"></div>
820   -
821   -
822   -
823   -
824 743 </div>
825 744 </div>
826   -
827 745 </div>
828 746 <div class="modal-footer" id="totalTerms">
829 747 <!--<span class="pull-left marginTop5">424 Structures</span>-->
... ... @@ -835,10 +753,8 @@
835 753  
836 754 <div id="modelbackground"></div>
837 755  
838   -
839 756 <!--Edit Shape Modal-->
840 757  
841   -
842 758 <div class="modeleditstyle" id="modeleditstyle" style="z-index: 1000000000; background: white;width: 302px;position:absolute;left:40%;right:0;top:70px;">
843 759 <div class="modal-content">
844 760 <div class="modal-header annotation-modal-header">
... ... @@ -851,29 +767,26 @@
851 767 <div class="col-sm-12">
852 768 <div class="checkbox no-margin">
853 769 <label>
854   - <input id="fill-option" type="checkbox" checked onclick="enableDisableFillOption()"> Fill Option
  770 + <input id="fill-option" type="checkbox" checked onclick="enableDisableFillOption()">
  771 + Fill Option
855 772 </label>
856 773 </div>
857 774 </div>
858 775 <div class="col-sm-6 enableDisableOpacity">
859 776 <!--<div class="radio">
860   - <label>
861   - <input type="radio" name="filloption" id="filloption1" value="filloption1">
862   - <span class="">Texture</span>
863   - <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern">
864   - </label>
865   - </div>-->
  777 + <label>
  778 + <input type="radio" name="filloption" id="filloption1" value="filloption1">
  779 + <span class="">Texture</span>
  780 + <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern">
  781 + </label>
  782 + </div>-->
866 783 <div class="radio">
867 784 <label>
868 785 <input type="radio" name="filloption" id="filloption2" value="filloption2" checked style="margin-top:8px;">
869   -
870   -
871 786 <div id="editstylebackgroundcolor" class="form-group" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
872 787 <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
873 788 <input type="text" class="form-control outerBackgroundColor" data-control="saturation" style="display:none;" value="#0088cc">
874 789 </div>
875   -
876   -
877 790 </label>
878 791 </div>
879 792 </div>
... ... @@ -884,20 +797,15 @@
884 797 <div id="slider-range-min-3"></div>
885 798 </div>
886 799 </div>
887   -
888 800 <div class="row">
889 801 <label class="pull-left" style="font-weight:normal;">Opacity</label>
890 802 <div id="edit-slider-4" class="pull-left" style="width:53%; margin-left:3%; margin-top:2%;">
891 803 <div id="slider-range-min-4"></div>
892 804 </div>
893 805 </div>
894   -
895 806 <div class="clearfix"></div>
896   -
897   -
898 807 </div>
899 808 </div>
900   -
901 809 </div>
902 810 </div>
903 811 <div class="marginTopBtm10">
... ... @@ -906,7 +814,8 @@
906 814 <div class="col-sm-12">
907 815 <div class="checkbox no-margin">
908 816 <label>
909   - <input id="Outline-Option" onclick="enableDisableOutline()" type="checkbox" checked> Outline Option
  817 + <input id="Outline-Option" onclick="enableDisableOutline()" type="checkbox" checked>
  818 + Outline Option
910 819 </label>
911 820 </div>
912 821 </div>
... ... @@ -914,14 +823,10 @@
914 823 <label class="marginTop5">
915 824 <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
916 825 <div class="form-group" id="outlineColor" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
917   -
918 826 <input type="text" class="form-control borderColorCanvasPreview" data-control="saturation" style="display:none;" value="#0088cc">
919 827 </div>
920   -
921   -
922 828 </label>
923 829 </div>
924   -
925 830 <div class="col-sm-6 setEnableDisableForEditShapeStyle">
926 831 <div class="form-horizontal">
927 832 <div class="form-group">
... ... @@ -938,26 +843,19 @@
938 843 </div>
939 844 </div>
940 845 </div>
941   -
942 846 </div>
943 847 </div>
944 848 </div>
945   -
946 849 <div class="marginTopBtm10">
947   -
948 850 <div class="well well-sm no-margin-btm blankshapediv">
949 851 <div class="outlinediv" id="outlinedivId" style="border: 1px solid #000000;">
950   - <div id="imgOpacity" style="background-color: #ffffff" class="fullcolordiv imgopacity">
951   - </div>
  852 + <div id="imgOpacity" style="background-color: #ffffff" class="fullcolordiv imgopacity"> </div>
952 853 </div>
953 854 </div>
954   -
955 855 </div>
956 856 </div>
957 857 <div class="modal-footer">
958   - <button id="btnShapeStyle" type="button" class="btn btn-primary btn-sm" ng-click="setPropertiesForShapes('imgOpacity')">
959   - OK
960   - </button>
  858 + <button id="btnShapeStyle" type="button" class="btn btn-primary btn-sm" ng-click="setPropertiesForShapes('imgOpacity')"> OK </button>
961 859 <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal" ng-click="disableAnnotationToolBar()">Cancel</button>
962 860 </div>
963 861 </div>
... ... @@ -983,16 +881,17 @@
983 881 </div>
984 882 </div>
985 883 </div>
986   -
987 884 </div>
988 885 <div class="modal-footer">
989 886 <div class="row">
990 887 <input type="file" id="file1" style="display:none">
991 888 <!--<a href="data:application/xml;charset=utf-8,your code here" download="filename.html">Save</a-->>
992   - <div class="col-sm-12"><button id="btnSaveEI" class="btn btn-primary" type="button">Ok</button></div> <!--onclick="makeScreenshot();"--><!--ng-click="dialogs.saveAs()"--><!--ng-click="ShowAlert()"-->
  889 + <div class="col-sm-12">
  890 + <button id="btnSaveEI" class="btn btn-primary" type="button">Ok</button>
  891 + </div>
  892 + <!--onclick="makeScreenshot();"--><!--ng-click="dialogs.saveAs()"--><!--ng-click="ShowAlert()"-->
993 893 </div>
994 894 </div>
995   -
996 895 </div>
997 896 </div>
998 897 </div>
... ... @@ -1001,25 +900,13 @@
1001 900 <div class="print-box portrait-box" id="printBox" style="display: none;">
1002 901 <div id="printDivContent">
1003 902 <div class="">
1004   - <div class="col-sm-6" style="top: 10px; position: absolute; left: 10px;">
1005   - <span class="pull-left font12 span-font" id="spnModule"></span>
1006   - </div>
1007   - <div class="col-sm-6" style="top: 10px; position: absolute; right: 10px;">
1008   - <span class="pull-right font12 span-font" id="spnBodyViewTitle"></span>
1009   - </div>
1010   - </div>
1011   - <div class=" mar-top-25" align="center" id="dvPortrait" style="text-align: center;">
1012   - <img src="" alt="" class="logo-image" id="snipImage" style="width: 100%;" />
  903 + <div class="col-sm-6" style="top: 10px; position: absolute; left: 10px;"> <span class="pull-left font12 span-font" id="spnModule"></span> </div>
  904 + <div class="col-sm-6" style="top: 10px; position: absolute; right: 10px;"> <span class="pull-right font12 span-font" id="spnBodyViewTitle"></span> </div>
1013 905 </div>
  906 + <div class=" mar-top-25" align="center" id="dvPortrait" style="text-align: center;"> <img src="" alt="" class="logo-image" id="snipImage" style="width: 100%;" /> </div>
1014 907 <div>
1015   - <div class="col-sm-8" style="position: absolute; bottom: 20px;">
1016   - <span class="pull-left marginTop10 font12 span-font">Copyright 2016 A.D.A.M., Inc. All Rights Reserved</span>
1017   - </div>
1018   - <div class="col-sm-4" style="position: absolute; bottom: 20px; right: 10px;">
1019   - <span class="pull-right marginTop10 bgnone no-margin">
1020   - <img class="logo-image" src="content/images/adam-logo-small.png" alt="">
1021   - </span>
1022   - </div>
  908 + <div class="col-sm-8" style="position: absolute; bottom: 20px;"> <span class="pull-left marginTop10 font12 span-font">Copyright 2016 A.D.A.M., Inc. All Rights Reserved</span> </div>
  909 + <div class="col-sm-4" style="position: absolute; bottom: 20px; right: 10px;"> <span class="pull-right marginTop10 bgnone no-margin"> <img class="logo-image" src="content/images/adam-logo-small.png" alt=""> </span> </div>
1023 910 </div>
1024 911 <div class="clearfix"></div>
1025 912 </div>
... ... @@ -1027,132 +914,242 @@
1027 914  
1028 915 <!--Print Preview Modal-->
1029 916 <div id="dvPrintPreview" style="display: none;"></div>
  917 + </div>
  918 + </div>
  919 + <!--RESET PASSWORD FORM-->
  920 + <div id="passwordReset" ng-show="isVisibleResetPass">
  921 + <table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
  922 + <tbody>
  923 + <tr>
  924 + <td align="center" valign="middle" bgcolor="#393939 " style="padding:30px 0 20px 0;"><a href="#"><img src="../content/images/logo.png" alt="AIA" title="AIA" /></a></td>
  925 + </tr>
  926 + <tr>
  927 + <td align="center" valign="top" bgcolor="#808d43" style="padding:20px; overflow:hidden;">
  928 + <table width="100%" border="0" cellspacing="0" cellpadding="0" id='resetPwdform' ng-controller="HomeController">
  929 + <!--ng-show="isVisibleResetPass"-->
  930 + <tbody>
  931 +
  932 + <tr>
  933 + <td style=" font-size:26px; font-weight:bold; color:#fff; font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif"><strong>Reset Password</strong></td>
  934 + </tr>
  935 + <tr>
  936 + <td>&nbsp;</td>
  937 + </tr>
  938 + <tr>
  939 + <td style="font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; color:#fff;">New Password </td>
  940 + </tr>
  941 + <tr>
  942 + <td><input class="form-control" id="" value="*****" type="password" style="padding:3px 5px; height:25px; width:98%;" ng-model="userInfo.newpass"></td>
  943 + </tr>
  944 + <tr>
  945 + <td>&nbsp;</td>
  946 + </tr>
  947 + <tr>
  948 + <td style="font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; color:#fff;">Confirm Password </td>
  949 + </tr>
  950 +
  951 + <tr>
  952 + <td><input class="form-control" id="" value="*****" ng-model="userInfo.newpass2" type="password" style="padding:3px 5px; height:25px; width:98%;"></td>
  953 + </tr>
  954 + <tr>
  955 + <td>&nbsp;</td>
  956 + </tr>
  957 + <tr>
  958 + <td>
  959 + <button type="submit" ng-click="UpdateUserPassword(userInfo)" style="color:#423030; background:#ff9900; border:1px solid #ff9900; cursor:pointer; color:#fff; padding:5px 10px; font-size:16px; text-transform:uppercase; text-align:center; text-decoration:none; font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif" id="btnUpdatePass">Submit</button>
  960 + <button type="submit" style="color:#423030; background:#231f20; border:1px solid #231f20; cursor:pointer; color:#fff; padding:5px 10px; font-size:16px; text-transform:uppercase; text-align:center; text-decoration:none; font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif">Close</button>
  961 + </td>
  962 + </tr>
  963 + </tbody>
  964 + </table>
  965 + </tr>
  966 +
  967 +
  968 + </tbody>
  969 + </table>
  970 + </div>
  971 + <!--<div id='resetPwdform' ng-show="isVisibleResetPass" data-toggle="modal">
  972 + <div class="modal fade" tabindex="-1" role="dialog" id="reset">
  973 + <div class="modal-dialog" role="document">
  974 + <div class="modal-content">
  975 + <div class="modal-header">
  976 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  977 + <h4 class="modal-title">Reset Password</h4>
  978 + </div>
  979 + <div class="modal-body">
  980 + <form id="resetPass" class="form-horizontal pad20">
  981 + <div class="form-group">
  982 + <label for="Newpass">New Password</label>
  983 + <input class="form-control" id="" placeholder="*****" type="email" ng-model="password" required ng-show="restPasss.email.$error.required">
  984 + </div>
1030 985  
1031   - <!--<div class="modal fade" id="editshapestyle" tabindex="-1" role="dialog" aria-labelledby="myModalLabel33" style="z-index:1000000000;width:302px;margin-left:auto;margin-right:auto;overflow:hidden;height:460px;">
1032   - <div class="modal-dialog modal-sm" role="document">
1033   - <div class="modal-content">
1034   - <div class="modal-header annotation-modal-header">
1035   - <h4 class="modal-title" id="myModalLabel33">Edit Shape Style</h4>
  986 + <div class="form-group">
  987 + <label for="confom">Confirm Password</label>
  988 + <input class="form-control" id="" placeholder="*****" type="email" ng-model="password2" required ng-show="restpasss.email.$error.required">
  989 + </div>
  990 + </form>
  991 + </div>
  992 + <div class="modal-footer">
  993 + <button type="button" class="btn btn-info" ng-click="CallResetPassword">Submit</button>
  994 + <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
  995 + </div>
1036 996 </div>
1037   - <div class="modal-body">
1038   - <div class="marginTopBtm10">
1039   - <div class="well well-sm no-margin-btm">
1040   - <div class="row">
1041   - <div class="col-sm-12">
1042   - <div class="checkbox no-margin">
1043   - <label>
1044   - <input id="fill-option" type="checkbox" checked onclick="enableDisableFillOption()"> Fill Option
1045   - </label>
1046   - </div>
1047   - </div>
1048   - <div class="col-sm-6 enableDisableOpacity">
1049   - <div class="radio">
1050   - <label>
1051   - <input type="radio" name="filloption" id="filloption1" value="filloption1">
1052   - <span class="">Texture</span>
1053   - <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern">
1054   - </label>
  997 + </div>
  998 + </div>
  999 + </div>-->
  1000 + <!--<div class="modal fade reset-pass" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" ng-show="isVisibleResetPass" data-tar>
  1001 + <div class="modal-dialog" role="document">
  1002 + <div class="modal-content">
  1003 + <div class="modal-header">
  1004 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  1005 + <h4 class="modal-title">Reset Password</h4>
  1006 + </div>
  1007 +
  1008 + <form class="form-horizontal pad20">
  1009 + <div class="form-group">
  1010 + <label for="Newpass">New Password</label>
  1011 + <input class="form-control" id="" placeholder="*****" type="email">
  1012 + </div>
  1013 +
  1014 + <div class="form-group">
  1015 + <label for="confom">Confirm Password</label>
  1016 + <input class="form-control" id="" placeholder="*****" type="email">
  1017 + </div>
  1018 + </form>
  1019 +
  1020 + <div class="modal-footer">
  1021 +
  1022 + <button type="button" class="btn btn-info">Save changes</button>
  1023 + <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
  1024 + </div>
  1025 + </div>
  1026 + </div>
  1027 + </div>-->
  1028 + <!--<div class="modal fade" id="editshapestyle" tabindex="-1" role="dialog" aria-labelledby="myModalLabel33" style="z-index:1000000000;width:302px;margin-left:auto;margin-right:auto;overflow:hidden;height:460px;">
  1029 + <div class="modal-dialog modal-sm" role="document">
  1030 + <div class="modal-content">
  1031 + <div class="modal-header annotation-modal-header">
  1032 + <h4 class="modal-title" id="myModalLabel33">Edit Shape Style</h4>
  1033 + </div>
  1034 + <div class="modal-body">
  1035 + <div class="marginTopBtm10">
  1036 + <div class="well well-sm no-margin-btm">
  1037 + <div class="row">
  1038 + <div class="col-sm-12">
  1039 + <div class="checkbox no-margin">
  1040 + <label>
  1041 + <input id="fill-option" type="checkbox" checked onclick="enableDisableFillOption()"> Fill Option
  1042 + </label>
  1043 + </div>
1055 1044 </div>
1056   - <div class="radio">
1057   - <label>
1058   - <input type="radio" name="filloption" id="filloption2" value="filloption2" checked style="margin-top:8px;">
  1045 + <div class="col-sm-6 enableDisableOpacity">
  1046 + <div class="radio">
  1047 + <label>
  1048 + <input type="radio" name="filloption" id="filloption1" value="filloption1">
  1049 + <span class="">Texture</span>
  1050 + <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern">
  1051 + </label>
  1052 + </div>
  1053 + <div class="radio">
  1054 + <label>
  1055 + <input type="radio" name="filloption" id="filloption2" value="filloption2" checked style="margin-top:8px;">
1059 1056  
1060 1057  
1061   - <div id="editstylebackgroundcolor" class="form-group" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
1062   - <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
1063   - <input type="text" class="form-control outerBackgroundColor" data-control="saturation" style="display:none;" value="#0088cc">
1064   - </div>
  1058 + <div id="editstylebackgroundcolor" class="form-group" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
  1059 + <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
  1060 + <input type="text" class="form-control outerBackgroundColor" data-control="saturation" style="display:none;" value="#0088cc">
  1061 + </div>
1065 1062  
1066 1063  
1067 1064  
1068   - </label>
  1065 + </label>
  1066 + </div>
1069 1067 </div>
1070   - </div>
1071   - <div class="col-sm-6 no-padding marginTop10 enableDisableOpacity">
1072   - <div class="row">
1073   - <label class="pull-left" style="font-weight:normal;">Scale</label>
1074   - <div id="edit-slider-3" class="pull-left" style="width:62%; margin-left:3%; margin-top:2%;">
1075   - <div id="slider-range-min-3"></div>
  1068 + <div class="col-sm-6 no-padding marginTop10 enableDisableOpacity">
  1069 + <div class="row">
  1070 + <label class="pull-left" style="font-weight:normal;">Scale</label>
  1071 + <div id="edit-slider-3" class="pull-left" style="width:62%; margin-left:3%; margin-top:2%;">
  1072 + <div id="slider-range-min-3"></div>
1076 1073  
  1074 + </div>
1077 1075 </div>
1078   - </div>
1079 1076  
1080   - <div class="row">
1081   - <label class="pull-left" style="font-weight:normal;">Opacity</label>
1082   - <div id="edit-slider-4" class="pull-left" style="width:53%; margin-left:3%; margin-top:2%;">
1083   - <div id="slider-range-min-4"></div>
  1077 + <div class="row">
  1078 + <label class="pull-left" style="font-weight:normal;">Opacity</label>
  1079 + <div id="edit-slider-4" class="pull-left" style="width:53%; margin-left:3%; margin-top:2%;">
  1080 + <div id="slider-range-min-4"></div>
  1081 + </div>
1084 1082 </div>
1085   - </div>
1086 1083  
1087   - <div class="clearfix"></div>
  1084 + <div class="clearfix"></div>
1088 1085  
1089 1086  
  1087 + </div>
1090 1088 </div>
1091   - </div>
1092 1089  
  1090 + </div>
1093 1091 </div>
1094   - </div>
1095   - <div class="marginTopBtm10">
1096   - <div class="well well-sm no-margin-btm">
1097   - <div class="row">
1098   - <div class="col-sm-12">
1099   - <div class="checkbox no-margin">
1100   - <label>
1101   - <input id="Outline-Option" onclick="enableDisableOutline()" type="checkbox" checked> Outline Option
1102   - </label>
  1092 + <div class="marginTopBtm10">
  1093 + <div class="well well-sm no-margin-btm">
  1094 + <div class="row">
  1095 + <div class="col-sm-12">
  1096 + <div class="checkbox no-margin">
  1097 + <label>
  1098 + <input id="Outline-Option" onclick="enableDisableOutline()" type="checkbox" checked> Outline Option
  1099 + </label>
  1100 + </div>
1103 1101 </div>
1104   - </div>
1105   - <div class="col-sm-6 setEnableDisableForEditShapeStyle">
1106   - <label class="marginTop5">
1107   - <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
1108   - <div class="form-group" id="outlineColor" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
  1102 + <div class="col-sm-6 setEnableDisableForEditShapeStyle">
  1103 + <label class="marginTop5">
  1104 + <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
  1105 + <div class="form-group" id="outlineColor" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
1109 1106  
1110   - <input type="text" class="form-control borderColorCanvasPreview" data-control="saturation" style="display:none;" value="#0088cc">
1111   - </div>
  1107 + <input type="text" class="form-control borderColorCanvasPreview" data-control="saturation" style="display:none;" value="#0088cc">
  1108 + </div>
1112 1109  
1113 1110  
1114   - </label>
1115   - </div>
  1111 + </label>
  1112 + </div>
1116 1113  
1117   - <div class="col-sm-6 setEnableDisableForEditShapeStyle">
1118   - <div class="form-horizontal">
1119   - <div class="form-group">
1120   - <label class="col-sm-3 control-label" style=" font-weight:normal; padding-top:9px;">Size</label>
1121   - <div class="col-sm-9 marginTop5">
1122   - <select id="borderWidthCanvasElement" class="form-control input-sm">
1123   - <option value="1">1</option>
1124   - <option value="2">2</option>
1125   - <option value="3">3</option>
1126   - <option value="4">4</option>
1127   - <option value="5">5</option>
1128   - </select>
  1114 + <div class="col-sm-6 setEnableDisableForEditShapeStyle">
  1115 + <div class="form-horizontal">
  1116 + <div class="form-group">
  1117 + <label class="col-sm-3 control-label" style=" font-weight:normal; padding-top:9px;">Size</label>
  1118 + <div class="col-sm-9 marginTop5">
  1119 + <select id="borderWidthCanvasElement" class="form-control input-sm">
  1120 + <option value="1">1</option>
  1121 + <option value="2">2</option>
  1122 + <option value="3">3</option>
  1123 + <option value="4">4</option>
  1124 + <option value="5">5</option>
  1125 + </select>
  1126 + </div>
1129 1127 </div>
1130 1128 </div>
1131 1129 </div>
1132   - </div>
1133 1130  
  1131 + </div>
1134 1132 </div>
1135 1133 </div>
1136   - </div>
1137 1134  
1138   - <div class="marginTopBtm10">
1139   - <div class="well well-sm no-margin-btm">
1140   - <img id="imgOpacity" class="img-rounded img-responsive imgopacity" alt="..." src="content/images/blank-shape.jpg">
  1135 + <div class="marginTopBtm10">
  1136 + <div class="well well-sm no-margin-btm">
  1137 + <img id="imgOpacity" class="img-rounded img-responsive imgopacity" alt="..." src="content/images/blank-shape.jpg">
  1138 + </div>
1141 1139 </div>
1142 1140 </div>
1143   - </div>
1144   - <div class="modal-footer">
1145   - <button type="button" class="btn btn-primary btn-sm" ng-click="setPropertiesForShapes('imgOpacity')">
  1141 + <div class="modal-footer">
  1142 + <button type="button" class="btn btn-primary btn-sm" ng-click="setPropertiesForShapes('imgOpacity')">
1146 1143  
1147   - OK
1148   - </button>
1149   - <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal" ng-click="disableAnnotationToolBar()">Cancel</button>
  1144 + OK
  1145 + </button>
  1146 + <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal" ng-click="disableAnnotationToolBar()">Cancel</button>
  1147 + </div>
1150 1148 </div>
1151 1149 </div>
1152   - </div>
1153   - </div>-->
  1150 + </div>-->
1154 1151  
1155   - <script>
  1152 + <script>
1156 1153  
1157 1154 function enableDisableFillOption() {
1158 1155 //debugger;
... ... @@ -1218,9 +1215,8 @@
1218 1215 }
1219 1216 }
1220 1217  
1221   - </script>
1222   -
1223   - <script>
  1218 + </script>
  1219 + <script>
1224 1220 function Brushsize(object) {
1225 1221  
1226 1222 object.value = object.value.replace(/[^0-9]/g, '');
... ... @@ -1236,70 +1232,66 @@
1236 1232 }
1237 1233  
1238 1234 }
1239   - </script>
1240   -
1241   -
1242   - <!--<script src="libs/jquery/1.11.3/jquery.min.js"></script>-->
1243   - <script src="libs/jquery/2.1.3/jquery.min.js"></script>
1244   - <script src="libs/jquery/1.11.4/jquery-ui.js"></script>
1245   - <script src="libs/jquery/jquery_plugin/jquery.mCustomScrollbar.concat.min.js"></script>
1246   - <script src="themes/default/scripts/bootstrap/3.3.5/bootstrap.js"></script>
1247   - <script src="libs/angular/1.4.9/angular.min.js"></script>
1248   - <script src="libs/angular/1.4.9/angular-route.min.js"></script>
1249   - <script src="libs/angular/1.4.9/angular-sanitize.min.js"></script>
1250   - <script src="libs/angular/1.4.9/ngStorage.js"></script>
1251   - <script src="content/js/custom/custom.js"></script>
1252   - <!--Annotation Toolbar : jcanvas Library-->
1253   -
1254   - <script src="libs/jcanvas/jcanvas.min.js"></script>
1255   - <script src="libs/jcanvas/jcanvas.handle.min.js"></script>
1256   -
1257   - <script src="libs/jinqJs.js"></script>
1258   - <script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js"></script>
1259   - <script src="libs/video_4_12_11/video_4_12_11.js"></script>
1260   - <script src="libs/jquery/jquery_plugin/SpeechBubble/bubble.js"></script>
1261   - <script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>
1262   - <!--<script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.min.js"></script>-->
1263   - <script src="app/main/AIA.js"></script>
1264   - <script src="app/main/Link.js"></script>
1265   - <script src="content/scripts/js/custom/custom.js"></script>
1266   - <script src="app/filters/ColorMatrixFilter.js"></script>
1267   - <script src="app/utility/Matrix.js"></script>
1268   - <script src="app/utility/Point.js"></script>
1269   - <script src="app/utility/Rectangle.js"></script>
1270   - <script src="app/utility/BitmapData.js"></script>
1271   - <script src="app/utility/Paint.js"></script>
1272   - <script src="app/controllers/DAController.js"></script>
1273   - <script src="app/controllers/CIController.js"></script>
1274   - <script src="app/controllers/CAController.js"></script>
1275   - <script src="app/controllers/3dAController.js"></script>
1276   - <script src="app/controllers/CurrBuildController.js"></script>
1277   - <script src="app/controllers/AnatTestController.js"></script>
1278   - <script src="app/controllers/LabExercController.js"></script>
1279   - <script src="app/controllers/ADAMImgController.js"></script>
1280   - <script src="app/controllers/AODController.js"></script>
1281   - <script src="app/controllers/HomeController.js"></script>
1282   - <script src="app/controllers/LinkController.js"></script>
1283   - <script src="app/services/AuthenticationService.js"></script>
1284   -
1285   - <script src="app/services/DataService.js"></script>
1286   - <script src="libs/jquery/jquery_plugin/jqueryui.js"></script>
1287   -
1288   - <script src="libs/jquery/jquery_plugin/color-picker/jquery.minicolors.min.js"></script>
1289   - <!--<script src="libs/colorpicker/jquery.minicolors.min.js"></script>-->
1290   - <!--<script src="libs/color-picker/jquery.minicolors.min.js"></script>-->
1291   -
1292   - <script src="libs/sketch.js"></script>
1293   -
1294   - <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>-->
1295   - <script src="libs/html2canvas.js"></script>
1296   - <script src="libs/FileSaver.js"></script>
1297   - <!--<script type="text/javascript">
1298   - $(function () {
1299   - $('#canvas').sketch();
1300   - });
1301   - </script>-->
1302   - <script>
  1235 + </script>
  1236 +
  1237 + <!--<script src="libs/jquery/1.11.3/jquery.min.js"></script>-->
  1238 + <script src="libs/jquery/2.1.3/jquery.min.js"></script>
  1239 + <script src="libs/jquery/1.11.4/jquery-ui.js"></script>
  1240 + <script src="libs/jquery/jquery_plugin/jquery.mCustomScrollbar.concat.min.js"></script>
  1241 + <script src="themes/default/scripts/bootstrap/3.3.5/bootstrap.js"></script>
  1242 + <script src="libs/angular/1.4.9/angular.min.js"></script>
  1243 + <script src="libs/angular/1.4.9/angular-route.min.js"></script>
  1244 + <script src="libs/angular/1.4.9/angular-sanitize.min.js"></script>
  1245 + <script src="libs/angular/1.4.9/ngStorage.js"></script>
  1246 + <script src="content/js/custom/custom.js"></script>
  1247 + <!--Annotation Toolbar : jcanvas Library-->
  1248 + <script src="libs/jcanvas/jcanvas.min.js"></script>
  1249 + <script src="libs/jcanvas/jcanvas.handle.min.js"></script>
  1250 +
  1251 + <script src="libs/jinqJs.js"></script>
  1252 + <script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js"></script>
  1253 + <script src="libs/video_4_12_11/video_4_12_11.js"></script>
  1254 + <script src="libs/jquery/jquery_plugin/SpeechBubble/bubble.js"></script>
  1255 + <script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>
  1256 + <!--<script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.min.js"></script>-->
  1257 + <script src="app/main/AIA.js"></script>
  1258 + <script src="app/main/Link.js"></script>
  1259 + <script src="content/scripts/js/custom/custom.js"></script>
  1260 + <script src="app/filters/ColorMatrixFilter.js"></script>
  1261 + <script src="app/utility/Matrix.js"></script>
  1262 + <script src="app/utility/Point.js"></script>
  1263 + <script src="app/utility/Rectangle.js"></script>
  1264 + <script src="app/utility/BitmapData.js"></script>
  1265 + <script src="app/utility/Paint.js"></script>
  1266 + <script src="app/controllers/DAController.js"></script>
  1267 + <script src="app/controllers/CIController.js"></script>
  1268 + <script src="app/controllers/CAController.js"></script>
  1269 + <script src="app/controllers/3dAController.js"></script>
  1270 + <script src="app/controllers/CurrBuildController.js"></script>
  1271 + <script src="app/controllers/AnatTestController.js"></script>
  1272 + <script src="app/controllers/LabExercController.js"></script>
  1273 + <script src="app/controllers/ADAMImgController.js"></script>
  1274 + <script src="app/controllers/AODController.js"></script>
  1275 + <script src="app/controllers/HomeController.js"></script>
  1276 + <script src="app/controllers/LinkController.js"></script>
  1277 + <script src="app/services/AuthenticationService.js"></script>
  1278 + <script src="app/services/DataService.js"></script>
  1279 + <script src="libs/jquery/jquery_plugin/jqueryui.js"></script>
  1280 + <script src="libs/jquery/jquery_plugin/color-picker/jquery.minicolors.min.js"></script>
  1281 + <!--<script src="libs/colorpicker/jquery.minicolors.min.js"></script>-->
  1282 + <!--<script src="libs/color-picker/jquery.minicolors.min.js"></script>-->
  1283 +
  1284 + <script src="libs/sketch.js"></script>
  1285 +
  1286 + <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>-->
  1287 + <script src="libs/html2canvas.js"></script>
  1288 + <script src="libs/FileSaver.js"></script>
  1289 + <!--<script type="text/javascript">
  1290 + $(function () {
  1291 + $('#canvas').sketch();
  1292 + });
  1293 + </script>-->
  1294 + <script>
1303 1295 $(function () {
1304 1296 $("#slider-range-min-2").slider({
1305 1297 range: "min",
... ... @@ -1382,8 +1374,8 @@
1382 1374 $('[data-toggle="tooltip"]').tooltip();
1383 1375 })
1384 1376 });
1385   - </script>
1386   - <script>
  1377 + </script>
  1378 + <script>
1387 1379 (function ($) {
1388 1380 $(window).load(function () {
1389 1381 $(".sidebar").mCustomScrollbar({
... ... @@ -1393,8 +1385,8 @@
1393 1385  
1394 1386 });
1395 1387 })(jQuery);
1396   - </script>
1397   - <script>
  1388 + </script>
  1389 + <script>
1398 1390 $(function () {
1399 1391 $(".modal").draggable();
1400 1392 $(".annotationTollbar").draggable();
... ... @@ -1402,9 +1394,8 @@
1402 1394 $("#annotationTextModal").draggable();
1403 1395 $("#modal-settings").draggable();
1404 1396 });
1405   - </script>
1406   -
1407   - <script type="text/javascript">
  1397 + </script>
  1398 + <script type="text/javascript">
1408 1399 $(function () {
1409 1400 var colpick = $('.demo').each(function () {
1410 1401  
... ... @@ -1439,10 +1430,8 @@
1439 1430 }
1440 1431 });
1441 1432 });
1442   - </script>
1443   -
1444   -
1445   - <script type="text/javascript">
  1433 + </script>
  1434 + <script type="text/javascript">
1446 1435 $(function () {
1447 1436  
1448 1437 $("#text-left").on('click', function () {
... ... @@ -1543,10 +1532,8 @@
1543 1532  
1544 1533  
1545 1534  
1546   - </script>
1547   -
1548   -
1549   - <script>
  1535 + </script>
  1536 + <script>
1550 1537 $(document).ready(function () {
1551 1538 // $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").addClass("ActiveDefaultColorAnnotation");
1552 1539 $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").css({ "background-color": "#000000" });
... ... @@ -1629,9 +1616,8 @@
1629 1616  
1630 1617  
1631 1618 });
1632   - </script>
1633   -
1634   - <script>
  1619 + </script>
  1620 + <script>
1635 1621 $(function () {
1636 1622 $("#slider-range-min-3").slider({
1637 1623 range: "min",
... ... @@ -1647,9 +1633,8 @@
1647 1633  
1648 1634  
1649 1635 });
1650   - </script>
1651   -
1652   - <script>
  1636 + </script>
  1637 + <script>
1653 1638 $(function () {
1654 1639  
1655 1640  
... ... @@ -1675,11 +1660,8 @@
1675 1660  
1676 1661  
1677 1662  
1678   - </script>
1679   -
1680   -
1681   -
1682   - <script>
  1663 + </script>
  1664 + <script>
1683 1665 $(function () {
1684 1666  
1685 1667  
... ... @@ -1715,9 +1697,9 @@
1715 1697 });
1716 1698  
1717 1699 });
1718   - </script>
1719   - <!-- Export Image Save Click-->
1720   - <script>
  1700 + </script>
  1701 + <!-- Export Image Save Click-->
  1702 + <script>
1721 1703 $(function () {
1722 1704 $("#btnSaveEI").click(function () {
1723 1705 html2canvas($("#canvasDiv"), {
... ... @@ -1744,8 +1726,8 @@
1744 1726 }
1745 1727 return new Blob([ab], { type: 'image/jpeg' });
1746 1728 }
1747   - </script>
1748   - <script>
  1729 + </script>
  1730 + <script>
1749 1731 function ResizeImage(sizePercent) {
1750 1732 var autoWidth = 427;
1751 1733 var autoHeight = 547;
... ... @@ -1787,6 +1769,28 @@
1787 1769 }
1788 1770 }
1789 1771 }
1790   - </script>
  1772 + </script>
  1773 + <!--Reset password modal dialog-->
  1774 + <script>
  1775 + $(document).ready(function () {
  1776 + if (true) {
  1777 + var htmFileUrl = 'app/views/Home/resetPwd.html'; //<!--#resetpass" href="/app/views/Home/resetPwd.html"-->
  1778 + //$(".modal-content").load(htmFileUrl).dialog({ modal: true });
  1779 + }
  1780 + });
  1781 +
  1782 + //function UpdateUserPassword()
  1783 + //{
  1784 + // alert('called from Index');
  1785 + //}
  1786 + </script>
  1787 + <!-- Modal HTML -->
  1788 + <!--<div id="resetpass" class="modal fade" ng-show="isvisibleresetpass">
  1789 + <div class="modal-dialog modal-sm">
  1790 + <div class="modal-content">-->
  1791 + <!-- content will be loaded here from "resetpwd.html" file -->
  1792 + <!--</div>
  1793 + </div>
  1794 + </div>-->
1791 1795 </body>
1792 1796 </html>
1793 1797 \ No newline at end of file
... ...