Commit 252cf5ea75d99f27c655f47fcb18023dc4edfb53

Authored by Nikita Kulshreshtha
2 parents 1d045e4f 12592eb0

Merge branch 'ResetPass_Complete' into Develop

400-SOURCECODE/AIAHTML5.API/AIAHTML5.API.csproj
... ... @@ -95,7 +95,10 @@
95 95 </ItemGroup>
96 96 <ItemGroup>
97 97 <Content Include="Global.asax" />
  98 + <Content Include="content\images\logo.png" />
98 99 <Content Include="index.html" />
  100 + <Content Include="Templates\forgot-Password.html" />
  101 + <Content Include="Templates\forgot-UserId.html" />
99 102 <Content Include="Web.config">
100 103 <SubType>Designer</SubType>
101 104 </Content>
... ... @@ -104,9 +107,12 @@
104 107 <Compile Include="App_Start\WebApiConfig.cs" />
105 108 <Compile Include="Constants\AIAConstants.cs" />
106 109 <Compile Include="Controllers\AuthenticateController.cs" />
  110 + <Compile Include="Controllers\ForgotUserController.cs" />
  111 + <Compile Include="Controllers\ResetPasswordController.cs" />
107 112 <Compile Include="Global.asax.cs">
108 113 <DependentUpon>Global.asax</DependentUpon>
109 114 </Compile>
  115 + <Compile Include="Models\ResetUser.cs" />
110 116 <Compile Include="Models\Users.cs" />
111 117 <Compile Include="Properties\AssemblyInfo.cs" />
112 118 <Compile Include="Properties\Settings.Designer.cs">
... ... @@ -114,6 +120,7 @@
114 120 <DesignTimeSharedInput>True</DesignTimeSharedInput>
115 121 <DependentUpon>Settings.settings</DependentUpon>
116 122 </Compile>
  123 + <Compile Include="Utility\EmailUtility.cs" />
117 124 </ItemGroup>
118 125 <ItemGroup>
119 126 <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 +
  39 + dynamic userData = AIAHTML5.API.Models.Users.GetUserByEmail(userInfo);
  40 + if (Convert.ToString(userData) != AIAConstants.USER_NOT_FOUND && Convert.ToString(userData) != AIAConstants.ERROR_IN_FECTHING_DETAILS)
  41 + {
  42 + bool isMailSent = false;
  43 + string userDetails = Newtonsoft.Json.JsonConvert.SerializeObject(userData);
  44 + if (Convert.ToBoolean(userInfo["isPassword"]))
  45 + isMailSent = AIAHTML5.API.Models.ResetUser.SendEmail(userData, true);
  46 + else
  47 + isMailSent = AIAHTML5.API.Models.ResetUser.SendEmail(userData, false);
  48 +
  49 + if (isMailSent)
  50 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userDetails) };
  51 + else
  52 + return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(userData) };
  53 + }
  54 + else
  55 + {
  56 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userData) }; //new StringContent(userData)
  57 +
  58 + }
  59 + }
  60 +
  61 + // PUT api/<controller>/5
  62 + public void Put(int id, [FromBody]string value)
  63 + {
  64 + }
  65 +
  66 + // DELETE api/<controller>/5
  67 + public void Delete(int id)
  68 + {
  69 + }
  70 + }
  71 +}
0 72 \ 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;
  42 + string upInfo;
  43 + if (!String.IsNullOrEmpty(userInfo["newPassword"].ToString()))
  44 + {
  45 + updatedInfo = AIAHTML5.API.Models.Users.UpdatePassword(userInfo);
  46 + upInfo = Newtonsoft.Json.JsonConvert.SerializeObject(updatedInfo);
  47 + if (!string.IsNullOrEmpty(Convert.ToString(updatedInfo)))
  48 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(upInfo) };
  49 + else
  50 + return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(userData) };
  51 + }
  52 + else
  53 + return new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent("Nothing to update") };
  54 + }
  55 + else
  56 + {
  57 + return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(userData) };
  58 + }
  59 + }
  60 +
  61 + // PUT api/<controller>/5
  62 + public void Put(int id, [FromBody]string value)
  63 + {
  64 + }
  65 +
  66 + // DELETE api/<controller>/5
  67 + public void Delete(int id)
  68 + {
  69 + }
  70 + }
  71 +}
0 72 \ 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 +using System.Configuration;
  16 +
  17 +namespace AIAHTML5.API.Models
  18 +{
  19 + public class ResetUser
  20 + {
  21 + public static bool SendEmail(dynamic UserDetails, bool isPassword)
  22 + {
  23 + try
  24 + {
  25 + List<LinkedResource> lstLinkedResource = new List<LinkedResource>();
  26 + EmailUtility emailUtility = new EmailUtility();
  27 + List<string> lstToAddress = new List<string>();
  28 + List<string> lstBccAddress = new List<string>();
  29 +
  30 + string emailText = string.Empty;
  31 + string userId = string.Empty;
  32 + string userMail = string.Empty;
  33 + string userName = string.Empty;
  34 + string fName = string.Empty;
  35 + string lName = string.Empty;
  36 + string site_url = Convert.ToString(ConfigurationManager.AppSettings["Site_URL"]);
  37 +
  38 + foreach (KeyValuePair<string, object> kvp in UserDetails)
  39 + {
  40 + if (kvp.Key == "loginId")
  41 + userId = kvp.Value.ToString();
  42 +
  43 + if (kvp.Key == "emailId")
  44 + userMail = kvp.Value.ToString();
  45 +
  46 + if (kvp.Key == "firstName")
  47 + fName = kvp.Value.ToString();
  48 +
  49 + if (kvp.Key == "lastName")
  50 + lName = kvp.Value.ToString();
  51 + }
  52 +
  53 + string fullName = fName + " " + lName;
  54 +
  55 + string logoPath = HttpContext.Current.Server.MapPath("~/content/images/logo.png");
  56 +
  57 + string templatePath = string.Empty;
  58 + string resetPasswordLink = string.Empty;
  59 +
  60 + if (isPassword)
  61 + {
  62 + templatePath = "~/Templates/forgot-Password.html";
  63 + resetPasswordLink = site_url + "?em:" + HttpUtility.UrlEncode(userMail);
  64 + }
  65 + else
  66 + templatePath = "~/Templates/forgot-UserId.html";
  67 +
  68 + string mailBody = ResetUser.GetMailBodyTextFromTemplate(templatePath, userId, userMail, fullName, resetPasswordLink);
  69 +
  70 + lstToAddress.Add(userMail);
  71 +
  72 + emailText = mailBody;
  73 +
  74 +
  75 + // for embedding images in email
  76 + if (emailText.Contains("<img"))
  77 + {
  78 + LinkedResource linkedLogo = new LinkedResource(logoPath, MediaTypeNames.Image.Jpeg);
  79 + linkedLogo.ContentId = "AIA_Logo_Image";
  80 + linkedLogo.TransferEncoding = TransferEncoding.Base64;
  81 + emailText = emailText.Replace("{logoPath}", "cid:" + linkedLogo.ContentId);
  82 + lstLinkedResource.Add(linkedLogo);
  83 + }
  84 +
  85 + emailUtility.sAlternateView = AlternateView.CreateAlternateViewFromString(emailText, null, "text/html");
  86 + foreach (var sItem in lstLinkedResource)
  87 + {
  88 + emailUtility.sAlternateView.LinkedResources.Add(sItem);
  89 + }
  90 +
  91 + string mailSubject = string.Empty;
  92 + if(!isPassword)
  93 + mailSubject = "UserID recovery mail for: ";
  94 + else
  95 + mailSubject = "Password recovery mail for: ";
  96 +
  97 + emailUtility.sHostName = "10.100.12.13";
  98 + emailUtility.sFromAddress = Convert.ToString(ConfigurationManager.AppSettings["SenderEmailAddress"]);
  99 + emailUtility.bIsBodyHtml = true;
  100 + emailUtility.bEnableSsl = false;
  101 + emailUtility.sSubject = mailSubject + userMail;
  102 + //sEmailUtility.sBodyText = sEmailText;
  103 + emailUtility.iPort = 25;
  104 + emailUtility.sToAddresses = lstToAddress;
  105 + emailUtility.sBccAddresses = lstBccAddress;
  106 +
  107 + emailUtility.SendSmtpEmail();
  108 + return true;
  109 + }
  110 + catch (Exception ex)
  111 + {
  112 + string message = "Exception: " + ex.Message;
  113 + return false;
  114 + }
  115 + }
  116 +
  117 + protected static string GetMailBodyTextFromTemplate(string templatePath, string userId, string userMail, string fullName, string resetPasswordUrl)
  118 + {
  119 + string fileToRead = string.Empty;
  120 + string emailBody = string.Empty;
  121 + try
  122 + {
  123 + fileToRead = HttpContext.Current.Server.MapPath(templatePath);
  124 +
  125 + using (StreamReader reader = new StreamReader(fileToRead))
  126 + {
  127 + emailBody = reader.ReadToEnd();
  128 + }
  129 +
  130 + if(!string.IsNullOrEmpty(userId))
  131 + emailBody = emailBody.Replace("{loginId}", userId);
  132 + if (!string.IsNullOrEmpty(userMail))
  133 + emailBody = emailBody.Replace("{emailId}", userMail);
  134 + if(!string.IsNullOrEmpty(fullName))
  135 + emailBody = emailBody.Replace("{userFullName}", fullName);
  136 + if(!string.IsNullOrEmpty(resetPasswordUrl))
  137 + emailBody = emailBody.Replace("{resetPasswordLink}", resetPasswordUrl);
  138 + }
  139 + catch (Exception e)
  140 + {
  141 + emailBody = "Exception: " + e.Message;
  142 + }
  143 + return emailBody;
  144 + }
  145 + }
  146 +}
0 147 \ 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,68 @@ 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 + var collection = db.GetCollection<BsonDocument>("Users");
  91 + var filter = Builders<BsonDocument>.Filter.Eq("emailId", userInfo["emailId"].ToString());
  92 + var update = Builders<BsonDocument>.Update.Set("password", userInfo["newPassword"].ToString()).CurrentDate("modifiedDate");
  93 +
  94 + var result = collection.UpdateOne(filter, update);
  95 +
  96 + if (result != null)
  97 + return result;
  98 + else
  99 + return AIAConstants.USER_NOT_FOUND;
  100 + }
  101 + catch (Exception e)
  102 + {
  103 + logger.Fatal("Exception= " + e.Message);
  104 + return AIAConstants.ERROR_IN_FECTHING_DETAILS;
  105 + }
  106 + }
54 107 }
55 108 }
56 109 \ 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 +
  40 + smtp.Send(mm);
  41 + }
  42 +
  43 + public void SendSmtpEmail()
  44 + {
  45 + try
  46 + {
  47 + MailMessage sMail = new MailMessage();
  48 + SmtpClient SmtpServer = new SmtpClient(sHostName);
  49 + string recipientEmailAddress = string.Empty;
  50 +
  51 +
  52 + if (sToAddresses != null)
  53 + {
  54 + foreach (var sItem in sToAddresses)
  55 + {
  56 + sMail.To.Add(sItem);
  57 +
  58 + }
  59 + }
  60 +
  61 + if (sBccAddresses != null)
  62 + {
  63 + foreach (var sItem in sBccAddresses)
  64 + {
  65 + sMail.Bcc.Add(sItem);
  66 + }
  67 + }
  68 +
  69 + sMail.IsBodyHtml = bIsBodyHtml;
  70 +
  71 + if (sAlternateView != null)
  72 + {
  73 + sMail.AlternateViews.Add(sAlternateView);
  74 + }
  75 + else
  76 + {
  77 + sMail.Body = sBodyText;
  78 + }
  79 +
  80 + sMail.Subject = sSubject;
  81 + if (sAttachments != null)
  82 + {
  83 + foreach (var sItem in sAttachments)
  84 + {
  85 + sMail.Attachments.Add(sItem);
  86 + }
  87 + }
  88 +
  89 + SmtpServer.Port = iPort;
  90 + SmtpServer.Credentials = new System.Net.NetworkCredential(sUserName, sPassword);
  91 + SmtpServer.EnableSsl = bEnableSsl;
  92 +
  93 + using (MailMessage mm = new MailMessage(sFromAddress, sMail.To.ToString()))
  94 + {
  95 + mm.Subject = sSubject;
  96 + mm.IsBodyHtml = bIsBodyHtml;
  97 +
  98 + if (sAlternateView != null)
  99 + {
  100 + mm.AlternateViews.Add(sAlternateView);
  101 + }
  102 + else
  103 + {
  104 + mm.Body = sBodyText;
  105 + }
  106 +
  107 + mm.IsBodyHtml = true;
  108 + SendMail(mm);
  109 + }
  110 +
  111 + }
  112 + catch (Exception ex)
  113 + {
  114 + throw ex;
  115 + }
  116 + }
  117 + }
  118 +}
0 119 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.API/Web.config
... ... @@ -31,6 +31,14 @@
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" />
  41 + <add key="Site_Url" value ="//52.2.38.120"/>
34 42 </appSettings>
35 43 <system.web>
36 44 <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,14 @@
31 31 </log4net>
32 32  
33 33 <appSettings>
  34 + <add key="SenderEmailAddress" value="utkarsh.singh@ebix.com" />
  35 + <add key="ErrorNotificationEmailAddress" value="support@interactiveanatomy.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="support@interactiveanatomy.com" />
  41 + <add key="Site_Url" value ="//52.2.38.120"/>
34 42 </appSettings>
35 43 <system.web>
36 44 <compilation debug="true" targetFramework="4.5" />
... ...
400-SOURCECODE/AIAHTML5.API/bin/AIAHTML5.API.pdb
No preview for this file type
400-SOURCECODE/AIAHTML5.API/content/images/logo.png 0 → 100644

11.5 KB

400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
... ... @@ -73,60 +73,69 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
73 73  
74 74  
75 75  
76   - $rootScope.initializeAIA = function () {
  76 + $rootScope.initializeAIA = function () {
77 77  
78   - $rootScope.isLoading = false;
  78 + $rootScope.isLoading = false;
  79 + //$rootScope.isVisibleLogin = false;
  80 + //$rootScope.isVisibleResetPass = true;
  81 + VerifyUrlForQuerystring();
  82 + getUserDetails();
  83 + }
  84 +
  85 + $rootScope.userInfo = {
  86 + username: null,
  87 + password: null,
  88 + emailId: null,
  89 + isPassword: null,
  90 + newPassword: null,
  91 + confirmPassword: null
  92 + };
  93 + $rootScope.userData;
  94 + $rootScope.userModules;
  95 + $rootScope.errorMesaage;
  96 +
  97 + $rootScope.AuthenticateUser = function (userInfo) {
  98 + $rootScope.isVisibleLogin = false;
  99 + if (userInfo.username == "" || userInfo.username == null || userInfo.password == "" || userInfo.password == null) {
  100 +
  101 + alert("Please enter correct information");
79 102 $rootScope.isVisibleLogin = true;
80   -
81   - getUserDetails();
82 103 }
  104 + else {
83 105  
84   - $rootScope.userInfo = {
85   - username: null,
86   - password: null
87   - };
88   - $rootScope.userData ;
89   - $rootScope.userModules ;
90   -
91   - $rootScope.AuthenticateUser = function (userInfo) {
92   - $rootScope.isVisibleLogin = false;
93   - if (userInfo.username == "" || userInfo.username == null || userInfo.password == "" || userInfo.password == null) {
94   -
95   - alert("Please enter correct information");
96   -
97   - }
98   - else {
99   -
100   - AuthenticationService.authenticateUser(userInfo)
101   - .then(
  106 + AuthenticationService.authenticateUser(userInfo)
  107 + .then(
102 108  
103   - function (result) {
104   - if (result == LoginConstants.USER_NOT_FOUND) {
105   -
106   - alert(result);
107   - }
108   - else if (result == LoginConstants.ERROR_IN_FECTHING_DETAILS) {
109   - alert(result);
110   - }
111   - else {
112   - if (result.loginId != undefined || result.loginId != "" || result.loginId != null) {
  109 + function (result) {
  110 + if (result == LoginConstants.USER_NOT_FOUND) {
  111 + $rootScope.isVisibleLogin = true;
  112 + alert(LoginConstants.USER_NOT_FOUND);
  113 +
  114 + }
  115 + else if (result == LoginConstants.ERROR_IN_FECTHING_DETAILS) {
  116 + alert(LoginConstants.ERROR_IN_FECTHING_DETAILS);
  117 + $rootScope.isVisibleLogin = true;
  118 + }
  119 + else {
  120 + if (result.loginId != undefined || result.loginId != "" || result.loginId != null) {
113 121  
114   - $rootScope.userData = result;
115   - $rootScope.userModules = result.modules;
116   - $rootScope.isVisibleLogin = false;
  122 + $rootScope.userData = result;
  123 + $rootScope.userModules = result.modules;
  124 + $rootScope.isVisibleLogin = false;
117 125  
118   - localStorage.setItem('loggedInUserDetails', JSON.stringify(result));
119   - }
  126 + localStorage.setItem('loggedInUserDetails', JSON.stringify(result));
120 127 }
121   - },
122   - function (error) {
123   - console.log(' Error in authentication = ' + error.statusText);
124   - alert(LoginConstants.ERROR_IN_FECTHING_DETAILS);
125   - });
126   - }
127   -
  128 + }
  129 + },
  130 + function (error) {
  131 + console.log(' Error in authentication = ' + error.statusText);
  132 + alert(LoginConstants.ERROR_IN_FECTHING_DETAILS);
  133 + $rootScope.isVisibleLogin = true;
  134 + });
128 135 }
129 136  
  137 + }
  138 +
130 139 $rootScope.LogoutUser = function () {
131 140 localStorage.removeItem('loggedInUserDetails');
132 141 document.location = '/';
... ... @@ -152,10 +161,116 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
152 161 }
153 162 }
154 163  
155   - $(document).ready(function () {
156   - getUserDetails();
  164 + $rootScope.SendMailToUser = function (userInfo, isMailForPassword) {
  165 + if ((userInfo.emailId != null) && (userInfo.emailId != '')) {
  166 + if (validateEmail(userInfo.emailId)) {
  167 + if (isMailForPassword == 'true')
  168 + userInfo.isPassword = true;
  169 + else
  170 + userInfo.isPassword = false;
  171 +
  172 + AuthenticationService.SendMailToUser(userInfo)
  173 + .then(function (result) {
  174 + if (result == LoginConstants.USER_NOT_FOUND) {
  175 + alert("Error occured.");
  176 + }
  177 + else if (result == LoginConstants.ERROR_IN_FECTHING_DETAILS) {
  178 + alert("Error occured.");
  179 + }
  180 + else {
  181 + if (result.loginId != undefined || result.loginId != "" || result.loginId != null) {
  182 + var message;
  183 + if ($('.forgot-sm').length > 0) {
  184 + $('.forgot-sm').fadeOut();
  185 + $('.forgot-sm').modal('hide');
  186 + }
  187 + if ($('.forgot-sm1').length > 0) {
  188 + $('.forgot-sm1').fadeOut();
  189 + $('.forgot-sm1').modal('hide');
  190 + }
  191 + if (isMailForPassword)
  192 + message = "Password";
  193 + else
  194 + message = "UserId";
  195 + alert(message + " sent in mail successfully.");
  196 + }
  197 + }
  198 +
  199 + },
  200 + function (error) {
  201 + console.log(' Error in authentication = ' + error.statusText);
  202 + alert(LoginConstants.ERROR_IN_FECTHING_DETAILS);
  203 + });
  204 + }
  205 + else {
  206 + alert("Please enter correct email id");
  207 + }
  208 + }
  209 + else {
  210 + alert("Please enter your email id");
  211 + }
  212 + };
  213 +
  214 + $rootScope.closeResetPasswordPopup = function () {
  215 + $("#passwordReset").fadeOut();
  216 + $("#passwordReset").modal('hide');
  217 + }
  218 +
  219 + function validateEmail(email) {
  220 + 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,}))$/;
  221 + return re.test(email);
  222 + }
  223 +
  224 + $rootScope.ResetUserPassword = function (userInfo) {
  225 + var url = $location.url();
  226 + if (url.indexOf('?em:') != -1) {
  227 + var split = url.split('?em:');
  228 + userInfo.emailId = split[1];
  229 + }
  230 +
  231 + if (userInfo.newPassword === userInfo.confirmPassword) {
  232 + $rootScope.errorMesaage = null;
  233 + AuthenticationService.ResetUserPassword(userInfo)
  234 + .then(
  235 + function (result) {
  236 + if (result == LoginConstants.USER_NOT_FOUND) {
  237 + alert(LoginConstants.USER_NOT_FOUND);
  238 + }
  239 + else if (result == LoginConstants.ERROR_IN_FECTHING_DETAILS) {
  240 + alert(LoginConstants.ERROR_IN_FECTHING_DETAILS);
  241 + }
  242 + else {
  243 + if (result.loginId != undefined || result.loginId != "" || result.loginId != null) {
  244 + alert('Your password has been reset.');
  245 + $rootScope.isVisibleLogin = true;
  246 + $rootScope.isVisibleResetPass = false;
  247 + $location.url() = "/";
  248 + }
  249 + }
  250 + },
  251 + function (error) {
  252 + console.log(' Error in authentication = ' + error.statusText);
  253 + alert(LoginConstants.ERROR_IN_FECTHING_DETAILS);
  254 + });
  255 + }
  256 + else
  257 + $rootScope.errorMesaage = "Your new password and confirm password not matched!";
  258 + }
  259 +
  260 + function VerifyUrlForQuerystring() {
  261 + var url = $location.url();
157 262  
  263 + var field = 'em';
158 264  
  265 + if (url.indexOf('?' + field + ':') != -1) {
  266 + $rootScope.isVisibleLogin = false;
  267 + $rootScope.isVisibleResetPass = true;
  268 + }
  269 + else {
  270 + $rootScope.isVisibleLogin = true;
  271 + $rootScope.isVisibleResetPass = false;
  272 + }
  273 + }
159 274 $(function () {
160 275 var colpick = $('.demo').each(function () {
161 276  
... ... @@ -223,7 +338,7 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
223 338 $inlinehex.html(hex);
224 339 }
225 340 });
226   - });
  341 + //});
227 342  
228 343 $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").css({ "background-color": "#000000" });
229 344 $("#drawTextBGColorpicker .minicolors .minicolors-swatch .minicolors-swatch-color").css({ "background-color": "#ffffff" });
... ... @@ -2741,9 +2856,9 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
2741 2856 $('#snipImage').attr('src', dataURL);
2742 2857  
2743 2858 $('#spnModule').text($rootScope.currentActiveModuleTitle);
2744   - $('#spnPosture').text(localStorage.getItem('currentViewTitle'));
  2859 + $('#spnBodyViewTitle').text(localStorage.getItem('currentViewTitle'));
2745 2860  
2746   - PrintDIVContent('printBox'); // Open Print Window
  2861 + PrintDivContentByID('printBox'); // Open Print Window
2747 2862 }
2748 2863 });
2749 2864 };
... ... @@ -2904,21 +3019,6 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
2904 3019 console.log('close')
2905 3020 });
2906 3021  
2907   - $rootScope.ShowPrintWindow = function () { // Print Active Viewer
2908   - html2canvas($("#canvasDiv"), {
2909   - onrendered: function (canvas) {
2910   - var dataURL = canvas.toDataURL("image/jpeg");
2911   - var imageToPrint = new Image();
2912   - imageToPrint.src = dataURL;
2913   - $('#snipImage').attr('src', dataURL);
2914   -
2915   - $('#spnModule').text($rootScope.currentActiveModuleTitle);
2916   - $('#spnBodyViewTitle').text(localStorage.getItem('currentViewTitle'));
2917   -
2918   - PrintDivContentByID('printBox'); // Open Print Window
2919   - }
2920   - });
2921   - };
2922 3022 $rootScope.restrictBodySystemList = function () {
2923 3023 var RestrictListDiv = document.getElementById("restrictListDiv");
2924 3024 if (RestrictListDiv.style.display == 'block') {
... ... @@ -2929,7 +3029,7 @@ function ($rootScope, Modules, $log, $location, $timeout, DataService, Authentic
2929 3029 RestrictListDiv.style.display = 'block';
2930 3030 $(".restrict-carret-icon").css({ "transform": "rotate(90deg)", "-moz-transform": "rotate(90deg)", "-webkit-transform": "rotate(90deg)", "-ms-transform": "rotate(90deg)" });
2931 3031  
2932   - }
  3032 + };
2933 3033  
2934 3034 }]
2935 3035 );
2936 3036 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/app/services/AuthenticationService.js
... ... @@ -16,7 +16,43 @@
16 16 deferred.reject(status);
17 17 });
18 18 return deferred.promise;
19   - }
  19 + },
  20 +
  21 + SendMailToUser: 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 + console.log('success');
  31 + deferred.resolve(data);
  32 + }).error(function (data, status, headers, config) {
  33 + console.log('error')
  34 + deferred.reject(status);
  35 + });
  36 + return deferred.promise;
  37 + },
  38 +
  39 + ResetUserPassword: function (userInfo) {
  40 + var deferred = $q.defer();
  41 +
  42 + $http.post('/API/api/ResetPassword', JSON.stringify(userInfo), {
  43 + headers: {
  44 + 'Content-Type': 'application/json'
  45 + }
  46 + })
  47 + .success(function (data, status, headers, config) {
  48 + console.log('success')
  49 + deferred.resolve(data);
  50 + }).error(function (data, status, headers, config) {
  51 + console.log('error')
  52 + deferred.reject(status);
  53 + });
  54 + return deferred.promise;
  55 + },
20 56  
21 57 }
22 58 });
23 59 \ 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/content/images/logo.png 0 → 100644

11.5 KB

400-SOURCECODE/AIAHTML5.Web/index.html
... ... @@ -149,6 +149,7 @@
149 149 color: #000;
150 150 border-radius: 0;
151 151 }
  152 +
152 153 .restrict-carret-icon {
153 154 font-size: 18px;
154 155 position: relative;
... ... @@ -160,247 +161,297 @@
160 161  
161 162 </head>
162 163 <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>
  164 + <div ng-hide="isVisibleResetPass">
  165 + <div id="login" ng-show="isVisibleLogin">
  166 +
  167 + <div class="container-fluid loginBg">
  168 + <div class="row">
  169 + <div class="col-xs-12 text-center">
  170 + <a href="index.html" class="loginLogo"><img src="content/images/common/logo-large.png" class="img-responsive" alt=""></a>
  171 + <div class="headerBand row">
  172 + <div class="col-xs-12">
  173 + <h1>A.D.A.M. Interactive Anatomy</h1>
  174 + <p>The most compresive online interactive anatomy learning resource</p>
  175 + </div>
173 176 </div>
174 177 </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>-->
  178 + <!--LOGIN PANEL-->
  179 + <div class="col-xs-12 loginPanel">
  180 + <div class="loginBox clearfix">
  181 + <div class="col-xs-12">
  182 + <!--<strong>Login</strong>-->
  183 + <form>
  184 + <div class="form-group">
  185 + <!--<label for="">User ID</label>-->
  186 + <!--input type="email" class="form-control" placeholder="User ID">
  187 + <span class="help-block text-right small"><a href="#" class="color-white">Forgot User ID?</a></span>-->
186 188  
187 189  
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">
191   - </div>
192   - <span class="help-block text-right small"><a href="#" class="color-white">Forgot User ID?</a></span>
  190 + <div class="input-group">
  191 + <span class="input-group-addon"><i class="fa fa-user"></i></span>
  192 + <input type="text" class="form-control" placeholder="Username" ng-model="userInfo.username">
  193 + </div>
  194 + <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>
193 195  
194 196  
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">
203 197 </div>
204   - <span class="help-block text-right small "><a href="#" class="color-white">Forgot Password?</a></span>
  198 + <div class="form-group">
  199 + <!--<label for="">Password</label>-->
  200 + <!--<input type="password" class="form-control" placeholder="Password">
  201 + <span class="help-block text-right small "><a href="#" class="color-white">Forgot Password?</a></span>-->
  202 + <div class="input-group">
  203 + <span class="input-group-addon"><i class="fa fa-key"></i></span>
  204 + <input type="password" class="form-control" placeholder="Password" ng-model="userInfo.password">
  205 + </div>
  206 + <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"-->
  207 + </div>
  208 + <div class="form-group">
  209 + <button class="btn btn-primary pull-right" ng-click="AuthenticateUser(userInfo)">Log In</button>
  210 + </div>
  211 + </form>
  212 + </div>
  213 + </div>
  214 + <div class="loginExBtn">
  215 + <a href="#" class="btn btn-primary">Subscribe Now</a>
  216 + <a href="#" class="btn btn-primary pull-right">Learn More</a>
  217 + </div>
  218 + </div>
  219 + </div>
  220 + </div>
  221 +
  222 + <!-- Footer -->
  223 + <footer class="dark">
  224 + <div class="container-fluid text-center">Copyright &copy; 2016 Ebix Inc. All rights reserved.</div>
  225 + </footer>
  226 + </div>
  227 + <!-- Forgot User ID (Small modal) -->
  228 + <div class="modal fade forgot-sm" role="dialog" tabindex="-1" aria-labelledby="exampleModalLabel" data-target=".forgot-sm">
  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 User id</h5>
  234 + </div>
  235 + <div class="modal-body">
  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="btnEmail" class="form-control" placeholder="Email" type="email" ng-model="userInfo.emailId">
205 241 </div>
206   - <div class="form-group">
207   - <button class="btn btn-primary pull-right" ng-click="AuthenticateUser(userInfo)">Log In</button>
  242 + </div>
  243 + </form>
  244 + </div>
  245 + <div class="modal-footer">
  246 + <button type="button" class="btn btn-primary btn-block" ng-click="SendMailToUser(userInfo, 'false')">Send Mail</button>
  247 + </div>
  248 + <!--<div style="color: maroon; font-weight: bold; " ng-if="message">{{message}}</div>-->
  249 + </div>
  250 + </div>
  251 + </div>
  252 + <!-- Forgot Password (Small modal) -->
  253 + <div class="modal fade forgot-sm1" role="dialog" tabindex="-1" aria-labelledby="exampleModalLabel" data-target=".forgot-sm1">
  254 + <div class="modal-dialog modal-sm" role="document">
  255 + <div class="modal-content">
  256 + <div class="modal-header">
  257 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  258 + <h5 class="modal-title" id="exampleModalLabel">Enter your email id to recover Password</h5>
  259 + </div>
  260 + <div class="modal-body">
  261 + <form>
  262 + <div class="form-group">
  263 + <div class="input-group">
  264 + <span class="input-group-addon"><i class="fa fa-envelope"></i></span>
  265 + <input id="btnEmail2" class="form-control" placeholder="Email" type="email" ng-model="userInfo.emailId">
208 266 </div>
209   - </form>
210   - </div>
  267 + </div>
  268 + </form>
211 269 </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>
  270 + <div class="modal-footer">
  271 + <button type="button" class="btn btn-primary btn-block" ng-click="SendMailToUser(userInfo, 'true')">Send Mail</button>
215 272 </div>
  273 + <!--<div style="color: maroon; font-weight: bold; " ng-if="message">{{message}}</div>-->
216 274 </div>
217 275 </div>
218 276 </div>
  277 + <div id="index" ng-hide="isVisibleLogin">
  278 + <div class="container-fluid ">
  279 + <!--Header-->
  280 +
  281 + <nav class="navbar navbar-inverse navbar-fixed-top">
  282 + <div class="container-fluid">
  283 + <!-- Brand and toggle get grouped for better mobile display -->
  284 + <div class="navbar-header">
  285 + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#topFixedNavbar1" aria-expanded="false">
  286 + <span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
  287 + </button>
  288 + <a class="frameLogo navbar-brand" href="home"><img src="content/images/logo-main.png" class="img-responsive" alt=""></a>
  289 + </div>
  290 + <div ng-include="'app/widget/TopMenu.html'"></div>
  291 + </div>
  292 + </nav>
  293 + <div class="bodyWrap row container-fluid">
219 294  
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   -
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>
  295 + <div id="spinner" class="spinner" ng-show="isLoading" style="visibility:hidden">
  296 + <img id="img-spinner" src="content/images/common/loading.gif" alt="Loading" />
238 297 </div>
239   - <div ng-include="'app/widget/TopMenu.html'"></div>
240   - </div>
241   - </nav>
242   - <div class="bodyWrap row container-fluid">
  298 + <div ng-view></div>
243 299  
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 300 </div>
247   - <div ng-view></div>
248   -
249   - </div>
250   - </div>>
  301 + </div>>
251 302  
252 303  
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>
260   - </div>
261   - <div class="modal-body">
262   - <div class="row" style="padding-top:20px;">
263   - <div class="col-sm-12">
  304 + <!--list manager Modal-->
  305 + <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">
  306 + <div class="modal-dialog" role="document" style="width:400px;">
  307 + <div class="modal-content" style="width:100%;max-width:400px;">
  308 + <div class="modal-header setting-modal-header" style="padding: 5px 10px; border-bottom: 1px solid #e5e5e5;">
  309 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  310 + <h4 class="modal-title" id="myModalLabel">Setting</h4>
  311 + </div>
  312 + <div class="modal-body">
  313 + <div class="row" style="padding-top:20px;">
  314 + <div class="col-sm-12">
264 315  
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>
  316 + <div aria-label="..." role="group" class="btn-group btn-group-justified">
  317 + <div role="group" class="btn-group">
  318 + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 1">Appearance</button>
  319 + </div>
  320 + <div role="group" class="btn-group">
  321 + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 2">Lexicons</button>
  322 + </div>
  323 + <div role="group" class="btn-group">
  324 + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 3">Dissectible</button>
  325 + </div>
274 326 </div>
  327 +
275 328 </div>
276 329  
277   - </div>
278 330  
  331 + <div class="col-sm-12" ng-show="tab === 1">
279 332  
280   - <div class="col-sm-12" ng-show="tab === 1">
281 333  
  334 + <div class="row">
  335 + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
  336 + <div class="row" style="padding-top: 22px;">
  337 + <div class="center-block col-md-10" style="float: none; ">
  338 + <h5><strong>System Font</strong></h5>
282 339  
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>
  340 + <div style="border:2px solid #ACACAC;float:left;padding:15px;background-color:#CCCCCC;">
  341 + <div class="col-md-3" style="padding-left:0px;">
  342 + Sample
  343 + </div>
  344 + <div class="col-md-6" style="padding-right:0px;">
  345 + <input type="text" value="" style="width:85%;">
  346 + </div>
  347 + <div class="col-md-3" style="padding-left:0px;">
  348 + <button class="btn btn-primary" style="margin-bottom:5px;">Change</button>
  349 + <button class="btn btn-primary" style="margin-bottom:5px;">Default</button>
  350 + </div>
300 351  
  352 + </div>
301 353 </div>
302 354 </div>
303   - </div>
304   -
305   - </div>
306   - </div>
307   -
308   - </div>
309   - <div class="col-sm-12" ng-show="tab === 2">
310   -
311 355  
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>
322 356 </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>
334   - </div>
335   -
336 357 </div>
  358 +
337 359 </div>
  360 + <div class="col-sm-12" ng-show="tab === 2">
338 361  
339   - </div>
340   - <div class="col-sm-12" ng-show="tab === 3">
341 362  
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;">
  363 + <div class="row">
  364 + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
346 365 <div class="col-md-6">
347   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  366 + <h6><strong>Primary Lexicon</strong></h6>
  367 + <input type="text" value="English" style="width:90%;">
  368 + <button class="btn btn-primary" style="float:right;margin-bottom:5px;margin-top:5px;">Change</button>
  369 + <h6>Secondry Lexicon</h6>
  370 + <textarea style="width:90%;"></textarea>
  371 + <button>Change</button>
  372 + <button>Change</button>
348 373 </div>
349 374 <div class="col-md-6">
350   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
351   - </div>
352   - <div class="col-md-6">
353   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
354   - </div>
355   - <div class="col-md-6">
356   - <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  375 + <h6>Available Lexicon</h6>
  376 + <select multiple class="form-control" id="sel2">
  377 + <option>1</option>
  378 + <option>2</option>
  379 + <option>3</option>
  380 + <option>4</option>
  381 + <option>5</option>
  382 + </select>
  383 +
  384 + <p>Note: Some languages require special system fonts to display correctly</p>
357 385 </div>
358 386  
359 387 </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">
364   - </div>
365   - <div class="col-md-8">
  388 + </div>
366 389  
367   - <div class="radio">
368   - <label><input type="radio" name="optradio" checked>On</label>
  390 + </div>
  391 + <div class="col-sm-12" ng-show="tab === 3">
  392 +
  393 + <div class="row">
  394 + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;">
  395 + <h6>Skin Tones</h6>
  396 + <div class="center-block col-md-8" style="float: none;">
  397 + <div class="col-md-6">
  398 + <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  399 + </div>
  400 + <div class="col-md-6">
  401 + <img class="img-responsive" alt="" src="http://placehold.it/400x300">
369 402 </div>
370   - <div class="radio">
371   - <label><input type="radio" name="optradio">Off</label>
  403 + <div class="col-md-6">
  404 + <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  405 + </div>
  406 + <div class="col-md-6">
  407 + <img class="img-responsive" alt="" src="http://placehold.it/400x300">
372 408 </div>
373 409  
374 410 </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>
  411 + <h6>Modesty Setting</h6>
  412 + <div class="col-md-6">
  413 + <div class="col-md-4">
  414 + <img class="img-responsive" alt="" src="http://placehold.it/400x300">
  415 + </div>
  416 + <div class="col-md-8">
  417 +
  418 + <div class="radio">
  419 + <label><input type="radio" name="optradio" checked>On</label>
  420 + </div>
  421 + <div class="radio">
  422 + <label><input type="radio" name="optradio">Off</label>
  423 + </div>
  424 +
  425 + </div>
  426 + </div>
  427 + <div class="col-md-6">
  428 + <h6>Annotaion</h6>
  429 + <div class="checkbox">
  430 + <label><input type="checkbox" value="" checked>Erase Annotations when changeing layers</label>
  431 + </div>
380 432 </div>
381 433 </div>
382   - </div>
383 434  
384   - </div>
  435 + </div>
385 436  
386 437  
387 438  
  439 + </div>
  440 + </div>
  441 + <div class="modal-footer">
  442 + <button type="button" class="btn btn-primary">Ok</button>
  443 + <button type="button" class="btn btn-primary" data-dismiss="modal">Cancle</button>
  444 + <button type="button" class="btn btn-primary">Apply</button>
388 445 </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>
394 446 </div>
395 447 </div>
396 448 </div>
397 449 </div>
398   - </div>
399 450  
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;">
  451 + <!--Settings modal-->
  452 + <!--<div id="modal-settings" style="z-index: 1000000000; background: white;width: 302px;position:absolute;left:40%;right:0;top:70px;">-->
  453 + <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>
  454 + <div id="modal-settings" style="display:none;z-index: 1000000000;height:auto;width: 300px;position:absolute;left:40%;right:0;top:70px;">
404 455 <div role="document">
405 456 <form>
406 457 <div ng-init="loadsettings()" class="modal-content" id="setting-modal-dark">
... ... @@ -784,12 +835,12 @@
784 835 </div>
785 836 <div style="">
786 837 <div class="form-group">
787   - <div ng-click="restrictBodySystemList()" class="btn btn-success btn-block" style="padding:3px 12px;">
788   - <i class=" fa fa-caret-right restrict-carret-icon"></i> <span>Restrict List to</span>
  838 + <div ng-click="restrictBodySystemList()" class="btn btn-success btn-block" style="padding:3px 12px;">
  839 + <i class=" fa fa-caret-right restrict-carret-icon"></i> <span>Restrict List to</span>
789 840 </div>
790 841 </div>
791 842  
792   - <div id="restrictListDiv" style="display:none;">
  843 + <div id="restrictListDiv" style="display:none;">
793 844  
794 845 <div class="well well-sm marginTopBtm10">
795 846 <div class="form-horizontal">
... ... @@ -805,7 +856,7 @@
805 856 <select class="form-control" disabled>
806 857 <option value="1" selected="">Entire View</option>
807 858 </select>
808   - </div>
  859 + </div>
809 860 </div>
810 861 </div>
811 862 </div>
... ... @@ -860,12 +911,12 @@
860 911 </div>
861 912 <div class="col-sm-6 enableDisableOpacity">
862 913 <!--<div class="radio">
863   - <label>
864   - <input type="radio" name="filloption" id="filloption1" value="filloption1">
865   - <span class="">Texture</span>
866   - <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern">
867   - </label>
868   - </div>-->
  914 + <label>
  915 + <input type="radio" name="filloption" id="filloption1" value="filloption1">
  916 + <span class="">Texture</span>
  917 + <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern">
  918 + </label>
  919 + </div>-->
869 920 <div class="radio">
870 921 <label>
871 922 <input type="radio" name="filloption" id="filloption2" value="filloption2" checked style="margin-top:8px;">
... ... @@ -1030,731 +1081,793 @@
1030 1081  
1031 1082 <!--Print Preview Modal-->
1032 1083 <div id="dvPrintPreview" style="display: none;"></div>
1033   -
1034   - <!--<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;">
1035   - <div class="modal-dialog modal-sm" role="document">
1036   - <div class="modal-content">
1037   - <div class="modal-header annotation-modal-header">
1038   - <h4 class="modal-title" id="myModalLabel33">Edit Shape Style</h4>
1039   - </div>
1040   - <div class="modal-body">
1041   - <div class="marginTopBtm10">
1042   - <div class="well well-sm no-margin-btm">
1043   - <div class="row">
1044   - <div class="col-sm-12">
1045   - <div class="checkbox no-margin">
1046   - <label>
1047   - <input id="fill-option" type="checkbox" checked onclick="enableDisableFillOption()"> Fill Option
1048   - </label>
1049   - </div>
  1084 + </div>
  1085 + </div>
  1086 + <!--RESET PASSWORD FORM-->
  1087 + <div id="passwordReset" ng-show="isVisibleResetPass">
  1088 + <table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
  1089 + <tbody>
  1090 + <tr>
  1091 + <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>
  1092 + </tr>
  1093 + <tr>
  1094 + <td align="center" valign="top" bgcolor="#808d43" style="padding:20px; overflow:hidden;">
  1095 + <form name="resetPasswordForm" novalidate>
  1096 + <table width="100%" border="0" cellspacing="0" cellpadding="0" ng-controller="HomeController">
  1097 + <tbody>
  1098 +
  1099 + <tr>
  1100 + <td style=" font-size:26px; font-weight:bold; color:#fff; font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif"><strong>Reset Password</strong></td>
  1101 + </tr>
  1102 + <tr>
  1103 + <td>&nbsp;</td>
  1104 + </tr>
  1105 + <tr>
  1106 + <td style="font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; color:#fff;">New Password </td>
  1107 + </tr>
  1108 + <tr>
  1109 + <td>
  1110 + <input class="form-control" name="newPassword" value="*****" type="password" style="padding:3px 5px; height:25px; width:98%;" ng-model="userInfo.newPassword" ng-minlength="5" required>
  1111 + <span style="color: maroon; font-weight:bold" ng-show="resetPasswordForm.newPassword.$touched && resetPasswordForm.newPassword.$invalid && resetPasswordForm.newPassword.$pristine">The password is required.</span>
  1112 + <p ng-show="resetPasswordForm.newPassword.$error.minlength" style="font-weight: bold; color: maroon;">Password is too short.</p>
  1113 + </td>
  1114 + </tr>
  1115 + <tr>
  1116 + <td>&nbsp;</td>
  1117 + </tr>
  1118 + <tr>
  1119 + <td style="font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; color:#fff;">Confirm Password </td>
  1120 + </tr>
  1121 +
  1122 + <tr>
  1123 + <td>
  1124 + <input class="form-control" name="confirmPassword" value="*****" type="password" style="padding:3px 5px; height:25px; width:98%;" ng-model="userInfo.confirmPassword" required>
  1125 + <span style="color: maroon; font-weight: bold; " ng-show="resetPasswordForm.confirmPassword.$touched && resetPasswordForm.confirmPassword.$invalid">Confirm password is required.</span>
  1126 + <span style="color: maroon; font-weight: bold; " ng-if="errorMesaage">{{errorMesaage}}</span>
  1127 + </td>
  1128 + </tr>
  1129 + <tr>
  1130 + <td>&nbsp;</td>
  1131 + </tr>
  1132 + <tr>
  1133 + <td>
  1134 + <button type="submit" ng-click="ResetUserPassword(userInfo)" ng-submit="submitForm(resetPwdForm.$valid)" 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="btnUpdatePassword">Submit</button>
  1135 + <button type="submit" id="close-resetPasswordForm" ng-click="closeResetPasswordPopup()" 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" data-dismiss="modal">Close</button>
  1136 + </td>
  1137 + </tr>
  1138 + </tbody>
  1139 + </table>
  1140 + </form>
  1141 + </tr>
  1142 +
  1143 +
  1144 + </tbody>
  1145 + </table>
  1146 + </div>
  1147 + <!--<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;">
  1148 + <div class="modal-dialog modal-sm" role="document">
  1149 + <div class="modal-content">
  1150 + <div class="modal-header annotation-modal-header">
  1151 + <h4 class="modal-title" id="myModalLabel33">Edit Shape Style</h4>
  1152 + </div>
  1153 + <div class="modal-body">
  1154 + <div class="marginTopBtm10">
  1155 + <div class="well well-sm no-margin-btm">
  1156 + <div class="row">
  1157 + <div class="col-sm-12">
  1158 + <div class="checkbox no-margin">
  1159 + <label>
  1160 + <input id="fill-option" type="checkbox" checked onclick="enableDisableFillOption()"> Fill Option
  1161 + </label>
1050 1162 </div>
1051   - <div class="col-sm-6 enableDisableOpacity">
1052   - <div class="radio">
1053   - <label>
1054   - <input type="radio" name="filloption" id="filloption1" value="filloption1">
1055   - <span class="">Texture</span>
1056   - <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern">
1057   - </label>
1058   - </div>
1059   - <div class="radio">
1060   - <label>
1061   - <input type="radio" name="filloption" id="filloption2" value="filloption2" checked style="margin-top:8px;">
  1163 + </div>
  1164 + <div class="col-sm-6 enableDisableOpacity">
  1165 + <div class="radio">
  1166 + <label>
  1167 + <input type="radio" name="filloption" id="filloption1" value="filloption1">
  1168 + <span class="">Texture</span>
  1169 + <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern">
  1170 + </label>
  1171 + </div>
  1172 + <div class="radio">
  1173 + <label>
  1174 + <input type="radio" name="filloption" id="filloption2" value="filloption2" checked style="margin-top:8px;">
1062 1175  
1063 1176  
1064   - <div id="editstylebackgroundcolor" class="form-group" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
1065   - <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
1066   - <input type="text" class="form-control outerBackgroundColor" data-control="saturation" style="display:none;" value="#0088cc">
1067   - </div>
  1177 + <div id="editstylebackgroundcolor" class="form-group" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
  1178 + <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
  1179 + <input type="text" class="form-control outerBackgroundColor" data-control="saturation" style="display:none;" value="#0088cc">
  1180 + </div>
1068 1181  
1069 1182  
1070 1183  
1071   - </label>
1072   - </div>
  1184 + </label>
1073 1185 </div>
1074   - <div class="col-sm-6 no-padding marginTop10 enableDisableOpacity">
1075   - <div class="row">
1076   - <label class="pull-left" style="font-weight:normal;">Scale</label>
1077   - <div id="edit-slider-3" class="pull-left" style="width:62%; margin-left:3%; margin-top:2%;">
1078   - <div id="slider-range-min-3"></div>
  1186 + </div>
  1187 + <div class="col-sm-6 no-padding marginTop10 enableDisableOpacity">
  1188 + <div class="row">
  1189 + <label class="pull-left" style="font-weight:normal;">Scale</label>
  1190 + <div id="edit-slider-3" class="pull-left" style="width:62%; margin-left:3%; margin-top:2%;">
  1191 + <div id="slider-range-min-3"></div>
1079 1192  
1080   - </div>
1081 1193 </div>
  1194 + </div>
1082 1195  
1083   - <div class="row">
1084   - <label class="pull-left" style="font-weight:normal;">Opacity</label>
1085   - <div id="edit-slider-4" class="pull-left" style="width:53%; margin-left:3%; margin-top:2%;">
1086   - <div id="slider-range-min-4"></div>
1087   - </div>
  1196 + <div class="row">
  1197 + <label class="pull-left" style="font-weight:normal;">Opacity</label>
  1198 + <div id="edit-slider-4" class="pull-left" style="width:53%; margin-left:3%; margin-top:2%;">
  1199 + <div id="slider-range-min-4"></div>
1088 1200 </div>
  1201 + </div>
1089 1202  
1090   - <div class="clearfix"></div>
  1203 + <div class="clearfix"></div>
1091 1204  
1092 1205  
1093   - </div>
1094 1206 </div>
1095   -
1096 1207 </div>
  1208 +
1097 1209 </div>
1098   - <div class="marginTopBtm10">
1099   - <div class="well well-sm no-margin-btm">
1100   - <div class="row">
1101   - <div class="col-sm-12">
1102   - <div class="checkbox no-margin">
1103   - <label>
1104   - <input id="Outline-Option" onclick="enableDisableOutline()" type="checkbox" checked> Outline Option
1105   - </label>
1106   - </div>
  1210 + </div>
  1211 + <div class="marginTopBtm10">
  1212 + <div class="well well-sm no-margin-btm">
  1213 + <div class="row">
  1214 + <div class="col-sm-12">
  1215 + <div class="checkbox no-margin">
  1216 + <label>
  1217 + <input id="Outline-Option" onclick="enableDisableOutline()" type="checkbox" checked> Outline Option
  1218 + </label>
1107 1219 </div>
1108   - <div class="col-sm-6 setEnableDisableForEditShapeStyle">
1109   - <label class="marginTop5">
1110   - <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
1111   - <div class="form-group" id="outlineColor" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
  1220 + </div>
  1221 + <div class="col-sm-6 setEnableDisableForEditShapeStyle">
  1222 + <label class="marginTop5">
  1223 + <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span>
  1224 + <div class="form-group" id="outlineColor" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;">
1112 1225  
1113   - <input type="text" class="form-control borderColorCanvasPreview" data-control="saturation" style="display:none;" value="#0088cc">
1114   - </div>
  1226 + <input type="text" class="form-control borderColorCanvasPreview" data-control="saturation" style="display:none;" value="#0088cc">
  1227 + </div>
1115 1228  
1116 1229  
1117   - </label>
1118   - </div>
  1230 + </label>
  1231 + </div>
1119 1232  
1120   - <div class="col-sm-6 setEnableDisableForEditShapeStyle">
1121   - <div class="form-horizontal">
1122   - <div class="form-group">
1123   - <label class="col-sm-3 control-label" style=" font-weight:normal; padding-top:9px;">Size</label>
1124   - <div class="col-sm-9 marginTop5">
1125   - <select id="borderWidthCanvasElement" class="form-control input-sm">
1126   - <option value="1">1</option>
1127   - <option value="2">2</option>
1128   - <option value="3">3</option>
1129   - <option value="4">4</option>
1130   - <option value="5">5</option>
1131   - </select>
1132   - </div>
  1233 + <div class="col-sm-6 setEnableDisableForEditShapeStyle">
  1234 + <div class="form-horizontal">
  1235 + <div class="form-group">
  1236 + <label class="col-sm-3 control-label" style=" font-weight:normal; padding-top:9px;">Size</label>
  1237 + <div class="col-sm-9 marginTop5">
  1238 + <select id="borderWidthCanvasElement" class="form-control input-sm">
  1239 + <option value="1">1</option>
  1240 + <option value="2">2</option>
  1241 + <option value="3">3</option>
  1242 + <option value="4">4</option>
  1243 + <option value="5">5</option>
  1244 + </select>
1133 1245 </div>
1134 1246 </div>
1135 1247 </div>
1136   -
1137 1248 </div>
1138   - </div>
1139   - </div>
1140 1249  
1141   - <div class="marginTopBtm10">
1142   - <div class="well well-sm no-margin-btm">
1143   - <img id="imgOpacity" class="img-rounded img-responsive imgopacity" alt="..." src="content/images/blank-shape.jpg">
1144 1250 </div>
1145 1251 </div>
1146 1252 </div>
1147   - <div class="modal-footer">
1148   - <button type="button" class="btn btn-primary btn-sm" ng-click="setPropertiesForShapes('imgOpacity')">
1149 1253  
1150   - OK
1151   - </button>
1152   - <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal" ng-click="disableAnnotationToolBar()">Cancel</button>
  1254 + <div class="marginTopBtm10">
  1255 + <div class="well well-sm no-margin-btm">
  1256 + <img id="imgOpacity" class="img-rounded img-responsive imgopacity" alt="..." src="content/images/blank-shape.jpg">
  1257 + </div>
1153 1258 </div>
1154 1259 </div>
  1260 + <div class="modal-footer">
  1261 + <button type="button" class="btn btn-primary btn-sm" ng-click="setPropertiesForShapes('imgOpacity')">
  1262 +
  1263 + OK
  1264 + </button>
  1265 + <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal" ng-click="disableAnnotationToolBar()">Cancel</button>
  1266 + </div>
1155 1267 </div>
1156   - </div>-->
  1268 + </div>
  1269 + </div>-->
  1270 +
  1271 + <script>
  1272 +
  1273 + function enableDisableFillOption() {
  1274 + //debugger;
  1275 + if (document.getElementById('fill-option').checked) {
  1276 + // $('#imgOpacity').attr("background-color");
  1277 + //$('#imgOpacity').css({"background-color"})
  1278 + //$("#filloption1").css({ "pointer-events": "auto" });
  1279 + //$("#filloption12").css({ "pointer-events": "auto" });
  1280 +
  1281 + var x = $("#editstylebackgroundcolor span.minicolors-swatch-color").css('background-color');
  1282 + $("#imgOpacity").css("background-color", x);
  1283 + $("#edit-slider-3").css({ "pointer-events": "auto" });
  1284 + $("#edit-slider-4").css({ "pointer-events": "auto" });
  1285 + $("#editstylebackgroundcolor").css({ "pointer-events": "auto" });
  1286 + $("#editstyleTexture").css({ "pointer-events": "auto" });
  1287 + $(".enableDisableOpacity label").css({ "cursor": "pointer" });
  1288 + $(".enableDisableOpacity").css({ "opacity": "1" })
  1289 + document.getElementById("filloption1").disabled = false;
  1290 + document.getElementById("filloption2").disabled = false;
  1291 + document.getElementById("filloption1").style.cursor = "default";
  1292 + document.getElementById("filloption2").style.cursor = "default";
  1293 +
  1294 +
  1295 +
  1296 + }
  1297 + else {
  1298 + $('#imgOpacity').css("background-color", "transparent");
  1299 + //$("#filloption1").css({ "pointer-events": "none" });
  1300 + //$("#filloption2").css({ "pointer-events": "none" });
  1301 + $("#edit-slider-3").css({ "pointer-events": "none" });
  1302 + $("#edit-slider-4").css({ "pointer-events": "none" });
  1303 + $("#editstylebackgroundcolor").css({ "pointer-events": "none" });
  1304 + $("#editstyleTexture").css({ "pointer-events": "none" });
  1305 + $(".enableDisableOpacity label").css({ "cursor": "default" });
  1306 + $(".enableDisableOpacity").css({ "opacity": ".5" })
  1307 + document.getElementById("filloption1").disabled = true;
  1308 + document.getElementById("filloption2").disabled = true;
  1309 + document.getElementById("filloption1").style.cursor = "default";
  1310 + document.getElementById("filloption2").style.cursor = "default";
  1311 +
  1312 +
  1313 +
  1314 + }
1157 1315  
1158   - <script>
  1316 + }
  1317 + function enableDisableOutline() {
  1318 +
  1319 + if (document.getElementById('Outline-Option').checked) {
  1320 + var x = $("#outlineColor span.minicolors-swatch-color").css('background-color');
  1321 + $(".marginTopBtm10 div.outlinediv").css("border-color", x);
  1322 + // var borderWidth = $("#outlineColor span.minicolors-swatch-color").css('border-width');
  1323 + // $("#imgOpacity").css("border-width", borderWidth);
  1324 +
  1325 + $("#borderWidthCanvasElement").css({ "pointer-events": "auto" });
  1326 + $("#outlineColor").css({ "pointer-events": "auto" });
  1327 + $(".setEnableDisableForEditShapeStyle").css({ "opacity": "1" })
  1328 + }
  1329 + else {
  1330 + $('.marginTopBtm10 div.outlinediv').css("border-color", "transparent");
  1331 + $("#borderWidthCanvasElement").css({ "pointer-events": "none" });
  1332 + $("#outlineColor").css({ "pointer-events": "none" });
  1333 + $(".setEnableDisableForEditShapeStyle").css({ "opacity": ".5" })
  1334 + }
  1335 + }
1159 1336  
1160   - function enableDisableFillOption() {
1161   - //debugger;
1162   - if (document.getElementById('fill-option').checked) {
1163   - // $('#imgOpacity').attr("background-color");
1164   - //$('#imgOpacity').css({"background-color"})
1165   - //$("#filloption1").css({ "pointer-events": "auto" });
1166   - //$("#filloption12").css({ "pointer-events": "auto" });
  1337 + </script>
1167 1338  
1168   - var x = $("#editstylebackgroundcolor span.minicolors-swatch-color").css('background-color');
1169   - $("#imgOpacity").css("background-color", x);
1170   - $("#edit-slider-3").css({ "pointer-events": "auto" });
1171   - $("#edit-slider-4").css({ "pointer-events": "auto" });
1172   - $("#editstylebackgroundcolor").css({ "pointer-events": "auto" });
1173   - $("#editstyleTexture").css({ "pointer-events": "auto" });
1174   - $(".enableDisableOpacity label").css({ "cursor": "pointer" });
1175   - $(".enableDisableOpacity").css({ "opacity": "1" })
1176   - document.getElementById("filloption1").disabled = false;
1177   - document.getElementById("filloption2").disabled = false;
1178   - document.getElementById("filloption1").style.cursor = "default";
1179   - document.getElementById("filloption2").style.cursor = "default";
  1339 + <script>
  1340 + function Brushsize(object) {
1180 1341  
  1342 + object.value = object.value.replace(/[^0-9]/g, '');
  1343 + if (parseInt(object.value) <= 0) {
  1344 + object.value = 1;
  1345 + }
  1346 + if (parseInt(object.value) >= 1 && parseInt(object.value) <= 60) {
  1347 + object.value = object.value;
  1348 + }
  1349 + if (parseInt(object.value) > 60) {
  1350 + object.value = object.value.slice(0, 1);
1181 1351  
  1352 + }
1182 1353  
1183   - }
1184   - else {
1185   - $('#imgOpacity').css("background-color", "transparent");
1186   - //$("#filloption1").css({ "pointer-events": "none" });
1187   - //$("#filloption2").css({ "pointer-events": "none" });
1188   - $("#edit-slider-3").css({ "pointer-events": "none" });
1189   - $("#edit-slider-4").css({ "pointer-events": "none" });
1190   - $("#editstylebackgroundcolor").css({ "pointer-events": "none" });
1191   - $("#editstyleTexture").css({ "pointer-events": "none" });
1192   - $(".enableDisableOpacity label").css({ "cursor": "default" });
1193   - $(".enableDisableOpacity").css({ "opacity": ".5" })
1194   - document.getElementById("filloption1").disabled = true;
1195   - document.getElementById("filloption2").disabled = true;
1196   - document.getElementById("filloption1").style.cursor = "default";
1197   - document.getElementById("filloption2").style.cursor = "default";
  1354 + }
  1355 + </script>
  1356 +
  1357 +
  1358 + <!--<script src="libs/jquery/1.11.3/jquery.min.js"></script>-->
  1359 + <script src="libs/jquery/2.1.3/jquery.min.js"></script>
  1360 + <script src="libs/jquery/1.11.4/jquery-ui.js"></script>
  1361 + <script src="libs/jquery/jquery_plugin/jquery.mCustomScrollbar.concat.min.js"></script>
  1362 + <script src="themes/default/scripts/bootstrap/3.3.5/bootstrap.js"></script>
  1363 + <script src="libs/angular/1.4.9/angular.min.js"></script>
  1364 + <script src="libs/angular/1.4.9/angular-route.min.js"></script>
  1365 + <script src="libs/angular/1.4.9/angular-sanitize.min.js"></script>
  1366 + <script src="libs/angular/1.4.9/ngStorage.js"></script>
  1367 + <script src="content/js/custom/custom.js"></script>
  1368 + <!--Annotation Toolbar : jcanvas Library-->
  1369 +
  1370 + <script src="libs/jcanvas/jcanvas.min.js"></script>
  1371 + <script src="libs/jcanvas/jcanvas.handle.min.js"></script>
  1372 +
  1373 + <script src="libs/jinqJs.js"></script>
  1374 + <script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js"></script>
  1375 + <script src="libs/video_4_12_11/video_4_12_11.js"></script>
  1376 + <script src="libs/jquery/jquery_plugin/SpeechBubble/bubble.js"></script>
  1377 + <script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>
  1378 + <!--<script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.min.js"></script>-->
  1379 + <script src="app/main/AIA.js"></script>
  1380 + <script src="app/main/Link.js"></script>
  1381 + <script src="content/scripts/js/custom/custom.js"></script>
  1382 + <script src="app/filters/ColorMatrixFilter.js"></script>
  1383 + <script src="app/utility/Matrix.js"></script>
  1384 + <script src="app/utility/Point.js"></script>
  1385 + <script src="app/utility/Rectangle.js"></script>
  1386 + <script src="app/utility/BitmapData.js"></script>
  1387 + <script src="app/utility/Paint.js"></script>
  1388 + <script src="app/controllers/DAController.js"></script>
  1389 + <script src="app/controllers/CIController.js"></script>
  1390 + <script src="app/controllers/CAController.js"></script>
  1391 + <script src="app/controllers/3dAController.js"></script>
  1392 + <script src="app/controllers/CurrBuildController.js"></script>
  1393 + <script src="app/controllers/AnatTestController.js"></script>
  1394 + <script src="app/controllers/LabExercController.js"></script>
  1395 + <script src="app/controllers/ADAMImgController.js"></script>
  1396 + <script src="app/controllers/AODController.js"></script>
  1397 + <script src="app/controllers/HomeController.js"></script>
  1398 + <script src="app/controllers/LinkController.js"></script>
  1399 + <script src="app/services/AuthenticationService.js"></script>
  1400 +
  1401 + <script src="app/services/DataService.js"></script>
  1402 + <script src="libs/jquery/jquery_plugin/jqueryui.js"></script>
  1403 +
  1404 + <script src="libs/jquery/jquery_plugin/color-picker/jquery.minicolors.min.js"></script>
  1405 + <!--<script src="libs/colorpicker/jquery.minicolors.min.js"></script>-->
  1406 + <!--<script src="libs/color-picker/jquery.minicolors.min.js"></script>-->
  1407 +
  1408 + <script src="libs/sketch.js"></script>
  1409 +
  1410 + <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>-->
  1411 + <script src="libs/html2canvas.js"></script>
  1412 + <script src="libs/FileSaver.js"></script>
  1413 + <!--<script type="text/javascript">
  1414 + $(function () {
  1415 + $('#canvas').sketch();
  1416 + });
  1417 + </script>-->
  1418 + <script>
  1419 + $(function () {
  1420 + $("#slider-range-min-2").slider({
  1421 + range: "min",
  1422 + min: 1,
  1423 + max: 60,
  1424 + value: 1,
  1425 + slide: function (event, ui) {
  1426 +
  1427 + $("#btnBrushSize").val(ui.value);
  1428 +
  1429 + },
  1430 + stop: function (event, ui) {
  1431 +
  1432 + $("#paintLine").attr("data-size", ui.value);
1198 1433  
  1434 + }
1199 1435  
  1436 + });
1200 1437  
1201   - }
1202 1438  
  1439 + $("#btnBrushSize").keydown(function () {
  1440 + var brushSizevalue = this.value;
  1441 + $("#slider-range-min-2").slider("value", parseInt(brushSizevalue));
  1442 + });
  1443 + $("#btnBrushSize").keyup(function () {
  1444 + var brushSizevalue = this.value;
  1445 + $("#slider-range-min-2").slider("value", parseInt(brushSizevalue));
  1446 + });
  1447 + $("#btnBrushSizeIncrement").click(function () {
  1448 + var brushIncrementVar = $("#btnBrushSize").val();
  1449 + if (brushIncrementVar >= 60) {
  1450 + $("#slider-range-min-2").slider("value", 60);
1203 1451 }
1204   - function enableDisableOutline() {
1205   -
1206   - if (document.getElementById('Outline-Option').checked) {
1207   - var x = $("#outlineColor span.minicolors-swatch-color").css('background-color');
1208   - $(".marginTopBtm10 div.outlinediv").css("border-color", x);
1209   - // var borderWidth = $("#outlineColor span.minicolors-swatch-color").css('border-width');
1210   - // $("#imgOpacity").css("border-width", borderWidth);
1211   -
1212   - $("#borderWidthCanvasElement").css({ "pointer-events": "auto" });
1213   - $("#outlineColor").css({ "pointer-events": "auto" });
1214   - $(".setEnableDisableForEditShapeStyle").css({ "opacity": "1" })
1215   - }
1216   - else {
1217   - $('.marginTopBtm10 div.outlinediv').css("border-color", "transparent");
1218   - $("#borderWidthCanvasElement").css({ "pointer-events": "none" });
1219   - $("#outlineColor").css({ "pointer-events": "none" });
1220   - $(".setEnableDisableForEditShapeStyle").css({ "opacity": ".5" })
1221   - }
  1452 + else if (brushIncrementVar == "") {
  1453 + var brushIncrementedValue = 1;
  1454 + $("#btnBrushSize").val(brushIncrementedValue);
  1455 + $("#slider-range-min-2").slider("value", parseInt(brushIncrementedValue));
1222 1456 }
1223   -
1224   - </script>
1225   -
1226   - <script>
1227   - function Brushsize(object) {
1228   -
1229   - object.value = object.value.replace(/[^0-9]/g, '');
1230   - if (parseInt(object.value) <= 0) {
1231   - object.value = 1;
1232   - }
1233   - if (parseInt(object.value) >= 1 && parseInt(object.value) <= 60) {
1234   - object.value = object.value;
1235   - }
1236   - if (parseInt(object.value) > 60) {
1237   - object.value = object.value.slice(0, 1);
1238   -
1239   - }
1240   -
  1457 + else {
  1458 + var brushIncrementedValue = parseInt(brushIncrementVar) + 1;
  1459 + $("#btnBrushSize").val(brushIncrementedValue);
  1460 + $("#slider-range-min-2").slider("value", parseInt(brushIncrementedValue));
1241 1461 }
1242   - </script>
1243   -
1244   -
1245   - <!--<script src="libs/jquery/1.11.3/jquery.min.js"></script>-->
1246   - <script src="libs/jquery/2.1.3/jquery.min.js"></script>
1247   - <script src="libs/jquery/1.11.4/jquery-ui.js"></script>
1248   - <script src="libs/jquery/jquery_plugin/jquery.mCustomScrollbar.concat.min.js"></script>
1249   - <script src="themes/default/scripts/bootstrap/3.3.5/bootstrap.js"></script>
1250   - <script src="libs/angular/1.4.9/angular.min.js"></script>
1251   - <script src="libs/angular/1.4.9/angular-route.min.js"></script>
1252   - <script src="libs/angular/1.4.9/angular-sanitize.min.js"></script>
1253   - <script src="libs/angular/1.4.9/ngStorage.js"></script>
1254   - <script src="content/js/custom/custom.js"></script>
1255   - <!--Annotation Toolbar : jcanvas Library-->
1256   -
1257   - <script src="libs/jcanvas/jcanvas.min.js"></script>
1258   - <script src="libs/jcanvas/jcanvas.handle.min.js"></script>
1259   -
1260   - <script src="libs/jinqJs.js"></script>
1261   - <script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js"></script>
1262   - <script src="libs/video_4_12_11/video_4_12_11.js"></script>
1263   - <script src="libs/jquery/jquery_plugin/SpeechBubble/bubble.js"></script>
1264   - <script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>
1265   - <!--<script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.min.js"></script>-->
1266   - <script src="app/main/AIA.js"></script>
1267   - <script src="app/main/Link.js"></script>
1268   - <script src="content/scripts/js/custom/custom.js"></script>
1269   - <script src="app/filters/ColorMatrixFilter.js"></script>
1270   - <script src="app/utility/Matrix.js"></script>
1271   - <script src="app/utility/Point.js"></script>
1272   - <script src="app/utility/Rectangle.js"></script>
1273   - <script src="app/utility/BitmapData.js"></script>
1274   - <script src="app/utility/Paint.js"></script>
1275   - <script src="app/controllers/DAController.js"></script>
1276   - <script src="app/controllers/CIController.js"></script>
1277   - <script src="app/controllers/CAController.js"></script>
1278   - <script src="app/controllers/3dAController.js"></script>
1279   - <script src="app/controllers/CurrBuildController.js"></script>
1280   - <script src="app/controllers/AnatTestController.js"></script>
1281   - <script src="app/controllers/LabExercController.js"></script>
1282   - <script src="app/controllers/ADAMImgController.js"></script>
1283   - <script src="app/controllers/AODController.js"></script>
1284   - <script src="app/controllers/HomeController.js"></script>
1285   - <script src="app/controllers/LinkController.js"></script>
1286   - <script src="app/services/AuthenticationService.js"></script>
1287   -
1288   - <script src="app/services/DataService.js"></script>
1289   - <script src="libs/jquery/jquery_plugin/jqueryui.js"></script>
1290   -
1291   - <script src="libs/jquery/jquery_plugin/color-picker/jquery.minicolors.min.js"></script>
1292   - <!--<script src="libs/colorpicker/jquery.minicolors.min.js"></script>-->
1293   - <!--<script src="libs/color-picker/jquery.minicolors.min.js"></script>-->
1294   -
1295   - <script src="libs/sketch.js"></script>
1296   -
1297   - <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>-->
1298   - <script src="libs/html2canvas.js"></script>
1299   - <script src="libs/FileSaver.js"></script>
1300   - <!--<script type="text/javascript">
1301   - $(function () {
1302   - $('#canvas').sketch();
1303 1462 });
1304   - </script>-->
1305   - <script>
1306   - $(function () {
1307   - $("#slider-range-min-2").slider({
1308   - range: "min",
1309   - min: 1,
1310   - max: 60,
1311   - value: 1,
1312   - slide: function (event, ui) {
1313   -
1314   - $("#btnBrushSize").val(ui.value);
1315   -
1316   - },
1317   - stop: function (event, ui) {
1318   -
1319   - $("#paintLine").attr("data-size", ui.value);
1320   -
1321   - }
1322   -
1323   - });
1324   -
1325   -
1326   - $("#btnBrushSize").keydown(function () {
1327   - var brushSizevalue = this.value;
1328   - $("#slider-range-min-2").slider("value", parseInt(brushSizevalue));
1329   - });
1330   - $("#btnBrushSize").keyup(function () {
1331   - var brushSizevalue = this.value;
1332   - $("#slider-range-min-2").slider("value", parseInt(brushSizevalue));
1333   - });
1334   - $("#btnBrushSizeIncrement").click(function () {
1335   - var brushIncrementVar = $("#btnBrushSize").val();
1336   - if (brushIncrementVar >= 60) {
1337   - $("#slider-range-min-2").slider("value", 60);
1338   - }
1339   - else if (brushIncrementVar == "") {
1340   - var brushIncrementedValue = 1;
1341   - $("#btnBrushSize").val(brushIncrementedValue);
1342   - $("#slider-range-min-2").slider("value", parseInt(brushIncrementedValue));
1343   - }
1344   - else {
1345   - var brushIncrementedValue = parseInt(brushIncrementVar) + 1;
1346   - $("#btnBrushSize").val(brushIncrementedValue);
1347   - $("#slider-range-min-2").slider("value", parseInt(brushIncrementedValue));
1348   - }
1349   - });
1350   - $("#btnBrushSizeDecrease").click(function () {
1351   - var brushDecreaseVar = $("#btnBrushSize").val();
1352   - if (brushDecreaseVar == "") {
1353   - var brushDecrementedValue = 1;
1354   - $("#btnBrushSize").val(brushDecrementedValue);
1355   - $("#slider-range-min-2").slider("value", parseInt(brushDecrementedValue));
1356   - }
1357   - else if (brushDecreaseVar <= 1) {
1358   - $("#slider-range-min-2").slider("value", 1);
1359   - }
1360   - else {
1361   - var brushDecrementedValue = parseInt(brushDecreaseVar) - 1;
1362   - $("#btnBrushSize").val(brushDecrementedValue);
1363   - $("#slider-range-min-2").slider("value", parseInt(brushDecrementedValue));
1364   - }
1365   - });
1366   - $("#btnBrushSize").val($("#slider-range-min-2").slider("value"));
  1463 + $("#btnBrushSizeDecrease").click(function () {
  1464 + var brushDecreaseVar = $("#btnBrushSize").val();
  1465 + if (brushDecreaseVar == "") {
  1466 + var brushDecrementedValue = 1;
  1467 + $("#btnBrushSize").val(brushDecrementedValue);
  1468 + $("#slider-range-min-2").slider("value", parseInt(brushDecrementedValue));
  1469 + }
  1470 + else if (brushDecreaseVar <= 1) {
  1471 + $("#slider-range-min-2").slider("value", 1);
  1472 + }
  1473 + else {
  1474 + var brushDecrementedValue = parseInt(brushDecreaseVar) - 1;
  1475 + $("#btnBrushSize").val(brushDecrementedValue);
  1476 + $("#slider-range-min-2").slider("value", parseInt(brushDecrementedValue));
  1477 + }
  1478 + });
  1479 + $("#btnBrushSize").val($("#slider-range-min-2").slider("value"));
1367 1480  
1368 1481  
1369 1482  
1370 1483  
1371 1484  
1372   - //$("#slider-range-min-2").on("slidestart", function (event, ui) {
  1485 + //$("#slider-range-min-2").on("slidestart", function (event, ui) {
1373 1486  
1374   - // $('.btnCursor').trigger('click');
1375   - // $(".btn-annotation").removeClass("activebtncolor");
1376   - // $('.btnCursor').addClass('activebtncolor');
1377   - // // ctx.clearRect(0, 0, canvasPaint.width, canvasPaint.height);
  1487 + // $('.btnCursor').trigger('click');
  1488 + // $(".btn-annotation").removeClass("activebtncolor");
  1489 + // $('.btnCursor').addClass('activebtncolor');
  1490 + // // ctx.clearRect(0, 0, canvasPaint.width, canvasPaint.height);
1378 1491  
1379 1492  
1380   - //});
1381   - // $("#slider-range-min-2").on("slidechange", function (event, ui) { alert("ssasa"); });
  1493 + //});
  1494 + // $("#slider-range-min-2").on("slidechange", function (event, ui) { alert("ssasa"); });
1382 1495  
1383 1496  
1384   - $(function () {
1385   - $('[data-toggle="tooltip"]').tooltip();
1386   - })
1387   - });
1388   - </script>
1389   - <script>
1390   - (function ($) {
1391   - $(window).load(function () {
1392   - $(".sidebar").mCustomScrollbar({
1393   - autoHideScrollbar: true,
1394   - //theme:"rounded"
1395   - });
1396   -
1397   - });
1398   - })(jQuery);
1399   - </script>
1400   - <script>
1401   - $(function () {
1402   - $(".modal").draggable();
1403   - $(".annotationTollbar").draggable();
1404   - $(".modeleditstyle").draggable();
1405   - $("#annotationTextModal").draggable();
1406   - $("#modal-settings").draggable();
  1497 + $(function () {
  1498 + $('[data-toggle="tooltip"]').tooltip();
  1499 + })
  1500 + });
  1501 + </script>
  1502 + <script>
  1503 + (function ($) {
  1504 + $(window).load(function () {
  1505 + $(".sidebar").mCustomScrollbar({
  1506 + autoHideScrollbar: true,
  1507 + //theme:"rounded"
1407 1508 });
1408   - </script>
1409   -
1410   -
1411 1509  
  1510 + });
  1511 + })(jQuery);
  1512 + </script>
  1513 + <script>
  1514 + $(function () {
  1515 + $(".modal").draggable();
  1516 + $(".annotationTollbar").draggable();
  1517 + $(".modeleditstyle").draggable();
  1518 + $("#annotationTextModal").draggable();
  1519 + $("#modal-settings").draggable();
  1520 + });
  1521 + </script>
1412 1522  
1413   - <script type="text/javascript">
1414   - $(function () {
1415   -
1416   - $("#text-left").on('click', function () {
1417 1523  
1418   - //Annotation: Formatting buttons color is not change when select.
1419 1524  
1420   - $("#text-center").removeClass("ActiveFormattingButtonClass");
1421   - $("#text-right").removeClass("ActiveFormattingButtonClass");
1422   - $("#text-left").addClass("ActiveFormattingButtonClass");
1423   - $("#text_area").css("text-align", "left");
1424 1525  
  1526 + <script type="text/javascript">
  1527 + $(function () {
1425 1528  
1426   - });
  1529 + $("#text-left").on('click', function () {
1427 1530  
  1531 + //Annotation: Formatting buttons color is not change when select.
1428 1532  
1429   - $("#text-center").on('click', function () {
  1533 + $("#text-center").removeClass("ActiveFormattingButtonClass");
  1534 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  1535 + $("#text-left").addClass("ActiveFormattingButtonClass");
  1536 + $("#text_area").css("text-align", "left");
1430 1537  
1431   - //Annotation: Formatting buttons color is not change when select.
1432 1538  
1433   - $("#text-right").removeClass("ActiveFormattingButtonClass");
1434   - $("#text-left").removeClass("ActiveFormattingButtonClass");
1435   - $("#text-center").addClass("ActiveFormattingButtonClass");
1436   - $("#text_area").css("text-align", "center");
  1539 + });
1437 1540  
1438 1541  
1439   - });
  1542 + $("#text-center").on('click', function () {
1440 1543  
  1544 + //Annotation: Formatting buttons color is not change when select.
1441 1545  
1442   - $("#text-right").on('click', function () {
  1546 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  1547 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  1548 + $("#text-center").addClass("ActiveFormattingButtonClass");
  1549 + $("#text_area").css("text-align", "center");
1443 1550  
1444   - //Annotation: Formatting buttons color is not change when select.
1445 1551  
1446   - $("#text-left").removeClass("ActiveFormattingButtonClass");
1447   - $("#text-center").removeClass("ActiveFormattingButtonClass");
1448   - $("#text-right").addClass("ActiveFormattingButtonClass");
1449   - $("#text_area").css("text-align", "right");
1450   - });
  1552 + });
1451 1553  
1452 1554  
1453   - $("#text-bold").on('click', function () {
  1555 + $("#text-right").on('click', function () {
1454 1556  
1455   - //Annotation: Formatting buttons color is not change when select.
1456   - $("#text-bold").toggleClass("ActiveFormattingButtonClass");
  1557 + //Annotation: Formatting buttons color is not change when select.
1457 1558  
1458   - if ($("#text-bold").hasClass("ActiveFormattingButtonClass")) {
1459   - $("#text_area").css("font-weight", "bold");
1460   - }
1461   - else {
1462   - $("#text_area").css("font-weight", "normal");
1463   - }
  1559 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  1560 + $("#text-center").removeClass("ActiveFormattingButtonClass");
  1561 + $("#text-right").addClass("ActiveFormattingButtonClass");
  1562 + $("#text_area").css("text-align", "right");
  1563 + });
1464 1564  
1465 1565  
1466   - });
  1566 + $("#text-bold").on('click', function () {
1467 1567  
1468   - $("#text-italic").on('click', function () {
  1568 + //Annotation: Formatting buttons color is not change when select.
  1569 + $("#text-bold").toggleClass("ActiveFormattingButtonClass");
1469 1570  
1470   - //Annotation: Formatting buttons color is not change when select.
1471   - $("#text-italic").toggleClass("ActiveFormattingButtonClass");
1472   - if ($("#text-italic").hasClass("ActiveFormattingButtonClass")) {
1473   - $("#text_area").css("font-style", "italic");
1474   - }
1475   - else {
1476   - $("#text_area").css("font-style", "normal");
1477   - }
  1571 + if ($("#text-bold").hasClass("ActiveFormattingButtonClass")) {
  1572 + $("#text_area").css("font-weight", "bold");
  1573 + }
  1574 + else {
  1575 + $("#text_area").css("font-weight", "normal");
  1576 + }
1478 1577  
1479 1578  
1480   - });
  1579 + });
1481 1580  
1482   - $("#text-underline").on('click', function () {
  1581 + $("#text-italic").on('click', function () {
1483 1582  
1484   - //Annotation: Formatting buttons color is not change when select.
1485   - $("#text-underline").toggleClass("ActiveFormattingButtonClass");
  1583 + //Annotation: Formatting buttons color is not change when select.
  1584 + $("#text-italic").toggleClass("ActiveFormattingButtonClass");
  1585 + if ($("#text-italic").hasClass("ActiveFormattingButtonClass")) {
  1586 + $("#text_area").css("font-style", "italic");
  1587 + }
  1588 + else {
  1589 + $("#text_area").css("font-style", "normal");
  1590 + }
1486 1591  
1487   - if ($("#text-underline").hasClass("ActiveFormattingButtonClass")) {
1488   - $("#text_area").css("text-decoration", "underline");
1489   - }
1490   - else {
1491   - $("#text_area").css("text-decoration", "none");
1492   - }
1493 1592  
  1593 + });
1494 1594  
1495   - });
  1595 + $("#text-underline").on('click', function () {
1496 1596  
  1597 + //Annotation: Formatting buttons color is not change when select.
  1598 + $("#text-underline").toggleClass("ActiveFormattingButtonClass");
1497 1599  
1498   - $("#selected-font-size").change(function () {
  1600 + if ($("#text-underline").hasClass("ActiveFormattingButtonClass")) {
  1601 + $("#text_area").css("text-decoration", "underline");
  1602 + }
  1603 + else {
  1604 + $("#text_area").css("text-decoration", "none");
  1605 + }
1499 1606  
1500   - $("#text_area").css("font-size", $(this).val() + "px");
1501   - });
1502 1607  
1503   - $("#selected-font-family").change(function () {
  1608 + });
1504 1609  
1505   - $("#text_area").css("font-family", $(this).val());
1506 1610  
1507   - });
  1611 + $("#selected-font-size").change(function () {
1508 1612  
  1613 + $("#text_area").css("font-size", $(this).val() + "px");
  1614 + });
1509 1615  
1510   - });
  1616 + $("#selected-font-family").change(function () {
1511 1617  
  1618 + $("#text_area").css("font-family", $(this).val());
1512 1619  
  1620 + });
1513 1621  
1514   - </script>
1515 1622  
  1623 + });
1516 1624  
1517   - <script>
1518   - $(document).ready(function () {
1519   - // $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").addClass("ActiveDefaultColorAnnotation");
1520   -
1521   - var borderWidth = 1;
1522   - var borderColor = "#000";
1523   - $("#borderWidthCanvasElement").change(function () {
1524   - borderWidth = $(this).val();
1525   - borderColor = $('#outlineColor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color");
1526 1625  
1527   - if (borderColor != null) {
1528   - document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor;
1529   - //$("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid" + borderColor);
1530   - } else {
1531 1626  
1532   - // $("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid");
1533   - document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor;
  1627 + </script>
1534 1628  
1535   - }
1536   - });
1537 1629  
  1630 + <script>
  1631 + $(document).ready(function () {
  1632 + // $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").addClass("ActiveDefaultColorAnnotation");
1538 1633  
  1634 + var borderWidth = 1;
  1635 + var borderColor = "#000";
  1636 + $("#borderWidthCanvasElement").change(function () {
  1637 + borderWidth = $(this).val();
  1638 + borderColor = $('#outlineColor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color");
1539 1639  
1540   - $('.borderColorCanvasPreview').each(function () {
1541   - // $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").addClass("ActiveDefaultColorAnnotation");
1542   - $(this).minicolors({
1543   - control: $(this).attr('data-control') || 'hue',
1544   - defaultValue: $(this).attr('data-defaultValue') || '',
1545   - format: $(this).attr('data-format') || 'hex',
1546   - keywords: $(this).attr('data-keywords') || '',
1547   - inline: $(this).attr('data-inline') === 'true',
1548   - letterCase: $(this).attr('data-letterCase') || 'lowercase',
1549   - opacity: $(this).attr('data-opacity'),
1550   - position: $(this).attr('data-position') || 'bottom left',
1551   - swatches: $(this).attr('data-swatches') ? $(this).attr('data-swatches').split('|') : [],
1552   - change: function (value, opacity) {
1553   - if (!value) return;
1554   - if (opacity) value += ', ' + opacity;
1555   - if (typeof console === 'object') {
1556   - console.log(value);
  1640 + if (borderColor != null) {
  1641 + document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor;
  1642 + //$("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid" + borderColor);
  1643 + } else {
1557 1644  
1558   - borderColor = value;
1559   - //$("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid" + borderColor);
1560   - document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor;
  1645 + // $("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid");
  1646 + document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor;
1561 1647  
  1648 + }
  1649 + });
1562 1650  
1563   - }
1564   - },
1565   - theme: 'bootstrap'
1566   - });
1567 1651  
1568 1652  
1569   - });
  1653 + $('.borderColorCanvasPreview').each(function () {
  1654 + // $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").addClass("ActiveDefaultColorAnnotation");
  1655 + $(this).minicolors({
  1656 + control: $(this).attr('data-control') || 'hue',
  1657 + defaultValue: $(this).attr('data-defaultValue') || '',
  1658 + format: $(this).attr('data-format') || 'hex',
  1659 + keywords: $(this).attr('data-keywords') || '',
  1660 + inline: $(this).attr('data-inline') === 'true',
  1661 + letterCase: $(this).attr('data-letterCase') || 'lowercase',
  1662 + opacity: $(this).attr('data-opacity'),
  1663 + position: $(this).attr('data-position') || 'bottom left',
  1664 + swatches: $(this).attr('data-swatches') ? $(this).attr('data-swatches').split('|') : [],
  1665 + change: function (value, opacity) {
  1666 + if (!value) return;
  1667 + if (opacity) value += ', ' + opacity;
  1668 + if (typeof console === 'object') {
  1669 + console.log(value);
  1670 +
  1671 + borderColor = value;
  1672 + //$("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid" + borderColor);
  1673 + document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor;
1570 1674  
1571 1675  
1572   - $('.outerBackgroundColor').each(function () {
  1676 + }
  1677 + },
  1678 + theme: 'bootstrap'
  1679 + });
1573 1680  
1574   - $(this).minicolors({
1575   - control: $(this).attr('data-control') || 'hue',
1576   - defaultValue: $(this).attr('data-defaultValue') || '',
1577   - format: $(this).attr('data-format') || 'hex',
1578   - keywords: $(this).attr('data-keywords') || '',
1579   - inline: $(this).attr('data-inline') === 'true',
1580   - letterCase: $(this).attr('data-letterCase') || 'lowercase',
1581   - opacity: $(this).attr('data-opacity'),
1582   - position: $(this).attr('data-position') || 'bottom left',
1583   - swatches: $(this).attr('data-swatches') ? $(this).attr('data-swatches').split('|') : [],
1584   - change: function (value, opacity) {
1585   - if (!value) return;
1586   - if (opacity) value += ', ' + opacity;
1587   - if (typeof console === 'object') {
1588   - console.log(value);
1589   - $("#imgOpacity").css("background-color", value);
1590 1681  
1591   - }
1592   - },
1593   - theme: 'bootstrap'
1594   - });
  1682 + });
1595 1683  
1596   - });
1597 1684  
  1685 + $('.outerBackgroundColor').each(function () {
  1686 +
  1687 + $(this).minicolors({
  1688 + control: $(this).attr('data-control') || 'hue',
  1689 + defaultValue: $(this).attr('data-defaultValue') || '',
  1690 + format: $(this).attr('data-format') || 'hex',
  1691 + keywords: $(this).attr('data-keywords') || '',
  1692 + inline: $(this).attr('data-inline') === 'true',
  1693 + letterCase: $(this).attr('data-letterCase') || 'lowercase',
  1694 + opacity: $(this).attr('data-opacity'),
  1695 + position: $(this).attr('data-position') || 'bottom left',
  1696 + swatches: $(this).attr('data-swatches') ? $(this).attr('data-swatches').split('|') : [],
  1697 + change: function (value, opacity) {
  1698 + if (!value) return;
  1699 + if (opacity) value += ', ' + opacity;
  1700 + if (typeof console === 'object') {
  1701 + console.log(value);
  1702 + $("#imgOpacity").css("background-color", value);
1598 1703  
  1704 + }
  1705 + },
  1706 + theme: 'bootstrap'
1599 1707 });
1600   - </script>
1601 1708  
1602   - <script>
1603   - $(function () {
1604   - $("#slider-range-min-3").slider({
1605   - range: "min",
1606   - min: 0,
1607   - max: 100,
1608   - value: 20,
1609   - change: function (event, ui) {
  1709 + });
1610 1710  
1611 1711  
1612   - }
1613   - });
  1712 + });
  1713 + </script>
1614 1714  
  1715 + <script>
  1716 + $(function () {
  1717 + $("#slider-range-min-3").slider({
  1718 + range: "min",
  1719 + min: 0,
  1720 + max: 100,
  1721 + value: 20,
  1722 + change: function (event, ui) {
1615 1723  
1616 1724  
1617   - });
1618   - </script>
  1725 + }
  1726 + });
1619 1727  
1620   - <script>
1621   - $(function () {
1622 1728  
1623 1729  
  1730 + });
  1731 + </script>
1624 1732  
1625   - $("#slider-range-min-4").slider(
1626   - {
1627   - range: "min",
1628   - value: .5,
1629   - min: 0,
1630   - max: 1,
1631   - step: .1,
1632   - slide: function (event, ui) {
  1733 + <script>
  1734 + $(function () {
1633 1735  
1634   - $(".marginTopBtm10 .imgopacity").css("opacity", ui.value);
1635   - $(".marginTopBtm10 div.outlinediv").css("opacity", ui.value);
1636   - }
1637 1736  
1638   - }
1639 1737  
1640   - );
  1738 + $("#slider-range-min-4").slider(
  1739 + {
  1740 + range: "min",
  1741 + value: .5,
  1742 + min: 0,
  1743 + max: 1,
  1744 + step: .1,
  1745 + slide: function (event, ui) {
1641 1746  
1642   - });
  1747 + $(".marginTopBtm10 .imgopacity").css("opacity", ui.value);
  1748 + $(".marginTopBtm10 div.outlinediv").css("opacity", ui.value);
  1749 + }
1643 1750  
  1751 + }
1644 1752  
  1753 +);
1645 1754  
1646   - </script>
  1755 + });
1647 1756  
1648 1757  
1649 1758  
1650   - <script>
1651   - $(function () {
  1759 + </script>
1652 1760  
1653 1761  
1654   - $("#OnIdentify").on('mouseover', function () {
1655   - $("#identify-block").addClass("custom-tooltip-annotation");
1656   - $(".custom-tooltip-annotation").css('display', 'block');
1657   - }).on('mouseout', function () {
1658   - // $("#identify-block").removeClass("custom-tooltip-annotation");
1659   - $(".custom-tooltip-annotation").css('display', 'none');
1660   - $("#identify-block").removeClass("custom-tooltip-annotation");
1661   - });
1662 1762  
  1763 + <script>
  1764 + $(function () {
1663 1765  
1664   - $("#DrawMode").on('mouseover', function () {
1665   - $("#draw-block").addClass("custom-tooltip-annotation");
1666   - $(".custom-tooltip-annotation").css('display', 'block');
1667 1766  
1668   - }).on('mouseout', function () {
  1767 + $("#OnIdentify").on('mouseover', function () {
  1768 + $("#identify-block").addClass("custom-tooltip-annotation");
  1769 + $(".custom-tooltip-annotation").css('display', 'block');
  1770 + }).on('mouseout', function () {
  1771 + // $("#identify-block").removeClass("custom-tooltip-annotation");
  1772 + $(".custom-tooltip-annotation").css('display', 'none');
  1773 + $("#identify-block").removeClass("custom-tooltip-annotation");
  1774 + });
1669 1775  
1670   - $(".custom-tooltip-annotation").css('display', 'none');
1671   - $("#draw-block").removeClass("custom-tooltip-annotation");
1672   - });
1673 1776  
1674   - //#7931
1675   - $("#OnEdtShape").on('mouseover', function () {
1676   - $("#edit-block").addClass("custom-tooltip-annotation-edit");
1677   - $(".custom-tooltip-annotation-edit").css('display', 'block');
  1777 + $("#DrawMode").on('mouseover', function () {
  1778 + $("#draw-block").addClass("custom-tooltip-annotation");
  1779 + $(".custom-tooltip-annotation").css('display', 'block');
1678 1780  
1679   - }).on('mouseout', function () {
  1781 + }).on('mouseout', function () {
1680 1782  
1681   - $(".custom-tooltip-annotation-edit").css('display', 'none');
1682   - $("#edit-block").removeClass("custom-tooltip-annotation-edit");
1683   - });
  1783 + $(".custom-tooltip-annotation").css('display', 'none');
  1784 + $("#draw-block").removeClass("custom-tooltip-annotation");
  1785 + });
1684 1786  
1685   - });
1686   - </script>
1687   - <!-- Export Image Save Click-->
1688   - <script>
1689   - $(function () {
1690   - $("#btnSaveEI").click(function () {
1691   - html2canvas($("#canvasDiv"), {
1692   - onrendered: function (canvas) {
1693   - theCanvas = canvas;
1694   - var fileName = document.getElementById("filename").value + '.jpg';
1695   - if (typeof (fileName) == "undefined" || fileName == ".jpg")
1696   - fileName = "Untitled.jpg"
1697   - var dataURL = canvas.toDataURL("image/jpeg");
1698   - var blob = dataURItoBlob(dataURL);
1699   - saveAs(blob, fileName);
1700   - $("#filename").val("");
1701   - }
1702   - });
1703   - $(".export-image").css("display", "none");
1704   - });
1705   - });
1706   - function dataURItoBlob(dataURI) {
1707   - var byteString = atob(dataURI.split(',')[1]);
1708   - var ab = new ArrayBuffer(byteString.length);
1709   - var ia = new Uint8Array(ab);
1710   - for (var i = 0; i < byteString.length; i++) {
1711   - ia[i] = byteString.charCodeAt(i);
1712   - }
1713   - return new Blob([ab], { type: 'image/jpeg' });
1714   - }
1715   - </script>
1716   - <script>
1717   - function ResizeImage(sizePercent) {
1718   - var autoWidth = 427;
1719   - var autoHeight = 547;
1720   - var dvAutoSpnFontSize = 12;
1721   - var imgLogoW = 77;
1722   - var fullWidth = 620; //$('#canvasDiv').width();
1723   - var fullHeight = 876; //$('#canvasDiv').height();
1724   -
1725   - if (sizePercent == 0) {
1726   - $('#printBoxPor').width(autoWidth).height(autoHeight);//.height(dvPrintBoxPorH * sizePercent);
1727   - $('#printBoxLan').width(autoHeight).height(autoWidth);
1728   - $('#dvPortrait').width(autoWidth);
1729   - $('#dvLandscape').width(autoHeight);
1730   - $('.span-font').attr('style', 'font-size: ' + (dvAutoSpnFontSize * .65).toFixed() + 'px');
1731   - $(".logo-image").attr('width', imgLogoW * .65);
1732   - }
  1787 + //#7931
  1788 + $("#OnEdtShape").on('mouseover', function () {
  1789 + $("#edit-block").addClass("custom-tooltip-annotation-edit");
  1790 + $(".custom-tooltip-annotation-edit").css('display', 'block');
1733 1791  
1734   - else if (sizePercent == 1) {
1735   - $('#dvPortrait').width(fullWidth * sizePercent);
1736   - $('#dvLandscape').width(fullHeight * sizePercent);
1737   - $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent);
1738   - $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent);
1739   - $('.span-font').attr('style', 'font-size: ' + dvAutoSpnFontSize + 'px');
1740   - $(".logo-image").attr('width', imgLogoW);
1741   - }
  1792 + }).on('mouseout', function () {
1742 1793  
1743   - else {
1744   - $('#dvPortrait').width(fullWidth * sizePercent);
1745   - $('#dvLandscape').width(fullHeight * sizePercent);
1746   - $('.span-font').attr('style', 'font-size: ' + (dvAutoSpnFontSize * sizePercent).toFixed() + 'px !important');
1747   - $(".logo-image").attr('width', (imgLogoW * sizePercent).toFixed());
1748   - if (sizePercent > 1) {
1749   - $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent);
1750   - $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent);
1751   - }
1752   - else {
1753   - $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent);
1754   - $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent);
1755   - }
  1794 + $(".custom-tooltip-annotation-edit").css('display', 'none');
  1795 + $("#edit-block").removeClass("custom-tooltip-annotation-edit");
  1796 + });
  1797 +
  1798 + });
  1799 + </script>
  1800 + <!-- Export Image Save Click-->
  1801 + <script>
  1802 + $(function () {
  1803 + $("#btnSaveEI").click(function () {
  1804 + html2canvas($("#canvasDiv"), {
  1805 + onrendered: function (canvas) {
  1806 + theCanvas = canvas;
  1807 + var fileName = document.getElementById("filename").value + '.jpg';
  1808 + if (typeof (fileName) == "undefined" || fileName == ".jpg")
  1809 + fileName = "Untitled.jpg"
  1810 + var dataURL = canvas.toDataURL("image/jpeg");
  1811 + var blob = dataURItoBlob(dataURL);
  1812 + saveAs(blob, fileName);
  1813 + $("#filename").val("");
1756 1814 }
  1815 + });
  1816 + $(".export-image").css("display", "none");
  1817 + });
  1818 + });
  1819 + function dataURItoBlob(dataURI) {
  1820 + var byteString = atob(dataURI.split(',')[1]);
  1821 + var ab = new ArrayBuffer(byteString.length);
  1822 + var ia = new Uint8Array(ab);
  1823 + for (var i = 0; i < byteString.length; i++) {
  1824 + ia[i] = byteString.charCodeAt(i);
  1825 + }
  1826 + return new Blob([ab], { type: 'image/jpeg' });
  1827 + }
  1828 + </script>
  1829 + <script>
  1830 + function ResizeImage(sizePercent) {
  1831 + var autoWidth = 427;
  1832 + var autoHeight = 547;
  1833 + var dvAutoSpnFontSize = 12;
  1834 + var imgLogoW = 77;
  1835 + var fullWidth = 620; //$('#canvasDiv').width();
  1836 + var fullHeight = 876; //$('#canvasDiv').height();
  1837 +
  1838 + if (sizePercent == 0) {
  1839 + $('#printBoxPor').width(autoWidth).height(autoHeight);//.height(dvPrintBoxPorH * sizePercent);
  1840 + $('#printBoxLan').width(autoHeight).height(autoWidth);
  1841 + $('#dvPortrait').width(autoWidth);
  1842 + $('#dvLandscape').width(autoHeight);
  1843 + $('.span-font').attr('style', 'font-size: ' + (dvAutoSpnFontSize * .65).toFixed() + 'px');
  1844 + $(".logo-image").attr('width', imgLogoW * .65);
  1845 + }
  1846 +
  1847 + else if (sizePercent == 1) {
  1848 + $('#dvPortrait').width(fullWidth * sizePercent);
  1849 + $('#dvLandscape').width(fullHeight * sizePercent);
  1850 + $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent);
  1851 + $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent);
  1852 + $('.span-font').attr('style', 'font-size: ' + dvAutoSpnFontSize + 'px');
  1853 + $(".logo-image").attr('width', imgLogoW);
  1854 + }
  1855 +
  1856 + else {
  1857 + $('#dvPortrait').width(fullWidth * sizePercent);
  1858 + $('#dvLandscape').width(fullHeight * sizePercent);
  1859 + $('.span-font').attr('style', 'font-size: ' + (dvAutoSpnFontSize * sizePercent).toFixed() + 'px !important');
  1860 + $(".logo-image").attr('width', (imgLogoW * sizePercent).toFixed());
  1861 + if (sizePercent > 1) {
  1862 + $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent);
  1863 + $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent);
1757 1864 }
1758   - </script>
  1865 + else {
  1866 + $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent);
  1867 + $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent);
  1868 + }
  1869 + }
  1870 + }
  1871 + </script>
1759 1872 </body>
1760 1873 </html>
1761 1874 \ No newline at end of file
... ...