Commit d0cc41a6705fe12324f39a833f85d93cb21e533e
1 parent
ad052ea0
Added site url code. Not complted.
Showing
16 changed files
with
2871 additions
and
4 deletions
400-SOURCECODE/AIAHTML5.API/AIAHTML5.API.csproj
... | ... | @@ -120,6 +120,7 @@ |
120 | 120 | <Compile Include="Constants\ErrorHelper.cs" /> |
121 | 121 | <Compile Include="Controllers\AdminAccessController.cs" /> |
122 | 122 | <Compile Include="Controllers\AuthenticateController.cs" /> |
123 | + <Compile Include="Controllers\ClientController.cs" /> | |
123 | 124 | <Compile Include="Controllers\ConfigurationController.cs" /> |
124 | 125 | <Compile Include="Controllers\ForgotUserController.cs" /> |
125 | 126 | <Compile Include="Controllers\LabExerciseController.cs" /> |
... | ... | @@ -131,6 +132,7 @@ |
131 | 132 | <DependentUpon>Global.asax</DependentUpon> |
132 | 133 | </Compile> |
133 | 134 | <Compile Include="Models\DBModel.cs" /> |
135 | + <Compile Include="Models\IPValidator.cs" /> | |
134 | 136 | <Compile Include="Models\LabExercise.cs" /> |
135 | 137 | <Compile Include="Models\PixelLocator.cs" /> |
136 | 138 | <Compile Include="Models\User.cs" /> |
... | ... | @@ -146,7 +148,9 @@ |
146 | 148 | </ItemGroup> |
147 | 149 | <ItemGroup> |
148 | 150 | <Content Include="Logs\AIALogs.log" /> |
149 | - <Content Include="packages.config" /> | |
151 | + <Content Include="packages.config"> | |
152 | + <SubType>Designer</SubType> | |
153 | + </Content> | |
150 | 154 | <None Include="Properties\Settings.settings"> |
151 | 155 | <Generator>SettingsSingleFileGenerator</Generator> |
152 | 156 | <LastGenOutput>Settings.Designer.cs</LastGenOutput> | ... | ... |
400-SOURCECODE/AIAHTML5.API/Constants/AIAConstants.cs
... | ... | @@ -44,5 +44,42 @@ namespace AIAHTML5.API.Constants |
44 | 44 | public const string LAB_EXERCISE_SAVE_SUCCESS = "Your lab exercise attempt is saved."; |
45 | 45 | public const string LAB_EXERCISE_SAVE_FAILURE = "We are unable to save your lab exercise attempt, please try again."; |
46 | 46 | public const string SAVED_LAB_EXERCISE_NOT_FOUND = "Saved Lab Exercise not found."; |
47 | + public const string VALIDATED_CLIENT = "Valid Client."; | |
48 | + public const string INVALID_CLIENT = "InValid Client."; | |
49 | + | |
50 | + public const string STATUS_OK = "ok"; | |
51 | + public const string STATUS_NOT_OK = "notok"; | |
52 | + public const int NO_ERROR = 0; | |
53 | + public const int RUN_TIME_EXCEPTION = 10000; | |
54 | + | |
55 | + public const String SITE_IP = "siteIP"; | |
56 | + public const String SITE_ID = "siteId"; | |
57 | + public const String TERM_CONDITION = "termCondition"; | |
58 | + public const String MODESTY_SETTING = "modestySetting"; | |
59 | + | |
60 | + public const Byte SUPER_ADMIN = 1; | |
61 | + public const Byte GENERAL_ADMIN = 2; | |
62 | + public const String USER_NAME = "username"; | |
63 | + public const String PASSWORD = "password"; | |
64 | + public const String ERROR_ID = "errorId"; | |
65 | + public const String LICENSE_ACTIVE = "licenceActive"; | |
66 | + public const String ACCOUNT_NUMBER = "accountNumber"; | |
67 | + public const String LICENSE_TYPE_ID = "licenceTypeId"; | |
68 | + public const String TOTAL_LOGIN = "totalLogin"; | |
69 | + public const String EDITION_ID = "editionId"; | |
70 | + public const String URL_REFERER = "urlReferer"; | |
71 | + public const String USER_CONTEXT = "usercontext"; | |
72 | + | |
73 | + public const Byte CONCURRENT_USER = 6; | |
74 | + public const Byte SINGLE_USER = 5; | |
75 | + public const Byte SITE_USER = 9; | |
76 | + | |
77 | + public const String LICENSE_ID = "licenseId"; | |
78 | + public const Byte LICENSE_TYPE_CONCURRENT = 1; | |
79 | + public const Byte LICENSE_TYPE_SINGLE = 2; | |
80 | + public const Byte LICENSE_TYPE_SITE = 3; | |
81 | + public const Byte LICENSE_TYPE_RESELLER = 4; | |
82 | + public const Byte LICENSE_TYPE_TEST = 5; | |
83 | + | |
47 | 84 | } |
48 | 85 | } |
49 | 86 | \ No newline at end of file | ... | ... |
400-SOURCECODE/AIAHTML5.API/Constants/DBConstants.cs
... | ... | @@ -29,6 +29,10 @@ namespace AIAHTML5.API.Constants |
29 | 29 | public const string GET_BLOCKED_USERS_BY_USER_TYPE = "GetBlockedUserByUserType"; |
30 | 30 | public const string SAVE_LAB_EXERCISE_ATTEMPT = "usp_SaveLabExerciseAttempts"; |
31 | 31 | public const string GET_LAB_EXERCISE = "GetLabExcerciseByUserId"; |
32 | + public const string GET_LICENSEINFO_BY_SITE_URL = "GetLicenseIdBySiteUrl"; | |
33 | + public const string GET_LICENSE_BY_SITE_ID = "GetLicenseBySiteId"; | |
34 | + public const string GET_LICENSE_EDITIONS_FOR_MODESTY = "GetLicenseEditionsForModesty"; | |
35 | + public const string GET_PRODUCT_FEATURES = "GetProductFeatures"; | |
32 | 36 | |
33 | 37 | } |
34 | 38 | } |
35 | 39 | \ No newline at end of file | ... | ... |
400-SOURCECODE/AIAHTML5.API/Controllers/ClientController.cs
0 → 100644
1 | +using AIAHTML5.API.Constants; | |
2 | +using System; | |
3 | +using System.Collections.Generic; | |
4 | +using System.Linq; | |
5 | +using System.Net; | |
6 | +using System.Net.Http; | |
7 | +using System.Web.Http; | |
8 | +using AIAHTML5.API.Models; | |
9 | +using Newtonsoft.Json.Linq; | |
10 | + | |
11 | +namespace AIAHTML5.API.Controllers | |
12 | +{ | |
13 | + public class ClientController : ApiController | |
14 | + { | |
15 | + // GET api/client | |
16 | + public IEnumerable<string> Get() | |
17 | + { | |
18 | + return new string[] { "value1", "value2" }; | |
19 | + } | |
20 | + | |
21 | + // GET api/client/5 | |
22 | + public string Get(int id) | |
23 | + { | |
24 | + return "value"; | |
25 | + } | |
26 | + | |
27 | + // POST api/client | |
28 | + public HttpResponseMessage Post([FromBody]JObject siteUrl) | |
29 | + { | |
30 | + HttpResponseMessage response = null; | |
31 | + | |
32 | + int siteId = AIAHTML5.API.Models.Users.ValidateLicenseSiteIP(siteUrl["siteIP"].ToString(), siteUrl["remoteIPAddress"].ToString(), siteUrl["accountNumber"].ToString(), Convert.ToByte(siteUrl["edition"].ToString())); | |
33 | + int x = AIAHTML5.API.Models.Users.ValidateSiteLogin(siteUrl["siteIP"].ToString(),siteUrl["accountNumber"].ToString(),siteUrl["urlReferer"].ToString(),siteUrl["edition"].ToString(),siteId) | |
34 | + response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(AIAConstants.VALIDATED_CLIENT) }; | |
35 | + | |
36 | + return response; | |
37 | + } | |
38 | + | |
39 | + // PUT api/client/5 | |
40 | + public void Put(int id, [FromBody]string value) | |
41 | + { | |
42 | + } | |
43 | + | |
44 | + // DELETE api/client/5 | |
45 | + public void Delete(int id) | |
46 | + { | |
47 | + } | |
48 | + } | |
49 | +} | ... | ... |
400-SOURCECODE/AIAHTML5.API/Models/DBModel.cs
... | ... | @@ -980,5 +980,151 @@ namespace AIAHTML5.API.Models |
980 | 980 | // return 1; |
981 | 981 | |
982 | 982 | //} |
983 | + | |
984 | + internal DataTable GetLicenseInfoBySiteUrl(string licenceAccount, int editionId) | |
985 | + { | |
986 | + logger.Debug(" inside GetLicenseIdBySiteUrl for UserId= " + editionId + ",licenceAccount = " + licenceAccount); | |
987 | + | |
988 | + // SiteUrl siteUrl = null; | |
989 | + DataTable dt = null; | |
990 | + | |
991 | + SqlConnection conn = new SqlConnection(dbConnectionString); | |
992 | + SqlCommand cmd = new SqlCommand(); | |
993 | + cmd.Connection = conn; | |
994 | + cmd.CommandText = DBConstants.GET_LICENSEINFO_BY_SITE_URL; | |
995 | + cmd.CommandType = CommandType.StoredProcedure; | |
996 | + cmd.Parameters.AddWithValue("@sLicenseAccount", licenceAccount); | |
997 | + cmd.Parameters.AddWithValue("@iEditionId", editionId); | |
998 | + SqlDataAdapter da = new SqlDataAdapter(); | |
999 | + da.SelectCommand = cmd; | |
1000 | + dt = new DataTable(); | |
1001 | + da.Fill(dt); | |
1002 | + | |
1003 | + //if (dt != null && dt.Rows.Count > 0) | |
1004 | + //{ | |
1005 | + // siteUrl = new SiteUrl(); | |
1006 | + // foreach (DataRow dr in dt.Rows) | |
1007 | + // { | |
1008 | + // siteUrl.Id = Convert.ToInt32(dr["Id"]); | |
1009 | + // siteUrl.SiteIp = dr["SiteIp"].ToString(); | |
1010 | + // siteUrl.SiteIpTo = dr["SiteIpTo"].ToString(); | |
1011 | + // siteUrl.SiteMasterIpTo = dr["SiteMasterIpTo"].ToString(); | |
1012 | + // siteUrl.IsMaster = Convert.ToInt32(dr["IsMaster"]); | |
1013 | + | |
1014 | + // } | |
1015 | + //} | |
1016 | + | |
1017 | + //return siteUrl; | |
1018 | + return dt; | |
1019 | + } | |
1020 | + | |
1021 | + internal DataTable GetLicenseBySiteId(int siteId) | |
1022 | + { | |
1023 | + logger.Debug(" inside GetLicenseBySiteId for siteId= " + siteId); | |
1024 | + | |
1025 | + // SiteUrl siteUrl = null; | |
1026 | + DataTable dt = null; | |
1027 | + | |
1028 | + SqlConnection conn = new SqlConnection(dbConnectionString); | |
1029 | + SqlCommand cmd = new SqlCommand(); | |
1030 | + cmd.Connection = conn; | |
1031 | + cmd.CommandText = DBConstants.GET_LICENSE_BY_SITE_ID; | |
1032 | + cmd.CommandType = CommandType.StoredProcedure; | |
1033 | + cmd.Parameters.AddWithValue("@sSiteId", siteId); | |
1034 | + | |
1035 | + SqlDataAdapter da = new SqlDataAdapter(); | |
1036 | + da.SelectCommand = cmd; | |
1037 | + dt = new DataTable(); | |
1038 | + da.Fill(dt); | |
1039 | + | |
1040 | + //if (dt != null && dt.Rows.Count > 0) | |
1041 | + //{ | |
1042 | + // siteUrl = new SiteUrl(); | |
1043 | + // foreach (DataRow dr in dt.Rows) | |
1044 | + // { | |
1045 | + // siteUrl.Id = Convert.ToInt32(dr["Id"]); | |
1046 | + // siteUrl.SiteIp = dr["SiteIp"].ToString(); | |
1047 | + // siteUrl.SiteIpTo = dr["SiteIpTo"].ToString(); | |
1048 | + // siteUrl.SiteMasterIpTo = dr["SiteMasterIpTo"].ToString(); | |
1049 | + // siteUrl.IsMaster = Convert.ToInt32(dr["IsMaster"]); | |
1050 | + | |
1051 | + // } | |
1052 | + //} | |
1053 | + | |
1054 | + //return siteUrl; | |
1055 | + return dt; | |
1056 | + | |
1057 | + } | |
1058 | + internal DataTable GetEditionsForModesty(int licenceId, int buildingLevelAcc) | |
1059 | + { | |
1060 | + logger.Debug(" inside GetEditionsForModesty for licenceId= " + licenceId); | |
1061 | + | |
1062 | + // SiteUrl siteUrl = null; | |
1063 | + DataTable dt = null; | |
1064 | + | |
1065 | + SqlConnection conn = new SqlConnection(dbConnectionString); | |
1066 | + SqlCommand cmd = new SqlCommand(); | |
1067 | + cmd.Connection = conn; | |
1068 | + cmd.CommandText = DBConstants.GET_LICENSE_EDITIONS_FOR_MODESTY; | |
1069 | + cmd.CommandType = CommandType.StoredProcedure; | |
1070 | + cmd.Parameters.AddWithValue("@iLicenseId", licenceId); | |
1071 | + cmd.Parameters.AddWithValue("@iBuildingLevelId", buildingLevelAcc); | |
1072 | + | |
1073 | + SqlDataAdapter da = new SqlDataAdapter(); | |
1074 | + da.SelectCommand = cmd; | |
1075 | + dt = new DataTable(); | |
1076 | + da.Fill(dt); | |
1077 | + | |
1078 | + //if (dt != null && dt.Rows.Count > 0) | |
1079 | + //{ | |
1080 | + // siteUrl = new SiteUrl(); | |
1081 | + // foreach (DataRow dr in dt.Rows) | |
1082 | + // { | |
1083 | + // siteUrl.Id = Convert.ToInt32(dr["Id"]); | |
1084 | + // siteUrl.SiteIp = dr["SiteIp"].ToString(); | |
1085 | + // siteUrl.SiteIpTo = dr["SiteIpTo"].ToString(); | |
1086 | + // siteUrl.SiteMasterIpTo = dr["SiteMasterIpTo"].ToString(); | |
1087 | + // siteUrl.IsMaster = Convert.ToInt32(dr["IsMaster"]); | |
1088 | + | |
1089 | + // } | |
1090 | + //} | |
1091 | + | |
1092 | + //return siteUrl; | |
1093 | + return dt; | |
1094 | + } | |
1095 | + | |
1096 | + internal Hashtable GetEditionFeatures(byte editionId) | |
1097 | + { | |
1098 | + Hashtable objFeatures = new Hashtable(); | |
1099 | + | |
1100 | + DataTable dt = null; | |
1101 | + | |
1102 | + SqlConnection conn = new SqlConnection(dbConnectionString); | |
1103 | + SqlCommand cmd = new SqlCommand(); | |
1104 | + cmd.Connection = conn; | |
1105 | + cmd.CommandText = DBConstants.GET_PRODUCT_FEATURES; | |
1106 | + cmd.CommandType = CommandType.StoredProcedure; | |
1107 | + cmd.Parameters.AddWithValue("@EditionId", editionId); | |
1108 | + | |
1109 | + SqlDataAdapter da = new SqlDataAdapter(); | |
1110 | + da.SelectCommand = cmd; | |
1111 | + dt = new DataTable(); | |
1112 | + da.Fill(dt); | |
1113 | + | |
1114 | + if (dt != null && dt.Rows.Count > 0) | |
1115 | + { | |
1116 | + foreach (DataRow dr in dt.Rows) | |
1117 | + { | |
1118 | + if ((bool)dr["IsActive"]) | |
1119 | + { | |
1120 | + objFeatures.Add(dr["Id"], dr["Title"]); | |
1121 | + } | |
1122 | + | |
1123 | + | |
1124 | + } | |
1125 | + } | |
1126 | + | |
1127 | + return objFeatures; | |
1128 | + } | |
983 | 1129 | } |
984 | 1130 | } |
985 | 1131 | \ No newline at end of file | ... | ... |
400-SOURCECODE/AIAHTML5.API/Models/IPValidator.cs
0 → 100644
1 | +using System; | |
2 | +using System.Collections.Generic; | |
3 | +using System.Linq; | |
4 | +using System.Web; | |
5 | + | |
6 | +namespace AIAHTML5.API.Models | |
7 | +{ | |
8 | + public class IPValidator | |
9 | + { | |
10 | + public static Double ChangeIpToDouble(String ipVal) | |
11 | + { | |
12 | + String[] resultArray = new String[20]; | |
13 | + //Array resultArray ; | |
14 | + String n = ipVal; | |
15 | + String[] array = n.Split('.'); | |
16 | + for (int i = 0; i < array.Length; i++) | |
17 | + { | |
18 | + if (array[i].Length == 1) | |
19 | + { | |
20 | + array[i] = "00" + array[i]; | |
21 | + resultArray[i] = (array[i]); | |
22 | + } | |
23 | + else if (array[i].Length == 2) | |
24 | + { | |
25 | + array[i] = "0" + array[i]; | |
26 | + resultArray[i] = (array[i]); | |
27 | + } | |
28 | + else | |
29 | + { | |
30 | + array[i] = array[i]; | |
31 | + resultArray[i] = (array[i]); | |
32 | + } | |
33 | + } | |
34 | + | |
35 | + //String theContent = resultArray.ToString(); | |
36 | + String theContent = ""; | |
37 | + | |
38 | + for (int i = 0; i <= resultArray.Length - 1; i++) | |
39 | + { | |
40 | + if (!String.IsNullOrEmpty(resultArray[i])) | |
41 | + theContent += resultArray[i]; | |
42 | + } | |
43 | + theContent = (theContent == "" ? "0" : theContent); | |
44 | + | |
45 | + return Convert.ToDouble(theContent); | |
46 | + //return theContent; | |
47 | + } | |
48 | + | |
49 | + | |
50 | + public static bool ValidateIP(String strSiteIp, String strSiteIPTo, String strSiteMasterIPTo, String strIPToValidate, int intIsMaster) | |
51 | + { | |
52 | + Double dblSiteIP = 0; | |
53 | + Double dblSiteIPTo = 0; | |
54 | + Double dblSiteMIPTo = 0; | |
55 | + Double dblIPToValidate = 0; | |
56 | + bool boolReturn = false; | |
57 | + | |
58 | + try | |
59 | + { | |
60 | + // Convert all IP to double values | |
61 | + dblSiteIP = ChangeIpToDouble(((strSiteIp == "" || IsNumericIP(strSiteIp) == false) ? "0" : strSiteIp)); | |
62 | + dblSiteIPTo = ChangeIpToDouble(((strSiteIPTo == "" || IsNumericIP(strSiteIPTo) == false) ? "0" : strSiteIPTo)); | |
63 | + dblSiteMIPTo = ChangeIpToDouble(((strSiteMasterIPTo == "" || IsNumericIP(strSiteMasterIPTo) == false) ? "0" : strSiteMasterIPTo)); | |
64 | + dblIPToValidate = ChangeIpToDouble(((strIPToValidate == "" || IsNumericIP(strIPToValidate) == false) ? "0" : strIPToValidate)); | |
65 | + | |
66 | + if (intIsMaster > 0) | |
67 | + { | |
68 | + if (dblSiteIP == dblIPToValidate) | |
69 | + boolReturn = true; | |
70 | + | |
71 | + if (dblSiteIPTo > 0 && dblSiteMIPTo > 0) | |
72 | + { | |
73 | + if (isBetween(dblIPToValidate, dblSiteIPTo, dblSiteMIPTo) == true) | |
74 | + { | |
75 | + boolReturn = true; | |
76 | + } | |
77 | + } | |
78 | + else if (dblSiteIPTo > 0) | |
79 | + { | |
80 | + if (dblSiteIPTo == dblIPToValidate) | |
81 | + boolReturn = true; | |
82 | + } | |
83 | + else if (dblSiteMIPTo > 0) | |
84 | + { | |
85 | + if (dblSiteMIPTo == dblIPToValidate) | |
86 | + boolReturn = true; | |
87 | + } | |
88 | + } | |
89 | + else | |
90 | + { | |
91 | + if (dblSiteIP > 0 && dblSiteIPTo > 0) | |
92 | + { | |
93 | + if (isBetween(dblIPToValidate, dblSiteIP, dblSiteIPTo) == true) | |
94 | + { | |
95 | + boolReturn = true; | |
96 | + } | |
97 | + } | |
98 | + else if (dblSiteIP > 0) | |
99 | + { | |
100 | + if (dblSiteIP == dblIPToValidate) | |
101 | + boolReturn = true; | |
102 | + } | |
103 | + else if (dblSiteIPTo > 0) | |
104 | + { | |
105 | + if (dblSiteIPTo == dblIPToValidate) | |
106 | + boolReturn = true; | |
107 | + } | |
108 | + } | |
109 | + | |
110 | + return boolReturn; | |
111 | + } | |
112 | + catch (Exception objExp) | |
113 | + { | |
114 | + return false; | |
115 | + } | |
116 | + } | |
117 | + | |
118 | + public static String FormatURLToIP(String strURL) | |
119 | + { | |
120 | + strURL = strURL.Replace("www.", ""); | |
121 | + strURL = strURL.Replace("http://", ""); | |
122 | + strURL = strURL.Replace("https://", ""); | |
123 | + strURL = strURL.Replace("/", ""); | |
124 | + | |
125 | + if (strURL.IndexOf(":") != -1) | |
126 | + { | |
127 | + char[] delimiters = new char[] { ':' }; | |
128 | + string[] parts = strURL.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); | |
129 | + strURL = parts[0]; | |
130 | + } | |
131 | + | |
132 | + return strURL; | |
133 | + } | |
134 | + | |
135 | + /// <summary> | |
136 | + /// | |
137 | + /// </summary> | |
138 | + /// <param name="iNum"></param> | |
139 | + /// <param name="iFrom"></param> | |
140 | + /// <param name="iTo"></param> | |
141 | + /// <returns></returns> | |
142 | + private static bool isBetween(Double iNum, Double iFrom, Double iTo) | |
143 | + { | |
144 | + if (iNum == 0) | |
145 | + return false; | |
146 | + | |
147 | + if (iNum >= iFrom && iNum <= iTo) | |
148 | + { | |
149 | + return true; | |
150 | + } | |
151 | + return false; | |
152 | + } | |
153 | + | |
154 | + /// <summary> | |
155 | + /// | |
156 | + /// </summary> | |
157 | + /// <param name="text"></param> | |
158 | + /// <returns></returns> | |
159 | + public static bool IsNumericIP(string text) | |
160 | + { | |
161 | + //Regex objRegex = new Regex(@"^[-+]?[0-9]*\.?[0-9]+$"); | |
162 | + Regex objRegex = new Regex(@"^[-+]?[0-9]*\.?[0-9]+$*\.?[0-9]+$*\.?[0-9]+$*\.?[0-9]+$"); | |
163 | + | |
164 | + return objRegex.IsMatch(text); | |
165 | + } | |
166 | + } | |
167 | +} | |
0 | 168 | \ No newline at end of file | ... | ... |
400-SOURCECODE/AIAHTML5.API/Models/User.cs
... | ... | @@ -14,6 +14,11 @@ namespace AIAHTML5.API.Models |
14 | 14 | public string EmailId { get; set; } |
15 | 15 | public string LoginId { get; set; } |
16 | 16 | public string Password { get; set; } |
17 | + public string AccountNumber { get; set; } | |
18 | + public byte LicenseTypeId { get; set; } | |
19 | + public bool Modesty { get; set; } | |
20 | + public bool ModestyMode { get; set; } | |
21 | + public Hashtable objEditionFeatures { get;set} | |
17 | 22 | public int? SecurityQuestionId { get; set; } |
18 | 23 | public string SecurityAnswer { get; set; } |
19 | 24 | public int? CreatorId { get; set; } |
... | ... | @@ -49,6 +54,8 @@ namespace AIAHTML5.API.Models |
49 | 54 | public const string RESELLER = "Reseller"; |
50 | 55 | public const string TEST_ACCOUNT = "Test Account"; |
51 | 56 | public const string SITE_USER = "Site User"; |
57 | + | |
58 | + | |
52 | 59 | } |
53 | 60 | |
54 | 61 | public enum UserType |
... | ... | @@ -113,4 +120,18 @@ namespace AIAHTML5.API.Models |
113 | 120 | public string AccountNumber { get; set; } |
114 | 121 | public DateTime LoginTime { get; set; } |
115 | 122 | } |
123 | + | |
124 | + public class SiteUrl | |
125 | + { | |
126 | + public int Id { get; set; } | |
127 | + public string SiteIp { get; set; } | |
128 | + public string SiteIpTo { get; set; } | |
129 | + public string SiteMasterIpTo { get; set; } | |
130 | + public int IsMaster { get; set; } | |
131 | + | |
132 | + | |
133 | + | |
134 | + | |
135 | + } | |
136 | + | |
116 | 137 | } |
117 | 138 | \ No newline at end of file | ... | ... |
400-SOURCECODE/AIAHTML5.API/Models/Users.cs
... | ... | @@ -11,7 +11,9 @@ using AIAHTML5.API.Models; |
11 | 11 | using Newtonsoft.Json; |
12 | 12 | using System.Collections; |
13 | 13 | using System.Data.SqlClient; |
14 | - | |
14 | +using System.Net; | |
15 | +using System.Data; | |
16 | +using AIAHTML5.API.Constants; | |
15 | 17 | namespace AIAHTML5.API.Models |
16 | 18 | { |
17 | 19 | public class Users |
... | ... | @@ -354,5 +356,226 @@ namespace AIAHTML5.API.Models |
354 | 356 | |
355 | 357 | return isUserBlocked; |
356 | 358 | } |
359 | + | |
360 | + | |
361 | + | |
362 | + public static int ValidateLicenseSiteIP(string strLicenseSiteIP, string remoteIpAddress, string strAccountNumber, byte editionId) | |
363 | + { | |
364 | + if (strLicenseSiteIP == null) | |
365 | + strLicenseSiteIP = remoteIpAddress; | |
366 | + | |
367 | + int intReturn = 0; | |
368 | + DBModel objDBModel = new DBModel(); | |
369 | + DataTable dtLicense = objDBModel.GetLicenseInfoBySiteUrl(strAccountNumber, (byte)editionId); | |
370 | + | |
371 | + if (dtLicense.Rows.Count > 0) | |
372 | + { | |
373 | + //strLicenseSiteIP | |
374 | + String strSiteIP = ""; | |
375 | + String strSiteIPTo = ""; | |
376 | + String strSiteMIPTo = ""; | |
377 | + | |
378 | + IPAddress[] arrHostIP = new IPAddress[2]; | |
379 | + try | |
380 | + { | |
381 | + arrHostIP.SetValue(IPAddress.Parse(remoteIpAddress), 0); | |
382 | + arrHostIP.SetValue(IPAddress.Parse(strLicenseSiteIP), 1); | |
383 | + } | |
384 | + catch (Exception e) | |
385 | + { | |
386 | + //NOTE: if no domain name found we try to resolve by IP. | |
387 | + //arrHostIP.SetValue(Dns.GetHostAddresses(strLicenseSiteIP),1); //I SHould remove this feature it is useless | |
388 | + }; | |
389 | + | |
390 | + // foreach (IPAddress address in arrHostIP) | |
391 | + foreach (IPAddress address in arrHostIP) | |
392 | + { | |
393 | + if (address == null) | |
394 | + continue; | |
395 | + String ipStr = address.ToString(); | |
396 | + if (ipStr == "::1" || ipStr == "") continue; | |
397 | + foreach (DataRow objLicenseRow in dtLicense.Rows) | |
398 | + { | |
399 | + strSiteIP = (String.IsNullOrEmpty(objLicenseRow["SiteIp"].ToString()) ? "" : objLicenseRow["SiteIp"].ToString()); | |
400 | + strSiteIPTo = (String.IsNullOrEmpty(objLicenseRow["SiteIPTo"].ToString()) ? "" : objLicenseRow["SiteIPTo"].ToString()); | |
401 | + //if (String.IsNullOrEmpty(objLicenseRow.SiteIPTo) == false) | |
402 | + //strSiteIPTo = objLicenseRow.SiteIPTo; | |
403 | + strSiteMIPTo = (String.IsNullOrEmpty(objLicenseRow["SiteMasterIPTo"].ToString()) ? "" : objLicenseRow["SiteMasterIPTo"].ToString()); | |
404 | + if (IPValidator.ValidateIP(strSiteIP.ToLower(), strSiteIPTo.ToLower(), strSiteMIPTo.ToLower(), ipStr.ToLower(), Convert.ToInt16(objLicenseRow["IsMaster"])) == true) | |
405 | + { | |
406 | + intReturn = Convert.ToInt32(objLicenseRow["Id"]); | |
407 | + return intReturn; | |
408 | + } | |
409 | + } | |
410 | + } | |
411 | + | |
412 | + if (IPValidator.IsNumericIP(strLicenseSiteIP) == false) | |
413 | + { | |
414 | + foreach (DataRow objLicenseRow in dtLicense.Rows) | |
415 | + { | |
416 | + strSiteIP = (String.IsNullOrEmpty(objLicenseRow["SiteIp"].ToString()) ? "" : objLicenseRow["SiteIp"].ToString()); | |
417 | + // strSiteIPTo = (String.IsNullOrEmpty(objLicenseRow.SiteIPTo) ? "" : objLicenseRow.SiteIPTo); | |
418 | + if (String.IsNullOrEmpty(objLicenseRow["SiteIPTo"].ToString()) == false) | |
419 | + strSiteIPTo = objLicenseRow["SiteIPTo"].ToString(); | |
420 | + strSiteMIPTo = (String.IsNullOrEmpty(objLicenseRow["SiteMasterIPTo"].ToString()) ? "" : objLicenseRow["SiteMasterIPTo"].ToString()); | |
421 | + // if provided ip is not numeric, then compare directly with all the fields | |
422 | + if ((strLicenseSiteIP.ToLower() == strSiteIP.ToLower()) || | |
423 | + (strLicenseSiteIP.ToLower() == IPValidator.FormatURLToIP(strSiteIP).ToLower()) || | |
424 | + (strLicenseSiteIP.ToLower() == strSiteIPTo.ToLower()) || | |
425 | + (strLicenseSiteIP.ToLower() == IPValidator.FormatURLToIP(strSiteIPTo).ToLower()) || | |
426 | + (strLicenseSiteIP.ToLower() == strSiteMIPTo.ToLower()) || | |
427 | + (strLicenseSiteIP.ToLower() == IPValidator.FormatURLToIP(strSiteMIPTo).ToLower())) | |
428 | + { | |
429 | + intReturn = Convert.ToInt32(objLicenseRow["Id"]); | |
430 | + return intReturn; | |
431 | + } | |
432 | + } | |
433 | + } | |
434 | + } | |
435 | + return intReturn; | |
436 | + } | |
437 | + | |
438 | + public static int ValidateSiteLogin( String strSiteIP, String strAcccountNumber,String strUrlReferer,string strEdition,int intSiteId ) { | |
439 | + Int32 intUserId = 0; | |
440 | + bool isExpired ; | |
441 | + try { | |
442 | + Int16 intErrorID = ErrorHelper.E_NO_ERROR; | |
443 | + String strStatus = AIAConstants.STATUS_OK; | |
444 | + | |
445 | + int intLicenseId = 0; | |
446 | + int intEditionId = Convert.ToInt16(strEdition); | |
447 | + | |
448 | + DateTime dtLogDate = DateTime.Now; | |
449 | + //strSiteIP = (String)objRequest.GetData(AIAConstants.SITE_IP); | |
450 | + //strAcccountNumber = (String)objRequest.GetData(AIAConstants.ACCOUNT_NUMBER); | |
451 | + //intEditionId = Convert.ToInt16(objRequest.GetData(AIAConstants.EDITION_ID)); | |
452 | + //strUrlReferer = (String)objRequest.GetData(AIAConstants.URL_REFERER); | |
453 | + //strEdition = (String)objRequest.GetData(AIAConstants.EDITION_ID); | |
454 | + //intSiteId = (Int32)objRequest.GetData(AIAConstants.SITE_ID); | |
455 | + //AdminDAL.AdminDal.GetLicenseBySiteIdDataTable dtLicense = new ADAM.AIA50.AdminDAL.AdminDal.GetLicenseBySiteIdDataTable(); | |
456 | + if (string.IsNullOrEmpty(strAcccountNumber)) { | |
457 | + //----logAuthenticationTryForAccountNumber(strAcccountNumber, dtLogDate, ErrorHelper.ACCOUNT_NUMBER_NOT_NULL, strSiteIP, strEdition, strUrlReferer); | |
458 | + intErrorID = ErrorHelper.E_ACCOUNT_NUMBER_NOT_NULL; | |
459 | + strStatus = AIAConstants.STATUS_NOT_OK; | |
460 | + } else if (string.IsNullOrEmpty(strEdition)) { | |
461 | + strEdition = "0"; | |
462 | + //----logAuthenticationTryForAccountNumber(strAcccountNumber, dtLogDate, ErrorHelper.EDITION_ID_NOT_NULL, strSiteIP, strEdition, strUrlReferer); | |
463 | + intErrorID = ErrorHelper.E_EDITION_ID_NOT_NULL; | |
464 | + strStatus = AIAConstants.STATUS_NOT_OK; | |
465 | + } | |
466 | + else { | |
467 | + DBModel objDBModel = new DBModel(); | |
468 | + DataTable dtLicense = objDBModel.GetLicenseBySiteId(intSiteId); | |
469 | + if (dtLicense.Rows.Count > 0) { | |
470 | + foreach (DataRow licRow in dtLicense.Rows) | |
471 | + { | |
472 | + | |
473 | + //isExpired = LicenseHelper.IsLicenseExpired(licRow["Id"]); | |
474 | + User userInfo = new User(); | |
475 | + userInfo.LicenseInfo = AIAHTML5.API.Models.Users.getLicenseDetails(Convert.ToInt32(licRow["Id"])); | |
476 | + | |
477 | + if (userInfo.LicenseInfo != null) | |
478 | + { | |
479 | + //05.3 get licenseSubscription details | |
480 | + userInfo.LicenseSubscriptions = AIAHTML5.API.Models.Users.getLicenseSubscriptionDetails(userInfo.LicenseId); | |
481 | + | |
482 | + //05.4 check the License expiration irespective of either user is active or not because on AIA | |
483 | + //we shows the License expiration message for inactive users too | |
484 | + | |
485 | + | |
486 | + if (userInfo.LicenseSubscriptions != null) | |
487 | + { | |
488 | + DateTime? subscriptionValidThrough = userInfo.LicenseSubscriptions.SubscriptionValidThrough; | |
489 | + if (subscriptionValidThrough != null && subscriptionValidThrough.Value.Date >= DateTime.Now.Date) | |
490 | + { | |
491 | + isExpired = false; | |
492 | + } | |
493 | + else | |
494 | + { | |
495 | + isExpired = true; | |
496 | + } | |
497 | + } | |
498 | + | |
499 | + | |
500 | + | |
501 | + if (!isExpired && Convert.ToBoolean(licRow["IsActive"]) == true) { | |
502 | + User objUserContext = new User(); | |
503 | + objUserContext.Id = 0; | |
504 | + objUserContext.FirstName = licRow["LicenseeFirstName"].ToString(); | |
505 | + objUserContext.LastName = licRow["LicenseeLastName"].ToString(); | |
506 | + objUserContext.UserTypeId = AIAConstants.SITE_USER; | |
507 | + if (licRow["EmailId"].ToString()!= null) | |
508 | + { | |
509 | + objUserContext.EmailId = licRow["EmailId"].ToString(); | |
510 | + } else { | |
511 | + objUserContext.EmailId = null; | |
512 | + } | |
513 | + objUserContext.AccountNumber = strAcccountNumber; | |
514 | + objUserContext.EditionId = (Byte)intEditionId; | |
515 | + objUserContext.LicenseTypeId = (byte)licRow["LicenseTypeId"]; | |
516 | + objUserContext.LicenseId = Convert.ToInt32(licRow["Id"]); | |
517 | + objUserContext.LoginId = ""; | |
518 | + objUserContext.Modesty =(bool)licRow["IsModesty"]; | |
519 | + //Retreive ModestyMode | |
520 | + objUserContext.ModestyMode = false; | |
521 | + | |
522 | + intLicenseId = Convert.ToInt32(licRow["Id"]); | |
523 | + | |
524 | + | |
525 | + DataTable dtblEditionForModesty = new DBModel().GetEditionsForModesty(objUserContext.LicenseId, 0); | |
526 | + //This table result set should return always have 0 or 1 record if modesty mode is present. | |
527 | + foreach (DataRow drEditionForModesty in dtblEditionForModesty.Rows) { | |
528 | + if ((bool)drEditionForModesty["IsModesty"]) { | |
529 | + objUserContext.Modesty = true; | |
530 | + objUserContext.ModestyMode = true; | |
531 | + } | |
532 | + } | |
533 | + | |
534 | + // get edition features details | |
535 | + objUserContext.objEditionFeatures = objDBModel.GetEditionFeatures((Byte)intEditionId); | |
536 | + | |
537 | + | |
538 | + | |
539 | + if (intLicenseId > 0) | |
540 | + objUserContext.Modules = getModuleListByLicenseId(intLicenseId); | |
541 | + else | |
542 | + objUserContext.Modules = getAllModulesList(); | |
543 | + | |
544 | + objResponse.AddData(LoginConst.USER_CONTEXT, objUserContext); | |
545 | + SessionManager.GetInstance().AddSession((int)0, (int)objLicenseRow.Id, (byte)intEditionId); | |
546 | + | |
547 | + | |
548 | + //SessionManager.GetInstance().AddSession(userRow.Id, int.Parse(accountTransactInfo.licenseId), byte.Parse(accountTransactInfo.licenseEditionId)); | |
549 | + //accountTransactInfo.licenseId = Convert.ToInt32(objLicEdition[LoginConst.LICENSE_ID]).ToString(); | |
550 | + Hashtable arrModuleList = LicenseHelper.GetInstance().GetAllModuleByLicenseId(objLicenseRow.Id); | |
551 | + if (arrModuleList[9].Equals(true)) { | |
552 | + SessionManager.GetInstance().AddModSession("ModuleNameIP10", "IP10"); | |
553 | + } | |
554 | + | |
555 | + logAuthenticationTryForAccountNumber(strAcccountNumber, dtLogDate, 0, strSiteIP, strEdition, strUrlReferer); | |
556 | + } else { | |
557 | + logAuthenticationTryForAccountNumber(strAcccountNumber, dtLogDate, ErrorHelper.LICENSE_INACTIVE, strSiteIP, Convert.ToString(intEditionId), strUrlReferer); | |
558 | + intErrorID = ErrorHelper.E_LICENCE_IS_INACTIVE; | |
559 | + strStatus = GlobalConstant.STATUS_NOT_OK; | |
560 | + } | |
561 | + } else { | |
562 | + //intErrorID = ErrorDescription(strAcccountNumber, (byte)intEditionId, strSiteIP, strUrlReferer); | |
563 | + //strStatus = GlobalConstant.STATUS_NOT_OK; | |
564 | + | |
565 | + intErrorID = ErrorHelper.E_EDITION_NOT_LINKED_WITH_SITE; | |
566 | + strStatus = GlobalConstant.STATUS_NOT_OK; | |
567 | + } | |
568 | + } | |
569 | + objResponse.ErrorCode = intErrorID; | |
570 | + objResponse.Status = strStatus; | |
571 | + objResponse.ErrorDesc = ErrorHelper.GetInstance().GetErrorDescriptionHelper(intErrorID).ToString(); | |
572 | + } catch (Exception objExp) { | |
573 | + objResponse.Status = GlobalConstant.STATUS_NOT_OK; | |
574 | + objResponse.ErrorCode = GlobalConstant.RUN_TIME_EXCEPTION; | |
575 | + objResponse.strErrorDesc = objExp.Message; | |
576 | + } | |
577 | + if (isExpired != null && (bool)isExpired["result"]) | |
578 | + objResponse.strErrorDesc = objResponse.strErrorDesc.Replace("{0}", (string)isExpired["date"]); | |
579 | + return intUserId; | |
357 | 580 | } |
358 | 581 | } |
359 | 582 | \ No newline at end of file | ... | ... |
400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj
... | ... | @@ -45202,7 +45202,8 @@ |
45202 | 45202 | <Content Include="content\scripts\js\custom\main.js" /> |
45203 | 45203 | <Content Include="content\data\json\da\vocab\Swedish\cm_dat_vocabterm_3.json" /> |
45204 | 45204 | <None Include="content\data\json\le\qz_dat_ca.json" /> |
45205 | - <Content Include="index.html" /> | |
45205 | + <Content Include="index.aspx" /> | |
45206 | + <Content Include="index1.html" /> | |
45206 | 45207 | <Content Include="libs\angular-drag-and-drop-lists.js" /> |
45207 | 45208 | <Content Include="libs\angular-ui\css\slider.css" /> |
45208 | 45209 | <Content Include="libs\angular-ui\js\slider.js" /> |
... | ... | @@ -45445,6 +45446,20 @@ |
45445 | 45446 | <HintPath>..\packages\log4net.2.0.7\lib\net45-full\log4net.dll</HintPath> |
45446 | 45447 | <Private>True</Private> |
45447 | 45448 | </Reference> |
45449 | + <Reference Include="System" /> | |
45450 | + <Reference Include="System.Data" /> | |
45451 | + <Reference Include="System.Drawing" /> | |
45452 | + <Reference Include="System.Web" /> | |
45453 | + <Reference Include="System.Xml" /> | |
45454 | + </ItemGroup> | |
45455 | + <ItemGroup> | |
45456 | + <Compile Include="index.aspx.cs"> | |
45457 | + <DependentUpon>index.aspx</DependentUpon> | |
45458 | + <SubType>ASPXCodeBehind</SubType> | |
45459 | + </Compile> | |
45460 | + <Compile Include="index.aspx.designer.cs"> | |
45461 | + <DependentUpon>index.aspx</DependentUpon> | |
45462 | + </Compile> | |
45448 | 45463 | </ItemGroup> |
45449 | 45464 | <PropertyGroup> |
45450 | 45465 | <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> | ... | ... |
400-SOURCECODE/AIAHTML5.Web/Web.config
400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
... | ... | @@ -92,6 +92,15 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
92 | 92 | userLicenseId: 0, |
93 | 93 | licenseeAccountNumber: null |
94 | 94 | }; |
95 | + | |
96 | + $rootScope.siteUrlInfo = { | |
97 | + siteIP: null, | |
98 | + remoteIPAddress:null, | |
99 | + status: null, | |
100 | + accountNumber: null, | |
101 | + edition: null, | |
102 | + urlReferer:null | |
103 | + } | |
95 | 104 | $rootScope.userData; |
96 | 105 | $rootScope.userModules; |
97 | 106 | $rootScope.passwordMismatchMessage; |
... | ... | @@ -123,7 +132,12 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
123 | 132 | |
124 | 133 | |
125 | 134 | $rootScope.initializeAIA = function () { |
126 | - | |
135 | + if (urlParams != null && urlParams != undefined) { | |
136 | + | |
137 | + $scope.ValidateClientSiteUrl(); | |
138 | + } | |
139 | + | |
140 | + | |
127 | 141 | if (navigator.cookieEnabled) { |
128 | 142 | |
129 | 143 | $rootScope.isLoading = false; |
... | ... | @@ -381,6 +395,28 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
381 | 395 | |
382 | 396 | } |
383 | 397 | |
398 | + | |
399 | + $scope.ValidateClientSiteUrl = function () { | |
400 | + urlParams = strIPAddress + "&" + strAccountNumber + "&" + strEdition + "&" + (strSiteReferer != "" && strSiteReferer != null ? strSiteReferer : ""); | |
401 | + | |
402 | + var siteInfo = urlParams.split('&'); | |
403 | + $rootScope.siteUrlInfo.siteIP = siteInfo[0]; | |
404 | + $rootScope.siteUrlInfo.remoteIPAddress = siteInfo[1]; | |
405 | + $rootScope.siteUrlInfo.accountNumber = siteInfo[2]; | |
406 | + $rootScope.siteUrlInfo.edition = siteInfo[3]; | |
407 | + $rootScope.siteUrlInfo.urlReferer = siteInfo[4]; | |
408 | + | |
409 | + AuthenticationService.validateClientSite($rootScope.siteUrlInfo) | |
410 | + .then( | |
411 | + | |
412 | + function (result) { | |
413 | + | |
414 | + }, | |
415 | + function (error) { } | |
416 | + ) | |
417 | + } | |
418 | + | |
419 | + | |
384 | 420 | $scope.saveRemeberMeDetails = function (result, userInfo) { |
385 | 421 | |
386 | 422 | localStorage.setItem('RememberMeLoginId', result.LoginId); | ... | ... |
400-SOURCECODE/AIAHTML5.Web/app/services/AuthenticationService.js
... | ... | @@ -22,6 +22,29 @@ |
22 | 22 | return deferred.promise; |
23 | 23 | }, |
24 | 24 | |
25 | + validateClientSite: function (clientInfo) { | |
26 | + var deferred = $q.defer(); | |
27 | + | |
28 | + $http.post('/API/api/Client', JSON.stringify(clientInfo), { | |
29 | + headers: { | |
30 | + 'Content-Type': 'application/json' | |
31 | + } | |
32 | + }) | |
33 | + .success(function (data, status, headers, config) { | |
34 | + console.log('success') | |
35 | + deferred.resolve(data); | |
36 | + }).error(function (data, status, headers, config) { | |
37 | + console.log('error') | |
38 | + deferred.reject(data); | |
39 | + $rootScope.isVisibleLogin = true; | |
40 | + $rootScope.errorMessage = data; | |
41 | + $("#messageModal").modal('show'); | |
42 | + | |
43 | + }); | |
44 | + return deferred.promise; | |
45 | + }, | |
46 | + | |
47 | + | |
25 | 48 | SendMailToUser: function (userInfo, havePassword) { |
26 | 49 | var deferred = $q.defer(); |
27 | 50 | ... | ... |
400-SOURCECODE/AIAHTML5.Web/index.aspx
0 → 100644
1 | +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="ADAM.AIA.index" %> | |
2 | + | |
3 | +<!DOCTYPE html> | |
4 | +<html lang="en" ng-cloak ng-app="AIA"> | |
5 | +<head> | |
6 | + <!--<base href="/AIAHTML5/" />--> | |
7 | + <!--<base href="/AIA/" />--> | |
8 | + <base href="/" /> | |
9 | + <meta charset="utf-8"> | |
10 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
11 | + <!--<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">--> | |
12 | + <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0 maximum-scale=1.0" /> | |
13 | + <title>A.D.A.M. Interactive Anatomy</title> | |
14 | + | |
15 | + <link href="themes/default/css/bootstrap/3.3.6/bootstrap.css" rel="stylesheet" /> | |
16 | + | |
17 | + | |
18 | + | |
19 | + | |
20 | + <link href="themes/default/css/bootstrap/3.3.6/main.css" rel="stylesheet" /> | |
21 | + | |
22 | + <link href="themes/default/css/bootstrap/3.3.6/secondeffect.css" rel="stylesheet" /> | |
23 | + | |
24 | + <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> | |
25 | + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,800,700,600,400italic"> | |
26 | + | |
27 | + <!--<link rel="styleSheet" href="themes/default/css/uigrid/ui-grid.min.css" />--> | |
28 | + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> | |
29 | + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |
30 | + <!--[if lt IE 9]> | |
31 | + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | |
32 | + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | |
33 | + <![endif]--> | |
34 | + <link href="themes/default/css/bootstrap/3.3.6/jquery.mCustomScrollbar.css" rel="stylesheet" /> | |
35 | + | |
36 | + <link href="themes/default/css/bootstrap/3.3.6/jquery-ui.css" rel="stylesheet" /> | |
37 | + | |
38 | + <link href="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.css" rel="stylesheet" /> | |
39 | + <link href="libs/video_4_12_11/css/video-js_4_12_11.css" rel="stylesheet" /> | |
40 | + <link href="libs/jquery/jquery_plugin/SpeechBubble/css/bubble.css" rel="stylesheet" /> | |
41 | + <link href="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.css" rel="stylesheet" /> | |
42 | + <link href="themes/default/css/bootstrap/3.3.6/jquery.minicolors.css" rel="stylesheet" /> | |
43 | + <link href="content/css/print-main.css" rel="stylesheet" /> | |
44 | + | |
45 | + <!--Annotation Toolbar: Jcanvas--> | |
46 | + <style> | |
47 | + /*.ActiveDefaultColorAnnotation { | |
48 | + background-color: #000000!important; | |
49 | + }*/ | |
50 | + | |
51 | + | |
52 | + #termList option:hover { | |
53 | + background-color: #3399FF !important; | |
54 | + color: #fff !important; | |
55 | + } | |
56 | + | |
57 | + | |
58 | + .ActiveFormattingButtonClass { | |
59 | + background-color: #1B92D0 !important; | |
60 | + } | |
61 | + | |
62 | + .Edittext-btn-css { | |
63 | + background: #4B4B4B; | |
64 | + padding: 4px; | |
65 | + cursor: pointer; | |
66 | + margin-right: 2px; | |
67 | + } | |
68 | + | |
69 | + /*.italic-btn-css { | |
70 | + background: #4B4B4B; | |
71 | + padding: 4px; | |
72 | + cursor: pointer; | |
73 | + margin-right: 2px; | |
74 | + }*/ | |
75 | + | |
76 | + .underline-btn-css { | |
77 | + background: #4B4B4B; | |
78 | + padding: 4px; | |
79 | + cursor: pointer; | |
80 | + margin-right: 5px; | |
81 | + } | |
82 | + | |
83 | + | |
84 | + | |
85 | + .activebtncolor { | |
86 | + background-color: #1B92D0 !important; | |
87 | + border-color: #1B92D0 !important; | |
88 | + color: #ffffff !important; | |
89 | + } | |
90 | + | |
91 | + .btn-black-annotation { | |
92 | + background-color: #4b4b4b; | |
93 | + border-color: #3f3f3f; | |
94 | + color: #ffffff; | |
95 | + } | |
96 | + | |
97 | + /*.btn-black-annotation:hover { | |
98 | + background-color: #1B92D0 !important; | |
99 | + border-color: #1B92D0 !important; | |
100 | + color: #ffffff !important; | |
101 | + }*/ | |
102 | + | |
103 | + .custom-tooltip-annotation { | |
104 | + background-color: #fff; | |
105 | + border: 0 none; | |
106 | + color: #000; | |
107 | + left: -52px; | |
108 | + opacity: 0.9; | |
109 | + padding: 3px 0; | |
110 | + position: absolute; | |
111 | + text-align: center; | |
112 | + top: 41px; | |
113 | + width: 120px; | |
114 | + display: none; | |
115 | + z-index: 10000; | |
116 | + border: 1px solid #000; | |
117 | + color: #000; | |
118 | + border-radius: 0; | |
119 | + } | |
120 | + | |
121 | + /*7931*/ | |
122 | + .custom-tooltip-annotation-edit { | |
123 | + background-color: #fff; | |
124 | + border: 0 none; | |
125 | + color: #000; | |
126 | + left: 80px; | |
127 | + opacity: 0.9; | |
128 | + padding: 3px 0; | |
129 | + position: absolute; | |
130 | + text-align: center; | |
131 | + bottom: 50px; | |
132 | + width: 120px; | |
133 | + display: none; | |
134 | + z-index: 10000; | |
135 | + border: 1px solid #000; | |
136 | + color: #000; | |
137 | + border-radius: 0; | |
138 | + } | |
139 | + | |
140 | + .custom-tooltip-annotation-toolbar { | |
141 | + background-color: #fff; | |
142 | + border: 0 none; | |
143 | + color: #000; | |
144 | + opacity: 0.9; | |
145 | + padding: 3px 0; | |
146 | + position: absolute; | |
147 | + text-align: center; | |
148 | + display: none; | |
149 | + z-index: 10000; | |
150 | + border: 1px solid #000; | |
151 | + color: #000; | |
152 | + border-radius: 0; | |
153 | + } | |
154 | + | |
155 | + .restrict-carret-icon { | |
156 | + font-size: 18px; | |
157 | + position: relative; | |
158 | + top: 1px; | |
159 | + } | |
160 | + | |
161 | + #refreshBtn { | |
162 | + color: #ffffff; | |
163 | + } | |
164 | + </style> | |
165 | + | |
166 | + <script> var params = "<%=urlParams%>"; alert(params) </script> | |
167 | + | |
168 | +</head> | |
169 | +<body ng-controller="HomeController" id="bo" ng-init="initializeAIA()" ng-keydown="CheckRefresh($event)"> | |
170 | + <div ng-hide="isVisibleResetPass"> | |
171 | + <div id="login" ng-show="isVisibleLogin"> | |
172 | + | |
173 | + <div class="container-fluid loginBg"> | |
174 | + <div class="row"> | |
175 | + <div class="col-xs-12 text-center"> | |
176 | + <a href="index.html" class="loginLogo"><img src="content/images/common/logo-large.png" class="img-responsive" alt=""></a> | |
177 | + <div class="headerBand row"> | |
178 | + <div class="col-xs-12"> | |
179 | + <h1>A.D.A.M. Interactive Anatomy</h1> | |
180 | + <p>The most comprehensive online interactive anatomy learning resource</p> | |
181 | + </div> | |
182 | + </div> | |
183 | + </div> | |
184 | + <!--LOGIN PANEL--> | |
185 | + <div class="col-xs-12 loginPanel"> | |
186 | + <div class="loginBox clearfix"> | |
187 | + <div class="col-xs-12"> | |
188 | + <!--<strong>Login</strong>--> | |
189 | + <form> | |
190 | + <div class="form-group"> | |
191 | + <!--<label for="">User ID</label>--> | |
192 | + <!--input type="email" class="form-control" placeholder="User ID"> | |
193 | + <span class="help-block text-right small"><a href="#" class="color-white">Forgot User ID?</a></span>--> | |
194 | + | |
195 | + | |
196 | + <div class="input-group"> | |
197 | + <span class="input-group-addon"><i class="fa fa-user"></i></span> | |
198 | + <input type="text" class="form-control" placeholder="Username" ng-model="userInfo.username"> | |
199 | + </div> | |
200 | + <span class="help-block text-right small"><a href="#" class="color-white" id="forgotUserIdAnchor" data-toggle="modal" ng-click="forgotUserModalShow()" data-target=".forgot-sm">Forgot User ID?</a></span> | |
201 | + | |
202 | + | |
203 | + </div> | |
204 | + <div class="form-group"> | |
205 | + <!--<label for="">Password</label>--> | |
206 | + <!--<input type="password" class="form-control" placeholder="Password"> | |
207 | + <span class="help-block text-right small "><a href="#" class="color-white">Forgot Password?</a></span>--> | |
208 | + <div class="input-group"> | |
209 | + <span class="input-group-addon"><i class="fa fa-key"></i></span> | |
210 | + <input type="password" id="UserPassword" class="form-control" placeholder="Password" ng-model="userInfo.password"> | |
211 | + </div> | |
212 | + <span class="help-block text-right small "><a class="color-white" style="cursor: pointer;" id="forgotPasswordAnchor" data-toggle="modal" ng-click="forgotPwdModalShow();" data-target=".forgot-sm1">Forgot Password?</a></span> <!--#resetpass" href="/app/views/Home/resetPwd.html"--> | |
213 | + <div class="checkbox"> | |
214 | + <label style="font-size: 85%;color:#fff !important;"><input type="checkbox" ng-model="userInfo.rememberChk" ng-click="RememberMe(this.userInfo.rememberChk)">Remember me</label> | |
215 | + </div> | |
216 | + </div> | |
217 | + <div class="form-group"> | |
218 | + <button class="btn btn-primary pull-right" ng-click="AuthenticateUser(userInfo)">Log In</button> | |
219 | + </div> | |
220 | + </form> | |
221 | + </div> | |
222 | + </div> | |
223 | + <div class="loginExBtn"> | |
224 | + <a href="https://store.adameducation.com/" target="_blank" class="btn btn-primary">Subscribe Now</a> | |
225 | + <a href="http://adameducation.com/aiaonline" target="_blank" class="btn btn-primary pull-right">Learn More</a> | |
226 | + </div> | |
227 | + </div> | |
228 | + </div> | |
229 | + </div> | |
230 | + | |
231 | + <!-- Footer --> | |
232 | + <footer class="dark"> | |
233 | + <div class="container-fluid text-center"> | |
234 | + <img class="browserIcons" src="content/images/common/chrome-icon.png" /> | |
235 | + <img class="browserIcons" src="content/images/common/ie-icon.png" /> | |
236 | + <img class="browserIcons" src="content/images/common/mozilla-icon.png" /> | |
237 | + <img class="browserIcons" src="content/images/common/safari-icon.png" /> | |
238 | + </div> | |
239 | + <div class="container-fluid text-center">Copyright © {{current_year}} Ebix Inc. All rights reserved.</div> | |
240 | + </footer> | |
241 | + </div> | |
242 | + <!-- Forgot User ID (Small modal) --> | |
243 | + <div class="modal fade" id="forgotUserModal" role="dialog" tabindex="-1" aria-labelledby="exampleModalLabel" data-target=".forgot-sm"> | |
244 | + <div class="modal-dialog modal-small" role="document"> | |
245 | + <div class="modal-content"> | |
246 | + <div class="modal-header"> | |
247 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
248 | + <h5 class="modal-title" id="exampleModalLabel">Enter your email id to recover User id</h5> | |
249 | + </div> | |
250 | + <div class="modal-body"> | |
251 | + <form id="forgetUSerIdForm"> | |
252 | + <div class="form-group"> | |
253 | + <div class="input-group"> | |
254 | + <span class="input-group-addon"><i class="fa fa-envelope"></i></span> | |
255 | + <input id="btnEmail" class="form-control" placeholder="Email" type="email" ng-model="userInfo.emailId"> | |
256 | + </div> | |
257 | + </div> | |
258 | + </form> | |
259 | + </div> | |
260 | + <div class="modal-footer" style="padding-bottom:10px;"> | |
261 | + <button type="button" class="btn btn-primary btn-block" ng-click="SendMailToUser(userInfo, false)">Send Mail</button> | |
262 | + </div> | |
263 | + <!--<div style="color: maroon; font-weight: bold; " ng-if="message">{{message}}</div>--> | |
264 | + </div> | |
265 | + </div> | |
266 | + </div> | |
267 | + <!-- Forgot Password (Small modal) --> | |
268 | + <div class="modal fade" id="forgotPwdModal" role="dialog" tabindex="-1" aria-labelledby="exampleModalLabel" data-target=".forgot-sm1"> | |
269 | + <div class="modal-dialog modal-small" role="document"> | |
270 | + <div class="modal-content"> | |
271 | + <div class="modal-header"> | |
272 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
273 | + <h5 class="modal-title" id="exampleModalLabel">Enter your email id to unblock/ recover Password</h5> | |
274 | + </div> | |
275 | + <div class="modal-body" style="padding: 15px;"> | |
276 | + <form id="forgetPwdForm" class="ng-pristine ng-valid ng-valid-email"> | |
277 | + <div class="form-group"> | |
278 | + <div class=""> | |
279 | + <label class="radio-inline"> | |
280 | + <input name="inlineRadioOptions" id="inlineRadio1" value="unblock" type="radio"> Unblock | |
281 | + </label> | |
282 | + <label class="radio-inline"> | |
283 | + <input name="inlineRadioOptions" id="inlineRadio2" value="forgotpwd" type="radio"> Forgot Password | |
284 | + </label> | |
285 | + </div> | |
286 | + </div> | |
287 | + | |
288 | + | |
289 | + <div class="form-group"> | |
290 | + <div class="input-group" style="margin-top: 8px;"> | |
291 | + <span class="input-group-addon"><i class="fa fa-envelope"></i></span> | |
292 | + <input id="btnEmail2" class="form-control ng-pristine ng-untouched ng-valid ng-valid-email" placeholder="Email" ng-model="userInfo.emailId" type="email"> | |
293 | + </div> | |
294 | + </div> | |
295 | + </form> | |
296 | + </div> | |
297 | + <div class="modal-footer modal-footer-forgot-password" style="padding-bottom:10px;"> | |
298 | + <button type="button" class="btn btn-primary btn-block" ng-click="SendMailToUser(userInfo, true)">Send Mail</button> | |
299 | + </div> | |
300 | + <!--<div style="color: maroon; font-weight: bold; " ng-if="message">{{message}}</div>--> | |
301 | + </div> | |
302 | + </div> | |
303 | + </div> | |
304 | + <div id="index" ng-hide="isVisibleLogin"> | |
305 | + <div class="container-fluid "> | |
306 | + <!--Header--> | |
307 | + | |
308 | + <nav class="navbar navbar-inverse navbar-fixed-top"> | |
309 | + <div class="container-fluid"> | |
310 | + <!-- Brand and toggle get grouped for better mobile display --> | |
311 | + <div class="navbar-header"> | |
312 | + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#topFixedNavbar1" aria-expanded="false"> | |
313 | + <span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span> | |
314 | + </button> | |
315 | + <a class="frameLogo navbar-brand"><img src="content/images/logo-main.png" class="img-responsive" alt=""></a> | |
316 | + </div> | |
317 | + <div ng-include="'app/widget/TopMenu.html'"></div> | |
318 | + </div> | |
319 | + </nav> | |
320 | + <div class="bodyWrap row container-fluid"> | |
321 | + | |
322 | + <div id="spinner" class="spinner" ng-show="isLoading" style="visibility:hidden"> | |
323 | + <img id="img-spinner" src="content/images/common/loading.gif" alt="Loading" /> | |
324 | + </div> | |
325 | + <div ng-view></div> | |
326 | + | |
327 | + </div> | |
328 | + </div> | |
329 | + | |
330 | + | |
331 | + | |
332 | + <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"> | |
333 | + <div class="modal-dialog" role="document" style="width:400px;"> | |
334 | + <div class="modal-content" style="width:100%;max-width:400px;"> | |
335 | + <div class="modal-header setting-modal-header" style="padding: 5px 10px; border-bottom: 1px solid #e5e5e5;"> | |
336 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
337 | + <h4 class="modal-title" id="myModalLabel">Setting</h4> | |
338 | + </div> | |
339 | + <div class="modal-body"> | |
340 | + <div class="row" style="padding-top:20px;"> | |
341 | + <div class="col-sm-12"> | |
342 | + | |
343 | + <div aria-label="..." role="group" class="btn-group btn-group-justified"> | |
344 | + <div role="group" class="btn-group"> | |
345 | + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 1">Appearance</button> | |
346 | + </div> | |
347 | + <div role="group" class="btn-group"> | |
348 | + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 2">Lexicons</button> | |
349 | + </div> | |
350 | + <div role="group" class="btn-group"> | |
351 | + <button class="btn btn-sm btn-success" type="button" ng-click="tab = 3">Dissectible</button> | |
352 | + </div> | |
353 | + </div> | |
354 | + | |
355 | + </div> | |
356 | + | |
357 | + | |
358 | + <div class="col-sm-12" ng-show="tab === 1"> | |
359 | + | |
360 | + | |
361 | + <div class="row"> | |
362 | + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;"> | |
363 | + <div class="row" style="padding-top: 22px;"> | |
364 | + <div class="center-block col-md-10" style="float: none; "> | |
365 | + <h5><strong>System Font</strong></h5> | |
366 | + | |
367 | + <div style="border:2px solid #ACACAC;float:left;padding:15px;background-color:#CCCCCC;"> | |
368 | + <div class="col-md-3" style="padding-left:0px;"> | |
369 | + Sample | |
370 | + </div> | |
371 | + <div class="col-md-6" style="padding-right:0px;"> | |
372 | + <input type="text" value="" style="width:85%;"> | |
373 | + </div> | |
374 | + <div class="col-md-3" style="padding-left:0px;"> | |
375 | + <button class="btn btn-primary" style="margin-bottom:5px;">Change</button> | |
376 | + <button class="btn btn-primary" style="margin-bottom:5px;">Default</button> | |
377 | + </div> | |
378 | + | |
379 | + </div> | |
380 | + </div> | |
381 | + </div> | |
382 | + | |
383 | + </div> | |
384 | + </div> | |
385 | + | |
386 | + </div> | |
387 | + <div class="col-sm-12" ng-show="tab === 2"> | |
388 | + | |
389 | + | |
390 | + <div class="row"> | |
391 | + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;"> | |
392 | + <div class="col-md-6"> | |
393 | + <h6><strong>Primary Lexicon</strong></h6> | |
394 | + <input type="text" value="English" style="width:90%;"> | |
395 | + <button class="btn btn-primary" style="float:right;margin-bottom:5px;margin-top:5px;">Change</button> | |
396 | + <h6>Secondry Lexicon</h6> | |
397 | + <textarea style="width:90%;"></textarea> | |
398 | + <button>Change</button> | |
399 | + <button>Change</button> | |
400 | + </div> | |
401 | + <div class="col-md-6"> | |
402 | + <h6>Available Lexicon</h6> | |
403 | + <select multiple class="form-control" id="sel2"> | |
404 | + <option>1</option> | |
405 | + <option>2</option> | |
406 | + <option>3</option> | |
407 | + <option>4</option> | |
408 | + <option>5</option> | |
409 | + </select> | |
410 | + | |
411 | + <p>Note: Some languages require special system fonts to display correctly</p> | |
412 | + </div> | |
413 | + | |
414 | + </div> | |
415 | + </div> | |
416 | + | |
417 | + </div> | |
418 | + <div class="col-sm-12" ng-show="tab === 3"> | |
419 | + | |
420 | + <div class="row"> | |
421 | + <div class="center-block col-md-11" style="float: none; background-color:#E2E2E2;height:300px;"> | |
422 | + <h6>Skin Tones</h6> | |
423 | + <div class="center-block col-md-8" style="float: none;"> | |
424 | + <div class="col-md-6"> | |
425 | + <img class="img-responsive" alt="" src="http://placehold.it/400x300"> | |
426 | + </div> | |
427 | + <div class="col-md-6"> | |
428 | + <img class="img-responsive" alt="" src="http://placehold.it/400x300"> | |
429 | + </div> | |
430 | + <div class="col-md-6"> | |
431 | + <img class="img-responsive" alt="" src="http://placehold.it/400x300"> | |
432 | + </div> | |
433 | + <div class="col-md-6"> | |
434 | + <img class="img-responsive" alt="" src="http://placehold.it/400x300"> | |
435 | + </div> | |
436 | + | |
437 | + </div> | |
438 | + <h6>Modesty Setting</h6> | |
439 | + <div class="col-md-6"> | |
440 | + <div class="col-md-4"> | |
441 | + <img class="img-responsive" alt="" src="http://placehold.it/400x300"> | |
442 | + </div> | |
443 | + <div class="col-md-8"> | |
444 | + | |
445 | + <div class="radio"> | |
446 | + <label><input type="radio" name="optradio" checked>On</label> | |
447 | + </div> | |
448 | + <div class="radio"> | |
449 | + <label><input type="radio" name="optradio">Off</label> | |
450 | + </div> | |
451 | + | |
452 | + </div> | |
453 | + </div> | |
454 | + <div class="col-md-6"> | |
455 | + <h6>Annotaion</h6> | |
456 | + <div class="checkbox"> | |
457 | + <label><input type="checkbox" value="" checked>Erase Annotations when changeing layers</label> | |
458 | + </div> | |
459 | + </div> | |
460 | + </div> | |
461 | + | |
462 | + </div> | |
463 | + | |
464 | + | |
465 | + | |
466 | + </div> | |
467 | + </div> | |
468 | + <div class="modal-footer"> | |
469 | + <button type="button" class="btn btn-primary">Ok</button> | |
470 | + <button type="button" class="btn btn-primary" data-dismiss="modal">Cancle</button> | |
471 | + <button type="button" class="btn btn-primary">Apply</button> | |
472 | + </div> | |
473 | + </div> | |
474 | + </div> | |
475 | + </div> | |
476 | + </div> | |
477 | + | |
478 | + <!--Settings modal--> | |
479 | + <!--<div id="modal-settings" style="z-index: 1000000000; background: white;width: 302px;position:absolute;left:40%;right:0;top:70px;">--> | |
480 | + <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> | |
481 | + <div id="modal-settings" style="display:none;z-index: 1000000000;height:auto;width: 300px;position:absolute;left:40%;right:0;top:70px;"> | |
482 | + <div role="document"> | |
483 | + <form> | |
484 | + <div ng-init="loadsettings()" class="modal-content" id="setting-modal-dark"> | |
485 | + <div class="modal-header annotation-modal-header"> | |
486 | + <button type="button" class="close" data-dismiss="modal" ng-click="CloseSetting()" aria-label="Close"><span aria-hidden="true">×</span></button> | |
487 | + <h4 class="modal-title" id="myModalLabel2">Settings</h4> | |
488 | + </div> | |
489 | + <div class="modal-body"> | |
490 | + <div class="paddTop15"> | |
491 | + <!-- Nav tabs --> | |
492 | + <ul class="nav nav-tabs" role="tablist"> | |
493 | + <li role="presentation" ng-class="{'active':SettingsTab==1}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(1)">Appearance</a></li> | |
494 | + <li role="presentation" ng-class="{'active':SettingsTab==2}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(2);lexiconData()">Lexicons</a></li> | |
495 | + <li role="presentation" ng-class="{'active':SettingsTab==3}"><a role="tab" class="padd5" ng-click="SetSettingActiveTab(3)">Dissectible</a></li> | |
496 | + | |
497 | + </ul> | |
498 | + <!-- Tab panes --> | |
499 | + <div class="tab-content"> | |
500 | + <div role="tabpanel" ng-class="{'tab-pane active' : SettingsTab === 1,'tab-pane' : SettingsTab !==1 }" id="appearance"> | |
501 | + <div class="row"> | |
502 | + <div class="col-sm-12"> | |
503 | + <div class="well well-sm no-margin-btm"> | |
504 | + <h5>System Font</h5> | |
505 | + <div class="form-group"> | |
506 | + <label for="SystemFont" class="font13">Sample</label> | |
507 | + <input type="text" class="form-control" id="SystemFont" value="AaBbYyZz" disabled> | |
508 | + </div> | |
509 | + <button class="btn btn-success btn-sm" data-toggle="modal" data-target="#modal-change">Change</button> | |
510 | + <button class="btn btn-success btn-sm">Default</button> | |
511 | + </div> | |
512 | + </div> | |
513 | + </div> | |
514 | + </div> | |
515 | + <div role="tabpanel" ng-class="{'tab-pane active' : SettingsTab === 2,'tab-pane' : SettingsTab !==2 }" id="lexicons"> | |
516 | + <div class="row paddingTopBtm10"> | |
517 | + <div class="col-sm-6"> | |
518 | + <div class="form-group"> | |
519 | + <label for="SystemFont" class="font13">Primary Lexicon</label> | |
520 | + <input type="text" id="primarylaxican" class="form-control" value="English" name="1" disabled> | |
521 | + <button class="btn btn-sm btn-success btn-block marginTop5" id="laxicanlanguageChagne" disabled>Change</button> | |
522 | + </div> | |
523 | + | |
524 | + <div class="form-group"> | |
525 | + <label for="SystemFont" class="font13">Secondary Lexicons</label> | |
526 | + <!--<textarea class="form-control" rows="3">--> | |
527 | + <select class="form-control" size="5" id="secondLax"></select> | |
528 | + <!--</textarea>--> | |
529 | + </div> | |
530 | + <div class="form-group"> | |
531 | + <button class="btn btn-sm btn-success" id="laxiconLangAdd" disabled>Add</button> | |
532 | + <button class="btn btn-sm btn-success" id="laxiconLangRemove">Remove</button> | |
533 | + </div> | |
534 | + </div> | |
535 | + <div class="col-sm-6" style="padding-left:13px;padding-right:13px;"> | |
536 | + <div class=" form-group"> | |
537 | + <label for="SystemFont" class="font13">Available Lexicons</label> | |
538 | + <select class="form-control" size="8" id="lexiconLangDropdown"></select> | |
539 | + </div> | |
540 | + <p class="font11"><strong>Note :</strong> Some languages require special system fonts to display correctly</p> | |
541 | + </div> | |
542 | + <div class="clearfix"></div> | |
543 | + </div> | |
544 | + </div> | |
545 | + <div role="tabpanel" id="dissectible" ng-class="{'tab-pane active' : SettingsTab === 3,'tab-pane' : SettingsTab !==3 }"> | |
546 | + <div class=""> | |
547 | + <div class="col-sm-12"> | |
548 | + <h5 class="bolder font13 no-margin-top">Skin Tones</h5> | |
549 | + <div class="skin-tones"> | |
550 | + <div align="center"> | |
551 | + <div class="col-sm-5"> | |
552 | + <button id="btnEthnicW" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'W')"> | |
553 | + <img src="~/../content/images/common/skin1.jpg" alt=""> | |
554 | + </button> | |
555 | + </div> | |
556 | + <div class="col-sm-5"> | |
557 | + <button id="btnEthnicB" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'B')"> | |
558 | + <img src="~/../content/images/common/skin2.jpg" alt=""> | |
559 | + </button> | |
560 | + </div> | |
561 | + <div class="col-sm-5"> | |
562 | + <button id="btnEthnicL" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'A')"> | |
563 | + <img src="~/../content/images/common/skin3.jpg" alt=""> | |
564 | + </button> | |
565 | + </div> | |
566 | + <div class="col-sm-5"> | |
567 | + <button id="btnEthnicA" class="thumbnail skinmarginbtm6" ng-model="formsetting.ethnicity" ng-click="ChangeEthnicity(formsetting,'L')"> | |
568 | + <img src="~/../content/images/common/skin4.jpg" alt=""> | |
569 | + </button> | |
570 | + </div> | |
571 | + </div> | |
572 | + </div> | |
573 | + | |
574 | + </div> | |
575 | + </div> | |
576 | + <div class=""> | |
577 | + <div class="col-sm-6"> | |
578 | + <h5 class="font13 bolder">Modesty Settings</h5> | |
579 | + <img src="~/../content/images/common/adam-leaf.png" alt="" class="pull-left marginR5"> | |
580 | + <div class="radio"> | |
581 | + <label> | |
582 | + <input type="radio" ng-checked="isModestyOn" ng-model="formsetting.modesty" value="Y" name="modestyRadios" id="modon" ng-click="ChangeModesty(formsetting,'Y')"> | |
583 | + <span class="">On</span> | |
584 | + </label> | |
585 | + </div> | |
586 | + <div class="radio"> | |
587 | + <label> | |
588 | + <input type="radio" ng-checked="isModestyOff" ng-model="formsetting.modesty" value="N" name="modestyRadios" id="modoff" ng-click="ChangeModesty(formsetting,'N')"> | |
589 | + <span class="">Off</span> | |
590 | + </label> | |
591 | + </div> | |
592 | + </div> | |
593 | + <div class="col-sm-6"> | |
594 | + <h5 class="font13 bolder">Annotation</h5> | |
595 | + <div class="checkbox no-margin"> | |
596 | + <!--Settings > The entire highlighted part should be active--> | |
597 | + <label class="font11 no-margin-btm"> | |
598 | + <input type="checkbox" value="" checked> | |
599 | + Erase Annotations when changing layers | |
600 | + </label> | |
601 | + </div> | |
602 | + </div> | |
603 | + </div> | |
604 | + </div> | |
605 | + </div> | |
606 | + </div> | |
607 | + </div> | |
608 | + <div class="modal-footer"> | |
609 | + <button type="button" class="btn btn-primary" ng-click="UpdateAndCloseSetting(formsetting)">OK</button> | |
610 | + | |
611 | + <!--<button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>--> | |
612 | + <button type="button" class="btn btn-primary" ng-click="CloseSetting()">Cancel</button> | |
613 | + <button type="button" class="btn btn-primary" ng-click="UpdateSetting(formsetting)">Apply</button> | |
614 | + </div> | |
615 | + </div> | |
616 | + </form> | |
617 | + </div> | |
618 | + </div> | |
619 | + <div id="setting-spinner" style="display:none;position: fixed; top: 50%; left: 50%; margin-left: -50px; z-index: 15000; overflow: auto; width: 100px;"> | |
620 | + <img id="img-spinner" src="content/images/common/loading.gif" alt="Loading"> | |
621 | + </div> | |
622 | + <!--Annotation Modal--> | |
623 | + <div class="annotationTollbar" style="width: 300px;position: fixed; top: 80px; right: 20px; display: none; z-index: 1200000;"> | |
624 | + <div class="annotationbar"> | |
625 | + <div class="modal-content"> | |
626 | + <div class="modal-header annotation-modal-header"> | |
627 | + <button type="button" class="close" aria-label="Close" ng-click="CloseAnnotationTool()"><span aria-hidden="true">×</span></button> | |
628 | + <h4 class="modal-title" id="myModalLabel">Annotation</h4> | |
629 | + </div> | |
630 | + <div class="modal-body" id="AnnotaionPopupDiv"> | |
631 | + <div class="row"> | |
632 | + <div class="col-sm-12"> | |
633 | + <h5>Mode</h5> | |
634 | + | |
635 | + <div class="btn-group btn-group-justified" role="group" aria-label="..."> | |
636 | + <div class="btn-group" role="group" tooltip> | |
637 | + <div id="identify-block" style="display: none; font-size:13px;">Identify Mode</div> | |
638 | + <button id="OnIdentify" type="button" class="btn btn-sm btn-success" ng-click="OnIdentifyClick()">Identify</button> | |
639 | + </div> | |
640 | + <div class="btn-group" role="group"> | |
641 | + <div id="draw-block" style="display: none; font-size: 13px;">Draw Mode</div> | |
642 | + <button id="DrawMode" type="button" ng-click="DrawingMode()" class="btn btn-sm btn-success">Draw</button> | |
643 | + </div> | |
644 | + </div> | |
645 | + | |
646 | + </div> | |
647 | + <div class="col-sm-12"> | |
648 | + <h5>Tools</h5> | |
649 | + <div class="well well-popup"> | |
650 | + <div class="" aria-label="..."> | |
651 | + <div class="" role="group" align="center"> | |
652 | + <div id="cursor-block" style="display: none; font-size:13px;"></div> | |
653 | + <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btnCursor" ng-mouseover="addToolTip(75, 60, 120, 'Select Cursor(s)')" ng-mouseleave="removeToolTipOnMouseOut()" ng-click="Cursor()"><img src="content/images/icon-identity.png" alt="" title=""></button> | |
654 | + <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btn-annotation btn-annotation-pin" ng-mouseover="addToolTip(75, 100, 120, 'Draw Pin')" ng-mouseleave="removeToolTipOnMouseOut()" ng-click="DrawPin($event)"><img src="content/images/draw-pin.png" alt="" title=""></button> | |
655 | + <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btn-annotation btn-annotation-arrow" ng-mouseover="addToolTip(75, 120, 120, 'Draw Arrow')" ng-mouseleave="removeToolTipOnMouseOut()" ng-click="DrawArrow($event)"><img src="content/images/draw-arrow.png" alt="" title=""></button> | |
656 | + <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btn-annotation btn-annotation-Text" ng-mouseover="addToolTip(75, 140, 120, 'Draw Text')" ng-mouseleave="removeToolTipOnMouseOut()" ng-click="DrawText($event)"><img src="content/images/draw-text.png" alt="" title=""></button> | |
657 | + </div> | |
658 | + <div class="" role="group" align="center"> | |
659 | + <button type="button" class="btn btn-black-annotation btn-xs btn-annotation btn-annotation-line" ng-mouseover="addToolTip(95, 60, 120, 'Draw Line')" ng-mouseleave="removeToolTipOnMouseOut()" ng-click="DrawLine($event)"><img src="content/images/draw-line.png" alt="" title=""></button> | |
660 | + <button type="button" class="btn btn-black-annotation btn-xs btn-annotation btn-annotation-rectangle" ng-mouseover="addToolTip(95, 100, 120, 'Draw Rectangle')" ng-mouseleave="removeToolTipOnMouseOut()" ng-click="DrawRectangle($event)"><img src="content/images/draw-rec.png" alt="" title=""></button> | |
661 | + <button type="button" class="btn btn-black-annotation btn-xs btn-annotation btn-annotation-circle" ng-mouseover="addToolTip(95, 120, 120, 'Draw Circle')" ng-mouseleave="removeToolTipOnMouseOut()" ng-click="DrawCircle($event)"><img src="content/images/draw-cir.png" alt="" title=""></button> | |
662 | + <!--<button type="button" class="btn btn-black-annotation btn-xs btn-annotation" ng-mouseover="addToolTip(95, 140, 120, 'Draw Polygon')" ng-mouseleave="removeToolTipOnMouseOut()" ng-click="DrawPolygon($event)"><img src="content/images/draw-poly.png" alt="" title=""></button>--> | |
663 | + <button type="button" class="btn btn-black-annotation" id="resetBtn" style="padding:1px 7px;display:none;" ng-click="resetDrawing()" ng-mouseover="addToolTip(95, 140, 120, 'Reset')" ng-mouseleave="removeToolTipOnMouseOut()"><i class="fa fa-refresh"></i></button> | |
664 | + </div> | |
665 | + </div> | |
666 | + </div> | |
667 | + <div class="well-popup well blankshapediv" ng-mouseover="addToolTip(200, 170, 120, 'Edit Style')" ng-mouseleave="removeToolTipOnMouseOut()"> | |
668 | + <!--#7931--> | |
669 | + | |
670 | + <div id="edit-block" style="display: none; font-size: 13px;">Edit Shape Style</div> | |
671 | + <div id="previewBorder" class="outlinediv" ng-mouseover="addToolTip(170, 170, 120, 'Edit Style')" ng-mouseleave="removeToolTipOnMouseOut()"> | |
672 | + <div id="shapeStyleDiv" style="background-color: #ffffff;" class="fullcolordiv" ng-click="disableAnnotationtoolOnListManager||enableAnnotationToolBar()"> | |
673 | + | |
674 | + </div> | |
675 | + | |
676 | + </div> | |
677 | + </div> | |
678 | + <div class="well well-popup"> | |
679 | + <div class="" role="group" aria-label="..."> | |
680 | + <div> | |
681 | + <a href="#canvasPaint" data-tool="marker" data-size="1" data-color="#fff" id="annotationpaintbrushsize" ng-mouseover="addToolTip(270, 50, 120, 'Paint')" ng-mouseleave="removeToolTipOnMouseOut()" class="btn btn-black-annotation btn-xs pull-left btn-annotation btn-annotation-brush" role="button" data-placement="top" style="margin-right:1%;" ng-click="paintBrush()"><i class="fa fa-paint-brush"></i></a> | |
682 | + <a href="#canvasPaint" data-tool="eraser" class="btn btn-black-annotation btn-xs pull-left btn-annotation btn-annotation-erase" data-placement="top" data-size=" 1" id="annotationpainteraser" ng-click="EraseDrawing()" ng-mouseover="addToolTip(270, 70, 120, 'Erase')" ng-mouseleave="removeToolTipOnMouseOut()" role="button"><i class=" fa fa-eraser"></i></a> | |
683 | + | |
684 | + <!--<button type="button" id="annotationpainteraser" class="btn btn-black-annotation btn-xs pull-left btn-annotation btn-annotation-erase" data-placement="top" ng-click="EraseDrawing()" ng-mouseover="addToolTip(270, 70, 120, 'Erase')" ng-mouseleave="removeToolTipOnMouseOut()"><i class="fa fa-eraser"></i></button>--> | |
685 | + <div style="width: 80px; margin: 0px 0px 0px 4px; display: inline-block;float:left;"> | |
686 | + <div style="width: 58px; float: left;" ng-mouseover="addToolTip(270, 100, 120, 'Brush Size')" ng-mouseleave="removeToolTipOnMouseOut()"> | |
687 | + <input type="text" id="btnBrushSize" class="form-control" value="1" style="height:32px;border-radius:0;" oninput="Brushsize(this)"> | |
688 | + </div> | |
689 | + <div style="width: 22px; float: left;"> | |
690 | + <div style="width: 100%; float: left; height: 16px;"> | |
691 | + <button type="button" id="btnBrushSizeIncrement" ng-mouseover="addToolTip(270, 100, 120, 'Brush Size')" ng-mouseleave="removeToolTipOnMouseOut()" class="btn btn-default" style="padding:0 5px;border-radius:0;font-size: 10px;vertical-align:top;"> | |
692 | + | |
693 | + <img style="width:10px;height:10px;" src="~/../content/images/DA/angle-up.png"> | |
694 | + </button> | |
695 | + </div> | |
696 | + <div style="width: 100%; float: left; height: 16px;"> | |
697 | + <button type="button" id="btnBrushSizeDecrease" ng-mouseover="addToolTip(270, 100, 120, 'Brush Size')" ng-mouseleave="removeToolTipOnMouseOut()" class="btn btn-default" style="padding:0 5px;border-radius:0;font-size: 10px;vertical-align:top;"> | |
698 | + <img style="width:10px;height:10px;" src="~/../content/images/DA/angle-down.png"> | |
699 | + </button> | |
700 | + </div> | |
701 | + </div> | |
702 | + | |
703 | + </div> | |
704 | + | |
705 | + | |
706 | + <div class="pull-left pl-12" style="width:45%; margin-left:2%;margin-top:5px;"> | |
707 | + <div id="slider-range-min-2" ng-mouseover="addToolTip(270, 170, 120, 'Brush Size')" ng-mouseleave="removeToolTipOnMouseOut()"></div> | |
708 | + </div> | |
709 | + <div class="clearfix"></div> | |
710 | + </div> | |
711 | + | |
712 | + </div> | |
713 | + | |
714 | + | |
715 | + </div> | |
716 | + | |
717 | + </div> | |
718 | + </div> | |
719 | + </div> | |
720 | + | |
721 | + </div> | |
722 | + </div> | |
723 | + </div> | |
724 | + | |
725 | + <!--Modal For Annotation Text Box--> | |
726 | + <div id="annotationTextModal" style="display:none;z-index: 1000000000;width:500px;height:241px;padding-right:0!important;position:fixed;left:0;right:0;top:0px;bottom:0;margin:auto;"> | |
727 | + | |
728 | + <div class="modal-content"> | |
729 | + <div class="modal-header" style="background-color: #808D43;padding:10px;border-bottom:0;"> | |
730 | + <!--<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>--> | |
731 | + <h4 class="modal-title" id="myModalLabel" style="font-weight:bold;">Enter Text to be put in a box</h4> | |
732 | + </div> | |
733 | + <div class="modal-body"> | |
734 | + <div class="col-xs-12" style="padding:20px 0;"> | |
735 | + <div class="form-inline"> | |
736 | + <!--Annotation: Text in different font style is same.--> | |
737 | + <select class="form-control" id="selected-font-family"></select> | |
738 | + <select class="form-control" id="selected-font-size"> | |
739 | + <option>14</option> | |
740 | + <option>16</option> | |
741 | + <option>18</option> | |
742 | + <option>20</option> | |
743 | + <option>22</option> | |
744 | + <option>24</option> | |
745 | + <option>26</option> | |
746 | + <option>28</option> | |
747 | + <option>36</option> | |
748 | + <option>48</option> | |
749 | + <option>72</option> | |
750 | + </select> | |
751 | + <span style="vertical-align:middle;"> | |
752 | + <span id="text-bold" class="Edittext-btn-css"> | |
753 | + <i aria-hidden="true" class="fa fa-bold" style="color: #fff"></i> | |
754 | + </span> | |
755 | + <span id="text-italic" class="Edittext-btn-css"> | |
756 | + <i class="fa fa-italic" aria-hidden="true" style="color: #fff"></i> | |
757 | + | |
758 | + </span> | |
759 | + <span id="text-underline" class="underline-btn-css"> | |
760 | + <i class="fa fa-underline" aria-hidden="true" style="color: #fff"></i> | |
761 | + </span> | |
762 | + </span> | |
763 | + | |
764 | + <div class="form-group" id="font-color" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;"> | |
765 | + | |
766 | + <input type="text" id="saturation-demo" class="form-control demo" data-control="saturation" style="display:none;" value="#0088cc"> | |
767 | + </div> | |
768 | + <div class="form-group" id="drawTextBGColorpicker" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;"> | |
769 | + <input type="text" id="saturation-demo-background" class="form-control drawTextBG" data-control="saturation" style="display:none;" value="#0088cc"> | |
770 | + </div> | |
771 | + | |
772 | + <span style="vertical-align:middle;"> | |
773 | + <span id="text-left" class="Edittext-btn-css"> | |
774 | + <i aria-hidden="true" class="fa fa-align-left" style="color: #fff"></i> | |
775 | + </span> | |
776 | + <span id="text-center" class="Edittext-btn-css"> | |
777 | + <i class="fa fa-align-center" aria-hidden="true" style="color: #fff"></i> | |
778 | + | |
779 | + | |
780 | + </span> | |
781 | + <span id="text-right" class="underline-btn-css"> | |
782 | + <i class="fa fa-align-right" aria-hidden="true" style="color: #fff"></i> | |
783 | + | |
784 | + | |
785 | + </span> | |
786 | + </span> | |
787 | + | |
788 | + | |
789 | + </div> | |
790 | + </div> | |
791 | + <textarea class="form-control" id="text_area" rows="3" style="font-family: 'Verdana, sans-serif';font-size:14px; font-weight: normal; font-style: normal; color: #000; text-align: left; text-decoration: none;"></textarea> | |
792 | + | |
793 | + <!--code for horizonatl text going out--> | |
794 | + <div id="atTextDiv" style="float:left;"> | |
795 | + <span id="duptextspan" style="float: left; display: none;"></span> | |
796 | + <span id="textspan" style="display:none;"></span> | |
797 | + </div> | |
798 | + <!--code for horizonatl text going out--> | |
799 | + | |
800 | + </div> | |
801 | + <div class="modal-footer"> | |
802 | + <!--<button type="button" class="btn btn-default" ng-click="closeModal()" data-dismiss="modal">Close</button>--> | |
803 | + <button type="button" class="btn btn-default" ng-click="closeModal()" id="closeEditText" data-dismiss="modal">Close</button> | |
804 | + <button type="button" id="saveBtn" class="btn btn-primary" data-dismiss="modal" ng-click="saveText()">Save</button> | |
805 | + </div> | |
806 | + </div> | |
807 | + | |
808 | + </div> | |
809 | + | |
810 | + | |
811 | + | |
812 | + | |
813 | + <!--List manager--> | |
814 | + <!--List manager--> | |
815 | + <style> | |
816 | + #listManager { | |
817 | + background: #fff; | |
818 | + border-radius: 3px; | |
819 | + border: 1px solid #ededed; | |
820 | + -webkit-box-shadow: 0px 0px 2px 1px rgba(173,173,173,1); | |
821 | + -moz-box-shadow: 0px 0px 2px 1px rgba(173,173,173,1); | |
822 | + box-shadow: 0px 0px 2px 1px rgba(173,173,173,1); | |
823 | + width: 350px; | |
824 | + position: absolute; | |
825 | + top: 170px; | |
826 | + left: 140px; | |
827 | + display: none; | |
828 | + z-index: 780000; | |
829 | + height: auto !important; | |
830 | + } | |
831 | + | |
832 | + #listManager .annotation-modal-header { | |
833 | + background: #818f44; | |
834 | + padding: 2px 10px; | |
835 | + } | |
836 | + | |
837 | + #listManager .annotation-modal-header h4 { | |
838 | + color: #fff; | |
839 | + font-size: 15px; | |
840 | + line-height: 20px; | |
841 | + } | |
842 | + | |
843 | + #listManager .modal-header .close { | |
844 | + color: #fff; | |
845 | + margin: 0; | |
846 | + opacity: 10; | |
847 | + text-shadow: none; | |
848 | + } | |
849 | + | |
850 | + #listManager .modal-footer { | |
851 | + padding: 5px 10px; | |
852 | + } | |
853 | + </style> | |
854 | + <div id="listManager" style=""> | |
855 | + <div class="modal-header annotation-modal-header"> | |
856 | + <button type="button" class="close" aria-label="Close" ng-click="CloseListManager()"><span aria-hidden="true">×</span></button> | |
857 | + <h4 class="modal-title" id="myModalLabel">List Manager</h4> | |
858 | + </div> | |
859 | + <div class="modal-body"> | |
860 | + <div class="row paddingTopBtm10"> | |
861 | + <div class="col-sm-12" ng-init="FillListManager()"> | |
862 | + | |
863 | + <div class="form-group"> | |
864 | + <label for="sel1">Window</label> | |
865 | + <select class="form-control" id="viewName" disabled> | |
866 | + <!--<option>Male Lateral</option>--> | |
867 | + | |
868 | + </select> | |
869 | + </div> | |
870 | + <div style=""> | |
871 | + <div class="form-group"> | |
872 | + <div ng-click="restrictBodySystemList()" class="btn btn-success btn-block" style="padding:3px 12px;"> | |
873 | + <i class=" fa fa-caret-right restrict-carret-icon"></i> <span>Restrict List to</span> | |
874 | + </div> | |
875 | + </div> | |
876 | + | |
877 | + <div id="restrictListDiv" style="display:none;"> | |
878 | + <div class="well well-sm marginTopBtm10"> | |
879 | + <div class="form-horizontal"> | |
880 | + <div class="form-group"> | |
881 | + <label class="col-sm-4 control-label" for="System">System</label> | |
882 | + <div class="col-sm-8"> | |
883 | + <select id="bodySystems" class="form-control" onchange="if (typeof (this.selectedIndex) != 'undefined') refreshTermListOnSystem(this.options[this.selectedIndex].id)"></select> | |
884 | + <select id="AABodySystems" class="form-control" onchange="if (typeof (this.selectedIndex) != 'undefined') refreshTermListOnSystemSel(this.options[this.selectedIndex].id)" style="display:none;"></select> | |
885 | + </div> | |
886 | + </div> | |
887 | + <div class="form-group"> | |
888 | + <label class="col-sm-4 control-label" for="inputPassword3">Area</label> | |
889 | + <div class="col-sm-8"> | |
890 | + <select class="form-control" disabled> | |
891 | + <option value="1" selected="">Entire View</option> | |
892 | + </select> | |
893 | + </div> | |
894 | + </div> | |
895 | + </div> | |
896 | + </div> | |
897 | + | |
898 | + | |
899 | + </div> | |
900 | + | |
901 | + <!--DA > List Manager > Multiple structure selection should not be available.--> | |
902 | + <div class="form-group"> | |
903 | + <select id="termList" class="form-control" size="10" onclick="if (typeof (this.selectedIndex) != 'undefined') onListManagerTermSelection(this.options[this.selectedIndex].id, true)"></select> | |
904 | + </div> | |
905 | + | |
906 | + </div> | |
907 | + <div style="clear:both;"></div> | |
908 | + | |
909 | + | |
910 | + | |
911 | + | |
912 | + </div> | |
913 | + </div> | |
914 | + | |
915 | + </div> | |
916 | + <div class="modal-footer" id="totalTerms"> | |
917 | + <!--<span class="pull-left marginTop5">424 Structures</span>--> | |
918 | + <!--<button data-dismiss="modal" class="btn btn-primary" type="button"><i class="fa fa-arrow-circle-right"></i></button>--> | |
919 | + </div> | |
920 | + </div> | |
921 | + | |
922 | + <!--background disable div--> | |
923 | + | |
924 | + <div id="modelbackground"></div> | |
925 | + | |
926 | + | |
927 | + <!--Edit Shape Modal--> | |
928 | + | |
929 | + | |
930 | + <div class="modeleditstyle" id="modeleditstyle" style="z-index: 1000000000; background: white;width: 302px;position:absolute;left:40%;right:0;top:70px;"> | |
931 | + <div class="modal-content"> | |
932 | + <div class="modal-header annotation-modal-header"> | |
933 | + <h4 class="modal-title" id="myModalLabel33">Edit Shape Style</h4> | |
934 | + </div> | |
935 | + <form id="editStyleForm"> | |
936 | + <div class="modal-body"> | |
937 | + <div class="marginTopBtm10"> | |
938 | + <div class="well well-sm no-margin-btm"> | |
939 | + <div class="row"> | |
940 | + <div class="col-sm-12"> | |
941 | + <div class="checkbox no-margin"> | |
942 | + <label> | |
943 | + <input id="fill-option" type="checkbox" checked onclick="enableDisableFillOption()"> Fill Option | |
944 | + </label> | |
945 | + </div> | |
946 | + </div> | |
947 | + <div class="col-sm-6 enableDisableOpacity"> | |
948 | + <!--<div class="radio"> | |
949 | + <label> | |
950 | + <input type="radio" name="filloption" id="filloption1" value="filloption1"> | |
951 | + <span class="">Texture</span> | |
952 | + <img id="editstyleTexture" src="~/../content/images/common/annotation-tool-bar/pattern-picker.png" alt="" class="pattern-picker" data-toggle="modal" data-target="#pattern"> | |
953 | + </label> | |
954 | + </div>--> | |
955 | + <div class="radio"> | |
956 | + <label> | |
957 | + <input type="radio" name="filloption" id="filloption2" value="filloption2" checked style="margin-top:8px;"> | |
958 | + | |
959 | + | |
960 | + <div id="editstylebackgroundcolor" class="form-group" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;float:left;"> | |
961 | + <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span> | |
962 | + <input type="text" class="form-control outerBackgroundColor" data-control="saturation" style="display:none;" value="#0088cc"> | |
963 | + </div> | |
964 | + | |
965 | + | |
966 | + </label> | |
967 | + </div> | |
968 | + </div> | |
969 | + <div class="col-sm-6 no-padding marginTop10 enableDisableOpacity"> | |
970 | + <div class="row"> | |
971 | + <label class="pull-left" style="font-weight:normal;">Scale</label> | |
972 | + <div id="edit-slider-3" class="pull-left pl-12" style="width:62%; margin-left:3%; margin-top:2%;"> | |
973 | + <div id="slider-range-min-3"></div> | |
974 | + </div> | |
975 | + </div> | |
976 | + | |
977 | + <div class="row"> | |
978 | + <label class="pull-left" style="font-weight:normal;">Opacity</label> | |
979 | + <div id="edit-slider-4" class="pull-left pl-12" style="width:53%; margin-left:3%; margin-top:2%;"> | |
980 | + <div id="slider-range-min-4"></div> | |
981 | + </div> | |
982 | + </div> | |
983 | + | |
984 | + <div class="clearfix"></div> | |
985 | + | |
986 | + | |
987 | + </div> | |
988 | + </div> | |
989 | + | |
990 | + </div> | |
991 | + </div> | |
992 | + <div class="marginTopBtm10"> | |
993 | + <div class="well well-sm no-margin-btm"> | |
994 | + <div class="row"> | |
995 | + <div class="col-sm-12"> | |
996 | + <div class="checkbox no-margin"> | |
997 | + <label> | |
998 | + <input id="Outline-Option" onclick="enableDisableOutline()" type="checkbox" checked> Outline Option | |
999 | + </label> | |
1000 | + </div> | |
1001 | + </div> | |
1002 | + <div class="col-sm-6 setEnableDisableForEditShapeStyle"> | |
1003 | + <label class="marginTop5"> | |
1004 | + <span style="font-weight: normal; float: left; padding-top: 5px; padding-right: 5px;">Color</span> | |
1005 | + <div class="form-group" id="outlineColor" style="display:inline-flex;vertical-align:top;cursor:pointer;margin-right:36px;float:left;"> | |
1006 | + | |
1007 | + <input type="text" class="form-control borderColorCanvasPreview" data-control="saturation" style="display:none;" value="#0088cc"> | |
1008 | + </div> | |
1009 | + | |
1010 | + | |
1011 | + </label> | |
1012 | + </div> | |
1013 | + | |
1014 | + <div class="col-sm-6 setEnableDisableForEditShapeStyle"> | |
1015 | + <div class="form-horizontal"> | |
1016 | + <div class="form-group"> | |
1017 | + <label class="col-sm-3 control-label" style=" font-weight:normal; padding-top:9px;">Size</label> | |
1018 | + <div class="col-sm-9 marginTop5"> | |
1019 | + <select id="borderWidthCanvasElement" class="form-control input-sm"> | |
1020 | + <option value="1">1</option> | |
1021 | + <option value="2">2</option> | |
1022 | + <option value="3">3</option> | |
1023 | + <option value="4">4</option> | |
1024 | + <option value="5">5</option> | |
1025 | + </select> | |
1026 | + </div> | |
1027 | + </div> | |
1028 | + </div> | |
1029 | + </div> | |
1030 | + | |
1031 | + </div> | |
1032 | + </div> | |
1033 | + </div> | |
1034 | + | |
1035 | + <div class="marginTopBtm10"> | |
1036 | + | |
1037 | + <div class="well well-sm no-margin-btm blankshapediv"> | |
1038 | + <div class="outlinediv" id="outlinedivId" style="border: 1px solid #000000;"> | |
1039 | + <div id="imgOpacity" style="background-color: #ffffff" class="fullcolordiv imgopacity"> | |
1040 | + </div> | |
1041 | + </div> | |
1042 | + </div> | |
1043 | + | |
1044 | + </div> | |
1045 | + </div> | |
1046 | + <div class="modal-footer"> | |
1047 | + <button id="btnShapeStyle" type="button" class="btn btn-primary btn-sm" ng-click="setPropertiesForShapes('imgOpacity')"> | |
1048 | + OK | |
1049 | + </button> | |
1050 | + <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal" ng-click="disableAnnotationToolBar()">Cancel</button> | |
1051 | + </div> | |
1052 | + </form> | |
1053 | + </div> | |
1054 | + </div> | |
1055 | + | |
1056 | + <!--Export Image Modal--> | |
1057 | + <div class="modal fade export-image ui-draggable in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" | |
1058 | + style="z-index: 1200002;"> | |
1059 | + <div class="modal-dialog modal-sm" role="document"> | |
1060 | + <div class="modal-content"> | |
1061 | + <div class="modal-header annotation-modal-header ui-draggable-handle"> | |
1062 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
1063 | + <h4 class="modal-title" id="">Save As</h4> | |
1064 | + </div> | |
1065 | + <div class="modal-body"> | |
1066 | + <div class="row paddTopbtm15"> | |
1067 | + <div class="col-sm-12"> | |
1068 | + <div class="form-group"> | |
1069 | + <label for="filename">Filename:</label> | |
1070 | + <div class="input-group"> | |
1071 | + <input type="text" class="form-control" id="filename" placeholder="" ng-model="filename"> | |
1072 | + <div class="input-group-addon">.jpg</div> | |
1073 | + </div> | |
1074 | + </div> | |
1075 | + </div> | |
1076 | + </div> | |
1077 | + | |
1078 | + </div> | |
1079 | + <div class="modal-footer"> | |
1080 | + <div class="row"> | |
1081 | + <input type="file" id="file1" style="display:none"> | |
1082 | + <!--<a href="data:application/xml;charset=utf-8,your code here" download="filename.html">Save</a--> | |
1083 | + <div class="col-sm-12"><button id="btnSaveEI" class="btn btn-primary" data-dismiss="modal" type="button">Ok</button></div> <!--onclick="makeScreenshot();"--><!--ng-click="dialogs.saveAs()"--><!--ng-click="ShowAlert()"--> | |
1084 | + </div> | |
1085 | + </div> | |
1086 | + | |
1087 | + </div> | |
1088 | + </div> | |
1089 | + </div> | |
1090 | + <div class="modal fade export-image-ipad ui-draggable in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" | |
1091 | + style="z-index: 1200002;"> | |
1092 | + <div class="modal-dialog modal-sm" role="document"> | |
1093 | + <div class="modal-content"> | |
1094 | + <div class="modal-header annotation-modal-header ui-draggable-handle"> | |
1095 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
1096 | + <h4 class="modal-title" id="">Download Export Image</h4> | |
1097 | + </div> | |
1098 | + <div class="modal-body"> | |
1099 | + <div class="row paddTopbtm15"> | |
1100 | + <div class="col-sm-12"> | |
1101 | + <div class="form-group"> | |
1102 | + <label for="filename">Exported image open in next Teb. Please download it</label> | |
1103 | + | |
1104 | + </div> | |
1105 | + </div> | |
1106 | + </div> | |
1107 | + | |
1108 | + </div> | |
1109 | + <div class="modal-footer"> | |
1110 | + <div class="row"> | |
1111 | + <input type="file" id="file1" style="display:none"> | |
1112 | + <!--<a href="data:application/xml;charset=utf-8,your code here" download="filename.html">Save</a--> | |
1113 | + <div class="col-sm-12"><button id="btnPrintPreview" class="btn btn-primary" data-dismiss="modal" type="button">Ok</button></div> <!--onclick="makeScreenshot();"--><!--ng-click="dialogs.saveAs()"--><!--ng-click="ShowAlert()"--> | |
1114 | + </div> | |
1115 | + </div> | |
1116 | + | |
1117 | + </div> | |
1118 | + </div> | |
1119 | + </div> | |
1120 | + <!--Print Active Viewer--> | |
1121 | + <div class="print-box-active portrait-box-active" id="printBox" style="display: none;"> | |
1122 | + <div id="printDivContent"> | |
1123 | + <div class=""> | |
1124 | + <div class="print-col-sm-4" style="top: 10px; position: absolute; left: 10px;"> | |
1125 | + <span class="pull-left font12 print-span-font" id="spnModule"></span> | |
1126 | + </div> | |
1127 | + <div class="print-col-sm-4" style="top: 10px; position: absolute; right: 10px;"> | |
1128 | + <span class="pull-right font12 print-span-font" id="spnBodyViewTitle"></span> | |
1129 | + </div> | |
1130 | + </div> | |
1131 | + <div class=" mar-top-25" align="center" id="dvPortrait" style="text-align: center;"> | |
1132 | + <img src="" alt="" class="logo-image" id="snipImage" style="width: 100%;" /> | |
1133 | + </div> | |
1134 | + <div> | |
1135 | + <div class="print-col-sm-4" style="position: absolute; bottom: 20px;"> | |
1136 | + <span class="pull-left marginTop10 font12 print-span-font">Copyright {{current_year}} A.D.A.M., Inc. All Rights Reserved</span> | |
1137 | + </div> | |
1138 | + <div class="print-col-sm-4" style="position: absolute; bottom: 20px; right: 10px;"> | |
1139 | + <span class="pull-right print-marginTop10 bgnone no-margin"> | |
1140 | + <img class="logo-image" src="content/images/adam-logo-small.png" alt=""> | |
1141 | + </span> | |
1142 | + </div> | |
1143 | + </div> | |
1144 | + <div class="clearfix"></div> | |
1145 | + </div> | |
1146 | + </div> | |
1147 | + | |
1148 | + <!--Print Preview Modal--> | |
1149 | + <div id="dvPrintPreview" style="display: none;"></div> | |
1150 | + </div> | |
1151 | + </div> | |
1152 | + <!--RESET PASSWORD FORM--> | |
1153 | + <div id="passwordReset" ng-show="isVisibleResetPass"> | |
1154 | + <table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> | |
1155 | + <tbody> | |
1156 | + <tr> | |
1157 | + <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> | |
1158 | + </tr> | |
1159 | + <tr> | |
1160 | + <td align="center" valign="top" bgcolor="#808d43" style="padding:20px; overflow:hidden;"> | |
1161 | + <form name="resetPasswordForm" novalidate> | |
1162 | + <table width="100%" border="0" cellspacing="0" cellpadding="0" ng-controller="HomeController"> | |
1163 | + <tbody> | |
1164 | + | |
1165 | + <tr> | |
1166 | + <td style=" font-size:26px; font-weight:bold; color:#fff; font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif"><strong>Reset Password</strong></td> | |
1167 | + </tr> | |
1168 | + <tr> | |
1169 | + <td> </td> | |
1170 | + </tr> | |
1171 | + <tr> | |
1172 | + <td style="font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; color:#fff;">New Password </td> | |
1173 | + </tr> | |
1174 | + <tr> | |
1175 | + <td> | |
1176 | + <input class="form-control" name="newPassword" value="*****" type="password" style="padding:3px 5px; height:25px; width:98%;" ng-model="userInfo.newPassword" ng-minlength="8" ng-maxlength="20" required> | |
1177 | + <span style="color: maroon; font-weight:bold" ng-show="resetPasswordForm.newPassword.$touched && resetPasswordForm.newPassword.$invalid && resetPasswordForm.newPassword.$pristine">The password is required.</span> | |
1178 | + <p ng-show="resetPasswordForm.newPassword.$error.minlength" style="font-weight: bold; color: maroon;">Password length must be between 8 - 20 characters.</p> | |
1179 | + <p ng-show="resetPasswordForm.newPassword.$error.maxlength" style="font-weight: bold; color: maroon;">Password length must be between 8 - 20 characters.</p> | |
1180 | + </td> | |
1181 | + </tr> | |
1182 | + <tr> | |
1183 | + <td> </td> | |
1184 | + </tr> | |
1185 | + <tr> | |
1186 | + <td style="font-family:Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; color:#fff;">Confirm Password </td> | |
1187 | + </tr> | |
1188 | + | |
1189 | + <tr> | |
1190 | + <td> | |
1191 | + <input class="form-control" name="confirmPassword" value="*****" type="password" style="padding:3px 5px; height:25px; width:98%;" ng-model="userInfo.confirmPassword" required> | |
1192 | + <span style="color: maroon; font-weight: bold; " ng-show="resetPasswordForm.confirmPassword.$touched && resetPasswordForm.confirmPassword.$invalid">Confirm password is required.</span> | |
1193 | + <span style="color: maroon; font-weight: bold; " ng-if="resetPasswordForm.newPassword !== resetPasswordForm.confirmPassword">{{passwordMismatchMessage}}</span> | |
1194 | + </td> | |
1195 | + </tr> | |
1196 | + <tr> | |
1197 | + <td> </td> | |
1198 | + </tr> | |
1199 | + <tr> | |
1200 | + <td> | |
1201 | + <button type="submit" ng-disabled="resetPasswordForm.$invalid" ng-click="ResetUserPassword(userInfo)" style="background: #0072a7; border: 1px solid #005076; 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> <!--ng-submit="submitForm(resetPwdForm.$valid)"--> <!--ng-click="ResetUserPassword(userInfo)"--> | |
1202 | + </td> | |
1203 | + </tr> | |
1204 | + </tbody> | |
1205 | + </table> | |
1206 | + </form> | |
1207 | + </tr> | |
1208 | + | |
1209 | + | |
1210 | + </tbody> | |
1211 | + </table> | |
1212 | + </div> | |
1213 | + | |
1214 | + <div class="modal fade" id="messageModal" role="dialog"> | |
1215 | + <div class="modal-dialog"> | |
1216 | + | |
1217 | + <div class="modal-content"> | |
1218 | + <div class="modal-header"> | |
1219 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
1220 | + </div> | |
1221 | + <div class="modal-title"></div> | |
1222 | + <div class="modal-body">{{errorMessage}}</div> | |
1223 | + <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button></div> | |
1224 | + </div> | |
1225 | + </div> | |
1226 | + </div> | |
1227 | + | |
1228 | + <!--Admin Form (Under Process)--> | |
1229 | + | |
1230 | + | |
1231 | + <!--Available modules list modal after login--> | |
1232 | + <div class=" fade ui-draggable in" id="dvUserModulesInfo" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" style="padding-left: 17px; display: none; left: 0px !important; z-index: 111111; position: fixed; top: 0; overflow-x: hidden; overflow-y: auto; right: 0px; bottom: 0px; "> | |
1233 | + <div class="modal-dialog" role="document"> | |
1234 | + <div class="modal-content"> | |
1235 | + <div class="modal-header ui-draggable-handle " style="color: #ffffff; background-color: #0095da; border-color: #007ab3;cursor:default;"> | |
1236 | + <!--color: #e5e5e5;--> | |
1237 | + <!--bg-primary--> | |
1238 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
1239 | + <h4 class="text-left lhgt19 padd5" style="color:#fff; text-align:left;">Coming Soon...</h4> | |
1240 | + </div> | |
1241 | + | |
1242 | + <div class="modal-body"> | |
1243 | + <div class="panel-body"> | |
1244 | + <!-- form --> | |
1245 | + <form class="form-horizontal"> | |
1246 | + | |
1247 | + <!--<hr style="border: 1px solid;"/>--> | |
1248 | + <!--<hr style="border: 1px solid;" />--> | |
1249 | + <div> | |
1250 | + <div class="form-group" id="moduleDiv7"> | |
1251 | + <div class="col-sm-12"><i>• Curriculum Builder</i></div> <!--(To be available by 09/25/2017)--> | |
1252 | + </div> | |
1253 | + <div class="form-group" id="moduleDiv8"> | |
1254 | + <div class="col-sm-8"><i>• Anatomy Test</i></div> <!--(To be available by 08/28/2017)--> | |
1255 | + </div> | |
1256 | + <div class="form-group" id="moduleDiv13"> | |
1257 | + <div class="col-sm-8">• A.D.A.M Images</div> | |
1258 | + </div> | |
1259 | + </div> | |
1260 | + <div class="form-group"> | |
1261 | + <div style="text-align: center"> | |
1262 | + <button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" data-dismiss="modal"><i class="fa fa-check"></i> OK</button> | |
1263 | + </div> | |
1264 | + </div> | |
1265 | + </form> | |
1266 | + </div> | |
1267 | + </div> | |
1268 | + | |
1269 | + </div> | |
1270 | + </div> | |
1271 | + </div> | |
1272 | + | |
1273 | + <!-- Terms & Condition Modal --> | |
1274 | + <div class=" fade ui-draggable in" id="dvTermCondition" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" style="padding-left: 17px; display: none; left: 0px !important; z-index: 111111; position: fixed; top: 0; overflow-x: hidden; overflow-y: auto; right: 0px; bottom: 0px; "> | |
1275 | + <div class="modal-dialog" role="document"> | |
1276 | + <div class="modal-content"> | |
1277 | + <div class="modal-header ui-draggable-handle " style="color: #ffffff; background-color: #0095da; border-color: #007ab3;cursor:default;"> | |
1278 | + <!--color: #e5e5e5;--> | |
1279 | + <h6 class="text-left lhgt19 padd5" style="color:#fff; text-align:left;">Terms and Conditions</h6> | |
1280 | + </div> | |
1281 | + | |
1282 | + <div class="modal-body" style="width: 597px; height: 400px; overflow-x: auto;"> | |
1283 | + <div class="panel-body"> | |
1284 | + <div id="dvTerms" style="font-size: 13px;"></div> | |
1285 | + </div> | |
1286 | + </div> | |
1287 | + <div class="modal-footer ui-draggable-handle " style="color: #ffffff; cursor:default;"> | |
1288 | + <!--background-color: #0095da; border-color: #007ab3;--> | |
1289 | + <!-- form --> | |
1290 | + <form class="form-horizontal"> | |
1291 | + <!--<div class="form-group">--> | |
1292 | + <div style="clear: left; float: left; color: #000;"><input type="checkbox" id="chkAccept" ng-model="checked" style="vertical-align: top;" /> I accept</div> | |
1293 | + <div style="float: right;"><button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal" ng-disabled="!checked" data-dismiss="modal" ng-click="UpdateLicenseTermStatus()"><i class="fa fa-check"></i> Next</button></div> | |
1294 | + <!--</div>--> | |
1295 | + </form> | |
1296 | + </div> | |
1297 | + </div> | |
1298 | + </div> | |
1299 | + </div> | |
1300 | + <script> | |
1301 | + function enableDisableFillOption() { | |
1302 | + if (document.getElementById('fill-option').checked) { | |
1303 | + // $('#imgOpacity').attr("background-color"); | |
1304 | + //$('#imgOpacity').css({"background-color"}) | |
1305 | + //$("#filloption1").css({ "pointer-events": "auto" }); | |
1306 | + //$("#filloption12").css({ "pointer-events": "auto" }); | |
1307 | + | |
1308 | + var x = $("#editstylebackgroundcolor span.minicolors-swatch-color").css('background-color'); | |
1309 | + $("#imgOpacity").css("background-color", x); | |
1310 | + $("#edit-slider-3").css({ "pointer-events": "auto" }); | |
1311 | + $("#edit-slider-4").css({ "pointer-events": "auto" }); | |
1312 | + $("#editstylebackgroundcolor").css({ "pointer-events": "auto" }); | |
1313 | + $("#editstyleTexture").css({ "pointer-events": "auto" }); | |
1314 | + $(".enableDisableOpacity label").css({ "cursor": "pointer" }); | |
1315 | + $(".enableDisableOpacity").css({ "opacity": "1" }) | |
1316 | + document.getElementById("filloption1").disabled = false; | |
1317 | + document.getElementById("filloption2").disabled = false; | |
1318 | + document.getElementById("filloption1").style.cursor = "default"; | |
1319 | + document.getElementById("filloption2").style.cursor = "default"; | |
1320 | + | |
1321 | + | |
1322 | + | |
1323 | + } | |
1324 | + else { | |
1325 | + $('#imgOpacity').css("background-color", "transparent"); | |
1326 | + //$("#filloption1").css({ "pointer-events": "none" }); | |
1327 | + //$("#filloption2").css({ "pointer-events": "none" }); | |
1328 | + $("#edit-slider-3").css({ "pointer-events": "none" }); | |
1329 | + $("#edit-slider-4").css({ "pointer-events": "none" }); | |
1330 | + $("#editstylebackgroundcolor").css({ "pointer-events": "none" }); | |
1331 | + $("#editstyleTexture").css({ "pointer-events": "none" }); | |
1332 | + $(".enableDisableOpacity label").css({ "cursor": "default" }); | |
1333 | + $(".enableDisableOpacity").css({ "opacity": ".5" }) | |
1334 | + document.getElementById("filloption1").disabled = true; | |
1335 | + document.getElementById("filloption2").disabled = true; | |
1336 | + document.getElementById("filloption1").style.cursor = "default"; | |
1337 | + document.getElementById("filloption2").style.cursor = "default"; | |
1338 | + | |
1339 | + | |
1340 | + | |
1341 | + } | |
1342 | + | |
1343 | + } | |
1344 | + function enableDisableOutline() { | |
1345 | + | |
1346 | + if (document.getElementById('Outline-Option').checked) { | |
1347 | + var x = $("#outlineColor span.minicolors-swatch-color").css('background-color'); | |
1348 | + $(".marginTopBtm10 div.outlinediv").css("border-color", x); | |
1349 | + // var borderWidth = $("#outlineColor span.minicolors-swatch-color").css('border-width'); | |
1350 | + // $("#imgOpacity").css("border-width", borderWidth); | |
1351 | + | |
1352 | + $("#borderWidthCanvasElement").css({ "pointer-events": "auto" }); | |
1353 | + $("#outlineColor").css({ "pointer-events": "auto" }); | |
1354 | + $(".setEnableDisableForEditShapeStyle").css({ "opacity": "1" }) | |
1355 | + } | |
1356 | + else { | |
1357 | + $('.marginTopBtm10 div.outlinediv').css("border-color", "transparent"); | |
1358 | + $("#borderWidthCanvasElement").css({ "pointer-events": "none" }); | |
1359 | + $("#outlineColor").css({ "pointer-events": "none" }); | |
1360 | + $(".setEnableDisableForEditShapeStyle").css({ "opacity": ".5" }) | |
1361 | + } | |
1362 | + } | |
1363 | + | |
1364 | + </script> | |
1365 | + | |
1366 | + <script> | |
1367 | + function Brushsize(object) { | |
1368 | + | |
1369 | + object.value = object.value.replace(/[^0-9]/g, ''); | |
1370 | + if (parseInt(object.value) <= 0) { | |
1371 | + object.value = 1; | |
1372 | + } | |
1373 | + if (parseInt(object.value) >= 1 && parseInt(object.value) <= 60) { | |
1374 | + object.value = object.value; | |
1375 | + } | |
1376 | + if (parseInt(object.value) > 60) { | |
1377 | + object.value = object.value.slice(0, 1); | |
1378 | + | |
1379 | + } | |
1380 | + | |
1381 | + } | |
1382 | + </script> | |
1383 | + | |
1384 | + | |
1385 | + <!--<script src="libs/jquery/1.11.3/jquery.min.js"></script>--> | |
1386 | + <script src="libs/jquery/2.1.3/jquery.min.js"></script> | |
1387 | + <script src="libs/jquery/1.11.4/jquery-ui.js"></script> | |
1388 | + | |
1389 | + <script src="libs/jquery/jquery_plugin/jquery.mCustomScrollbar.concat.min.js"></script> | |
1390 | + <script src="themes/default/scripts/bootstrap/3.3.5/bootstrap.js"></script> | |
1391 | + <script src="libs/angular/1.4.9/angular.min.js"></script> | |
1392 | + <script src="libs/angular/1.4.9/angular-route.min.js"></script> | |
1393 | + <script src="libs/angular/1.4.9/angular-sanitize.min.js"></script> | |
1394 | + <script src="libs/angular/1.4.9/ngStorage.js"></script> | |
1395 | + <script src="content/js/custom/custom.js"></script> | |
1396 | + <!--Annotation Toolbar : jcanvas Library--> | |
1397 | + | |
1398 | + <script src="libs/jcanvas/jcanvas.min.js"></script> | |
1399 | + <script src="libs/jcanvas/jcanvas.handle.min.js"></script> | |
1400 | + | |
1401 | + <script src="libs/jinqJs.js"></script> | |
1402 | + <script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js"></script> | |
1403 | + <script src="libs/video_4_12_11/video_4_12_11.js"></script> | |
1404 | + <script src="libs/jquery/jquery_plugin/SpeechBubble/bubble.js"></script> | |
1405 | + <!--<script src="libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.min.js"></script>--> | |
1406 | + <script src="app/main/AIA.js"></script> | |
1407 | + <script src="app/main/Link.js"></script> | |
1408 | + <script src="content/scripts/js/custom/custom.js"></script> | |
1409 | + <script src="app/filters/ColorMatrixFilter.js"></script> | |
1410 | + <script src="app/utility/Matrix.js"></script> | |
1411 | + <script src="app/utility/Point.js"></script> | |
1412 | + <script src="app/utility/Rectangle.js"></script> | |
1413 | + <script src="app/utility/BitmapData.js"></script> | |
1414 | + <script src="app/utility/Paint.js"></script> | |
1415 | + <script src="app/controllers/DAController.js"></script> | |
1416 | + <script src="app/controllers/CIController.js"></script> | |
1417 | + <script src="app/controllers/CAController.js"></script> | |
1418 | + <script src="app/controllers/3dAController.js"></script> | |
1419 | + <script src="app/controllers/CurrBuildController.js"></script> | |
1420 | + <script src="app/controllers/AnatTestController.js"></script> | |
1421 | + <script src="app/controllers/LabExercController.js"></script> | |
1422 | + <script src="app/controllers/ADAMImgController.js"></script> | |
1423 | + <script src="app/controllers/AODController.js"></script> | |
1424 | + <script src="app/controllers/HomeController.js"></script> | |
1425 | + <script src="app/controllers/LinkController.js"></script> | |
1426 | + <script src="app/services/AuthenticationService.js"></script> | |
1427 | + <script src="app/services/ConfigurationService.js"></script> | |
1428 | + <script src="app/services/AdminService.js"></script> | |
1429 | + <script src="app/controllers/TileViewListController.js"></script> | |
1430 | + | |
1431 | + <script src="app/services/ModuleService.js"></script> | |
1432 | + | |
1433 | + <script src="app/services/DataService.js"></script> | |
1434 | + <script src="app/services/TermService.js"></script> | |
1435 | + <script src="libs/jquery/jquery_plugin/jqueryui.js"></script> | |
1436 | + <script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script> | |
1437 | + <script src="../app/services/LabExerciseService.js"></script> | |
1438 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script> | |
1439 | + | |
1440 | + <script src="libs/jquery/jquery_plugin/color-picker/jquery.minicolors.min.js"></script> | |
1441 | + <!--<script src="libs/colorpicker/jquery.minicolors.min.js"></script>--> | |
1442 | + <!--<script src="libs/color-picker/jquery.minicolors.min.js"></script>--> | |
1443 | + | |
1444 | + <script src="libs/sketch.js"></script> | |
1445 | + | |
1446 | + <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>--> | |
1447 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script> | |
1448 | + <script src="libs/html2canvas.js"></script> | |
1449 | + <script src="libs/FileSaver.js"></script> | |
1450 | + <script src="app/services/LabExerciseService.js"></script> | |
1451 | + <!--<script type="text/javascript"> | |
1452 | + $(function () { | |
1453 | + $('#canvas').sketch(); | |
1454 | + }); | |
1455 | + </script>--> | |
1456 | + | |
1457 | + <script> | |
1458 | + | |
1459 | + $(function () { | |
1460 | + $('[data-toggle="tooltip"]').tooltip(); | |
1461 | + }) | |
1462 | + | |
1463 | + </script> | |
1464 | + <script> | |
1465 | + (function ($) { | |
1466 | + $(window).load(function () { | |
1467 | + $(".sidebar").mCustomScrollbar({ | |
1468 | + autoHideScrollbar: true, | |
1469 | + //theme:"rounded" | |
1470 | + }); | |
1471 | + | |
1472 | + }); | |
1473 | + })(jQuery); | |
1474 | + </script> | |
1475 | + <script> | |
1476 | + $(function () { | |
1477 | + $(".modal").draggable(); | |
1478 | + $(".annotationTollbar").draggable(); | |
1479 | + $(".modeleditstyle").draggable(); | |
1480 | + $("#annotationTextModal").draggable(); | |
1481 | + $("#modal-settings").draggable(); | |
1482 | + }); | |
1483 | + </script> | |
1484 | + | |
1485 | + | |
1486 | + | |
1487 | + | |
1488 | + <script type="text/javascript"> | |
1489 | + $(function () { | |
1490 | + | |
1491 | + $("#text-left").on('click', function () { | |
1492 | + | |
1493 | + //Annotation: Formatting buttons color is not change when select. | |
1494 | + | |
1495 | + $("#text-center").removeClass("ActiveFormattingButtonClass"); | |
1496 | + $("#text-right").removeClass("ActiveFormattingButtonClass"); | |
1497 | + $("#text-left").addClass("ActiveFormattingButtonClass"); | |
1498 | + $("#text_area").css("text-align", "left"); | |
1499 | + | |
1500 | + | |
1501 | + }); | |
1502 | + | |
1503 | + | |
1504 | + $("#text-center").on('click', function () { | |
1505 | + | |
1506 | + //Annotation: Formatting buttons color is not change when select. | |
1507 | + | |
1508 | + $("#text-right").removeClass("ActiveFormattingButtonClass"); | |
1509 | + $("#text-left").removeClass("ActiveFormattingButtonClass"); | |
1510 | + $("#text-center").addClass("ActiveFormattingButtonClass"); | |
1511 | + $("#text_area").css("text-align", "center"); | |
1512 | + | |
1513 | + | |
1514 | + }); | |
1515 | + | |
1516 | + | |
1517 | + $("#text-right").on('click', function () { | |
1518 | + | |
1519 | + //Annotation: Formatting buttons color is not change when select. | |
1520 | + | |
1521 | + $("#text-left").removeClass("ActiveFormattingButtonClass"); | |
1522 | + $("#text-center").removeClass("ActiveFormattingButtonClass"); | |
1523 | + $("#text-right").addClass("ActiveFormattingButtonClass"); | |
1524 | + $("#text_area").css("text-align", "right"); | |
1525 | + }); | |
1526 | + | |
1527 | + | |
1528 | + $("#text-bold").on('click', function () { | |
1529 | + | |
1530 | + //Annotation: Formatting buttons color is not change when select. | |
1531 | + $("#text-bold").toggleClass("ActiveFormattingButtonClass"); | |
1532 | + | |
1533 | + if ($("#text-bold").hasClass("ActiveFormattingButtonClass")) { | |
1534 | + $("#text_area").css("font-weight", "bold"); | |
1535 | + } | |
1536 | + else { | |
1537 | + $("#text_area").css("font-weight", "normal"); | |
1538 | + } | |
1539 | + | |
1540 | + | |
1541 | + }); | |
1542 | + | |
1543 | + $("#text-italic").on('click', function () { | |
1544 | + | |
1545 | + //Annotation: Formatting buttons color is not change when select. | |
1546 | + $("#text-italic").toggleClass("ActiveFormattingButtonClass"); | |
1547 | + if ($("#text-italic").hasClass("ActiveFormattingButtonClass")) { | |
1548 | + $("#text_area").css("font-style", "italic"); | |
1549 | + } | |
1550 | + else { | |
1551 | + $("#text_area").css("font-style", "normal"); | |
1552 | + } | |
1553 | + }); | |
1554 | + | |
1555 | + $("#text-underline").on('click', function () { | |
1556 | + | |
1557 | + //Annotation: Formatting buttons color is not change when select. | |
1558 | + $("#text-underline").toggleClass("ActiveFormattingButtonClass"); | |
1559 | + | |
1560 | + if ($("#text-underline").hasClass("ActiveFormattingButtonClass")) { | |
1561 | + $("#text_area").css("text-decoration", "underline"); | |
1562 | + } | |
1563 | + else { | |
1564 | + $("#text_area").css("text-decoration", "none"); | |
1565 | + } | |
1566 | + | |
1567 | + | |
1568 | + }); | |
1569 | + | |
1570 | + | |
1571 | + $("#selected-font-size").change(function () { | |
1572 | + | |
1573 | + $("#text_area").css("font-size", $(this).val() + "px"); | |
1574 | + }); | |
1575 | + | |
1576 | + $("#selected-font-family").change(function () { | |
1577 | + | |
1578 | + $("#text_area").css("font-family", $(this).val()); | |
1579 | + | |
1580 | + }); | |
1581 | + | |
1582 | + | |
1583 | + }); | |
1584 | + | |
1585 | + | |
1586 | + | |
1587 | + </script> | |
1588 | + | |
1589 | + | |
1590 | + <script> | |
1591 | + $(document).ready(function () { | |
1592 | + // $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").addClass("ActiveDefaultColorAnnotation"); | |
1593 | + | |
1594 | + var borderWidth = 1; | |
1595 | + var borderColor = "#000"; | |
1596 | + $("#borderWidthCanvasElement").change(function () { | |
1597 | + borderWidth = $(this).val(); | |
1598 | + borderColor = $('#outlineColor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color"); | |
1599 | + | |
1600 | + if (borderColor != null) { | |
1601 | + document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor; | |
1602 | + //$("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid" + borderColor); | |
1603 | + } else { | |
1604 | + | |
1605 | + // $("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid"); | |
1606 | + document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor; | |
1607 | + | |
1608 | + } | |
1609 | + }); | |
1610 | + | |
1611 | + | |
1612 | + | |
1613 | + $('.borderColorCanvasPreview').each(function () { | |
1614 | + // $("#font-color .minicolors .minicolors-swatch .minicolors-swatch-color").addClass("ActiveDefaultColorAnnotation"); | |
1615 | + $(this).minicolors({ | |
1616 | + control: $(this).attr('data-control') || 'hue', | |
1617 | + defaultValue: $(this).attr('data-defaultValue') || '', | |
1618 | + format: $(this).attr('data-format') || 'hex', | |
1619 | + keywords: $(this).attr('data-keywords') || '', | |
1620 | + inline: $(this).attr('data-inline') === 'true', | |
1621 | + letterCase: $(this).attr('data-letterCase') || 'lowercase', | |
1622 | + opacity: $(this).attr('data-opacity'), | |
1623 | + position: $(this).attr('data-position') || 'bottom left', | |
1624 | + swatches: $(this).attr('data-swatches') ? $(this).attr('data-swatches').split('|') : [], | |
1625 | + change: function (value, opacity) { | |
1626 | + if (!value) return; | |
1627 | + if (opacity) value += ', ' + opacity; | |
1628 | + if (typeof console === 'object') { | |
1629 | + console.log(value); | |
1630 | + | |
1631 | + borderColor = value; | |
1632 | + //$("#imgOpacity").parent().css("border", borderWidth + "px" + " " + "solid" + borderColor); | |
1633 | + document.getElementById("imgOpacity").parentNode.style.border = borderWidth + "px" + " " + "solid" + " " + borderColor; | |
1634 | + | |
1635 | + | |
1636 | + } | |
1637 | + }, | |
1638 | + theme: 'bootstrap' | |
1639 | + }); | |
1640 | + | |
1641 | + | |
1642 | + }); | |
1643 | + | |
1644 | + | |
1645 | + $('.outerBackgroundColor').each(function () { | |
1646 | + | |
1647 | + $(this).minicolors({ | |
1648 | + control: $(this).attr('data-control') || 'hue', | |
1649 | + defaultValue: $(this).attr('data-defaultValue') || '', | |
1650 | + format: $(this).attr('data-format') || 'hex', | |
1651 | + keywords: $(this).attr('data-keywords') || '', | |
1652 | + inline: $(this).attr('data-inline') === 'true', | |
1653 | + letterCase: $(this).attr('data-letterCase') || 'lowercase', | |
1654 | + opacity: $(this).attr('data-opacity'), | |
1655 | + position: $(this).attr('data-position') || 'bottom left', | |
1656 | + swatches: $(this).attr('data-swatches') ? $(this).attr('data-swatches').split('|') : [], | |
1657 | + change: function (value, opacity) { | |
1658 | + if (!value) return; | |
1659 | + if (opacity) value += ', ' + opacity; | |
1660 | + if (typeof console === 'object') { | |
1661 | + console.log(value); | |
1662 | + $("#imgOpacity").css("background-color", value); | |
1663 | + | |
1664 | + } | |
1665 | + }, | |
1666 | + theme: 'bootstrap' | |
1667 | + }); | |
1668 | + | |
1669 | + }); | |
1670 | + | |
1671 | + | |
1672 | + }); | |
1673 | + </script> | |
1674 | + <script> | |
1675 | + $(function () { | |
1676 | + function onBrushSizeChange() { | |
1677 | + $('.btnCursor').addClass('activebtncolor'); | |
1678 | + $(".btn-annotation").removeClass("activebtncolor"); | |
1679 | + $(".btn-annotation-erase").removeClass("activebtncolor"); | |
1680 | + $(".btn-annotation-erase").removeClass("activebtncolor"); | |
1681 | + $(".annotationpaintbrushsize").removeClass("activebtncolor"); | |
1682 | + var x = $('#canvasPaint').css("z-index"); | |
1683 | + | |
1684 | + var y = $('#canvas').css("z-index"); | |
1685 | + if (x > y) { | |
1686 | + y = parseInt(x) + 1; | |
1687 | + } else { | |
1688 | + y = parseInt(y) + 1; | |
1689 | + } | |
1690 | + $('#canvas').css("z-index", y); | |
1691 | + } | |
1692 | + | |
1693 | + $("#slider-range-min-2").slider({ | |
1694 | + range: "min", | |
1695 | + min: 1, | |
1696 | + max: 60, | |
1697 | + value: 1, | |
1698 | + slide: function (event, ui) { | |
1699 | + | |
1700 | + onBrushSizeChange(); | |
1701 | + | |
1702 | + | |
1703 | + | |
1704 | + $("#btnBrushSize").val(ui.value); | |
1705 | + | |
1706 | + $("#annotationpaintbrushsize").css({ "pointer-events": "auto", "opacity": "1" }); | |
1707 | + $("#annotationpainteraser").css({ "pointer-events": "auto", "opacity": "1" }); | |
1708 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": "1" }); | |
1709 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": "1" }); | |
1710 | + | |
1711 | + }, | |
1712 | + stop: function (event, ui) { | |
1713 | + | |
1714 | + $("#paintLine").attr("data-size", ui.value); | |
1715 | + | |
1716 | + } | |
1717 | + | |
1718 | + }); | |
1719 | + | |
1720 | + | |
1721 | + $("#btnBrushSize").keydown(function () { | |
1722 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": "1" }); | |
1723 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": "1" }); | |
1724 | + onBrushSizeChange(); | |
1725 | + var brushSizevalue = this.value; | |
1726 | + | |
1727 | + $("#slider-range-min-2").slider("value", parseInt(brushSizevalue)); | |
1728 | + }); | |
1729 | + $("#btnBrushSize").keyup(function () { | |
1730 | + onBrushSizeChange(); | |
1731 | + var brushSizevalue = this.value; | |
1732 | + if (brushSizevalue == "") { | |
1733 | + | |
1734 | + $("#slider-range-min-2").slider("value", 0); | |
1735 | + | |
1736 | + $("#annotationpaintbrushsize").css({ "pointer-events": "none", "opacity": ".5" }); | |
1737 | + $("#annotationpainteraser").css({ "pointer-events": "none", "opacity": ".5" }); | |
1738 | + } | |
1739 | + else { | |
1740 | + $("#slider-range-min-2").slider("value", parseInt(brushSizevalue)); | |
1741 | + $("#annotationpaintbrushsize").css({ "pointer-events": "auto", "opacity": "1" }); | |
1742 | + $("#annotationpainteraser").css({ "pointer-events": "auto", "opacity": "1" }); | |
1743 | + } | |
1744 | + // $("#slider-range-min-2").slider("value", parseInt(brushSizevalue)); | |
1745 | + }); | |
1746 | + $("#btnBrushSizeIncrement").click(function () { | |
1747 | + if ($("#annotationpaintbrushsize").css('pointer-events') == 'none') { | |
1748 | + $("#annotationpaintbrushsize").css({ "pointer-events": "auto", "opacity": "1" }); | |
1749 | + $("#annotationpainteraser").css({ "pointer-events": "auto", "opacity": "1" }); | |
1750 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": "1" }); | |
1751 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": "1" }); | |
1752 | + } | |
1753 | + | |
1754 | + onBrushSizeChange(); | |
1755 | + var brushIncrementVar = $("#btnBrushSize").val(); | |
1756 | + if (brushIncrementVar >= 60) { | |
1757 | + $("#slider-range-min-2").slider("value", 60); | |
1758 | + } | |
1759 | + else if (brushIncrementVar == "") { | |
1760 | + var brushIncrementedValue = 1; | |
1761 | + $("#btnBrushSize").val(brushIncrementedValue); | |
1762 | + $("#slider-range-min-2").slider("value", parseInt(brushIncrementedValue)); | |
1763 | + } | |
1764 | + else { | |
1765 | + | |
1766 | + var brushIncrementedValue = parseInt(brushIncrementVar) + 1; | |
1767 | + | |
1768 | + $("#btnBrushSize").val(brushIncrementedValue); | |
1769 | + $("#slider-range-min-2").slider("value", parseInt(brushIncrementedValue)); | |
1770 | + } | |
1771 | + }); | |
1772 | + $("#btnBrushSizeDecrease").click(function () { | |
1773 | + | |
1774 | + onBrushSizeChange(); | |
1775 | + var brushDecreaseVar = $("#btnBrushSize").val(); | |
1776 | + if (brushDecreaseVar == "") { | |
1777 | + | |
1778 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "none", "opacity": ".5" }); | |
1779 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "none", "opacity": ".5" }); | |
1780 | + | |
1781 | + } | |
1782 | + else if (brushDecreaseVar <= 1) { | |
1783 | + $("#slider-range-min-2").slider("value", 1); | |
1784 | + if ($("#annotationpaintbrushsize").css('pointer-events') == 'none') { | |
1785 | + $("#annotationpaintbrushsize").css({ "pointer-events": "auto", "opacity": "1" }); | |
1786 | + $("#annotationpainteraser").css({ "pointer-events": "auto", "opacity": "1" }); | |
1787 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": ".5" }); | |
1788 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": ".5" }); | |
1789 | + } | |
1790 | + | |
1791 | + } | |
1792 | + else { | |
1793 | + var brushDecrementedValue = parseInt(brushDecreaseVar) - 1; | |
1794 | + if ($("#annotationpaintbrushsize").css('pointer-events') == 'none') { | |
1795 | + $("#annotationpaintbrushsize").css({ "pointer-events": "auto", "opacity": "1" }); | |
1796 | + $("#annotationpainteraser").css({ "pointer-events": "auto", "opacity": "1" }); | |
1797 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": "1" }); | |
1798 | + $("#btnBrushSizeDecrease").css({ "pointer-events": "auto", "opacity": "1" }); | |
1799 | + } | |
1800 | + $("#btnBrushSize").val(brushDecrementedValue); | |
1801 | + $("#slider-range-min-2").slider("value", parseInt(brushDecrementedValue)); | |
1802 | + } | |
1803 | + }); | |
1804 | + | |
1805 | + $("#btnBrushSize").val($("#slider-range-min-2").slider("value")); | |
1806 | + }); | |
1807 | + </script> | |
1808 | + | |
1809 | + <script> | |
1810 | + $(function () { | |
1811 | + $("#slider-range-min-3").slider({ | |
1812 | + range: "min", | |
1813 | + min: 0, | |
1814 | + max: 100, | |
1815 | + value: 20, | |
1816 | + change: function (event, ui) { | |
1817 | + | |
1818 | + | |
1819 | + } | |
1820 | + }); | |
1821 | + | |
1822 | + | |
1823 | + | |
1824 | + }); | |
1825 | + </script> | |
1826 | + | |
1827 | + <script> | |
1828 | + $(function () { | |
1829 | + | |
1830 | + | |
1831 | + | |
1832 | + $("#slider-range-min-4").slider( | |
1833 | + { | |
1834 | + range: "min", | |
1835 | + value: .5, | |
1836 | + min: 0, | |
1837 | + max: 1, | |
1838 | + step: .1, | |
1839 | + slide: function (event, ui) { | |
1840 | + | |
1841 | + $(".marginTopBtm10 .imgopacity").css("opacity", ui.value); | |
1842 | + $(".marginTopBtm10 div.outlinediv").css("opacity", ui.value); | |
1843 | + } | |
1844 | + | |
1845 | + } | |
1846 | + | |
1847 | +); | |
1848 | + | |
1849 | + }); | |
1850 | + | |
1851 | + | |
1852 | + | |
1853 | + </script> | |
1854 | + | |
1855 | + | |
1856 | + | |
1857 | + <script> | |
1858 | + $(function () { | |
1859 | + | |
1860 | + | |
1861 | + $("#OnIdentify").on('mouseover', function () { | |
1862 | + $("#identify-block").addClass("custom-tooltip-annotation"); | |
1863 | + $(".custom-tooltip-annotation").css('display', 'block'); | |
1864 | + }).on('mouseout', function () { | |
1865 | + // $("#identify-block").removeClass("custom-tooltip-annotation"); | |
1866 | + $(".custom-tooltip-annotation").css('display', 'none'); | |
1867 | + $("#identify-block").removeClass("custom-tooltip-annotation"); | |
1868 | + }); | |
1869 | + | |
1870 | + | |
1871 | + $("#DrawMode").on('mouseover', function () { | |
1872 | + $("#draw-block").addClass("custom-tooltip-annotation"); | |
1873 | + $(".custom-tooltip-annotation").css('display', 'block'); | |
1874 | + | |
1875 | + }).on('mouseout', function () { | |
1876 | + | |
1877 | + $(".custom-tooltip-annotation").css('display', 'none'); | |
1878 | + $("#draw-block").removeClass("custom-tooltip-annotation"); | |
1879 | + }); | |
1880 | + | |
1881 | + //#7931 | |
1882 | + $("#OnEdtShape").on('mouseover', function () { | |
1883 | + $("#edit-block").addClass("custom-tooltip-annotation-edit"); | |
1884 | + $(".custom-tooltip-annotation-edit").css('display', 'block'); | |
1885 | + | |
1886 | + }).on('mouseout', function () { | |
1887 | + | |
1888 | + $(".custom-tooltip-annotation-edit").css('display', 'none'); | |
1889 | + $("#edit-block").removeClass("custom-tooltip-annotation-edit"); | |
1890 | + }); | |
1891 | + | |
1892 | + }); | |
1893 | + </script> | |
1894 | + <!-- Export Image Save Click--> | |
1895 | + <script> | |
1896 | + $(function () { | |
1897 | + $("#btnPrintPreview").click(function () { | |
1898 | + $("#canvasDiv").append("<img id='exportlogo' class='img-responsive' src='content/images/adam-logo-small.png'/>"); | |
1899 | + html2canvas($("#canvasDiv"), { | |
1900 | + onrendered: function (canvas) { | |
1901 | + var imgsrc = canvas.toDataURL("image/png"); | |
1902 | + console.log(imgsrc); | |
1903 | + var html = '<div id="img"><img src="' + imgsrc + '" id="newimg" style="margin:auto;top:0px;left:0px;right:0px;position:absolute;border:1px solid #ccc;" /></div>'; | |
1904 | + var w = window.open(); | |
1905 | + $(w.document.body).html(html); | |
1906 | + $("#filename").val(""); | |
1907 | + $("#exportlogo").remove(); | |
1908 | + } | |
1909 | + }); | |
1910 | + | |
1911 | + }); | |
1912 | + $("#btnSaveEI").click(function () { | |
1913 | + $("#canvasDiv").append("<img id='exportlogo' class='img-responsive' src='content/images/adam-logo-small.png'/>"); | |
1914 | + html2canvas($("#canvasDiv"), { | |
1915 | + onrendered: function (canvas) { | |
1916 | + theCanvas = canvas; | |
1917 | + var fileName = document.getElementById("filename").value + '.jpg'; | |
1918 | + if (typeof (fileName) == "undefined" || fileName == ".jpg") | |
1919 | + fileName = "Untitled.jpg" | |
1920 | + var dataURL = canvas.toDataURL("image/jpeg"); | |
1921 | + var blob = dataURItoBlob(dataURL); | |
1922 | + console.log(blob); | |
1923 | + saveAs(blob, fileName); | |
1924 | + $("#exportlogo").remove(); | |
1925 | + $("#filename").val(""); | |
1926 | + } | |
1927 | + }); | |
1928 | + $(".export-image").css("display", "none"); | |
1929 | + | |
1930 | + }); | |
1931 | + }); | |
1932 | + function dataURItoBlob(dataURI) { | |
1933 | + var byteString = atob(dataURI.split(',')[1]); | |
1934 | + var ab = new ArrayBuffer(byteString.length); | |
1935 | + var ia = new Uint8Array(ab); | |
1936 | + for (var i = 0; i < byteString.length; i++) { | |
1937 | + ia[i] = byteString.charCodeAt(i); | |
1938 | + } | |
1939 | + return new Blob([ab], { type: 'image/jpeg' }); | |
1940 | + } | |
1941 | + </script> | |
1942 | + <script> | |
1943 | + if (navigator.userAgent.match(/Android/i)) { | |
1944 | + | |
1945 | + $("#bodySystems").click(function () { | |
1946 | + | |
1947 | + $("#listManager").draggable('disable'); | |
1948 | + | |
1949 | + }).blur(function () { | |
1950 | + | |
1951 | + $("#listManager").draggable('enable'); | |
1952 | + | |
1953 | + }); | |
1954 | + | |
1955 | + | |
1956 | + | |
1957 | + $("#termList").click(function () { | |
1958 | + | |
1959 | + $("#listManager").draggable('disable'); | |
1960 | + | |
1961 | + }).blur(function () { | |
1962 | + | |
1963 | + $("#listManager").draggable('enable'); | |
1964 | + | |
1965 | + }); | |
1966 | + | |
1967 | + $("#borderWidthCanvasElement").click(function () { | |
1968 | + | |
1969 | + $("#modeleditstyle").draggable('disable'); | |
1970 | + }).blur(function () { | |
1971 | + $("#modeleditstyle").draggable('enable'); | |
1972 | + }); | |
1973 | + } | |
1974 | + function ResizeImage(sizePercent) { | |
1975 | + var autoWidth = 427; | |
1976 | + var autoHeight = 547; | |
1977 | + var dvAutoSpnFontSize = 12; | |
1978 | + var imgLogoW = 77; | |
1979 | + var fullWidth = 620; //$('#canvasDiv').width(); | |
1980 | + var fullHeight = 876; //$('#canvasDiv').height(); | |
1981 | + | |
1982 | + if (sizePercent == 0) { | |
1983 | + $('#printBoxPor').width(autoWidth).height(autoHeight);//.height(dvPrintBoxPorH * sizePercent); | |
1984 | + $('#printBoxLan').width(autoHeight).height(autoWidth); | |
1985 | + $('#dvPortrait').width(autoWidth); | |
1986 | + $('#dvLandscape').width(autoHeight); | |
1987 | + $('.span-font').attr('style', 'font-size: ' + (dvAutoSpnFontSize * .65).toFixed() + 'px'); | |
1988 | + $(".logo-image").attr('width', imgLogoW * .65); | |
1989 | + } | |
1990 | + | |
1991 | + else if (sizePercent == 1) { | |
1992 | + $('#dvPortrait').width(fullWidth * sizePercent); | |
1993 | + $('#dvLandscape').width(fullHeight * sizePercent); | |
1994 | + $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent); | |
1995 | + $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent); | |
1996 | + $('.span-font').attr('style', 'font-size: ' + dvAutoSpnFontSize + 'px'); | |
1997 | + $(".logo-image").attr('width', imgLogoW); | |
1998 | + } | |
1999 | + | |
2000 | + else { | |
2001 | + $('#dvPortrait').width(fullWidth * sizePercent); | |
2002 | + $('#dvLandscape').width(fullHeight * sizePercent); | |
2003 | + $('.span-font').attr('style', 'font-size: ' + (dvAutoSpnFontSize * sizePercent).toFixed() + 'px !important'); | |
2004 | + $(".logo-image").attr('width', (imgLogoW * sizePercent).toFixed()); | |
2005 | + if (sizePercent > 1) { | |
2006 | + $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent); | |
2007 | + $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent); | |
2008 | + } | |
2009 | + else { | |
2010 | + $('#printBoxPor').width(fullWidth * sizePercent).height(fullHeight * sizePercent); | |
2011 | + $('#printBoxLan').width(fullHeight * sizePercent).height(fullWidth * sizePercent); | |
2012 | + } | |
2013 | + } | |
2014 | + } | |
2015 | + </script> | |
2016 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.min.js"></script> | |
2017 | +</body> | |
2018 | + | |
2019 | +</html> | |
0 | 2020 | \ No newline at end of file | ... | ... |
400-SOURCECODE/AIAHTML5.Web/index.aspx.cs
0 → 100644
1 | +using System; | |
2 | +using System.Collections.Generic; | |
3 | +using System.Linq; | |
4 | +using System.Web; | |
5 | +using System.Web.UI; | |
6 | +using System.Web.UI.WebControls; | |
7 | + | |
8 | +namespace ADAM.AIA | |
9 | +{ | |
10 | + public partial class index : System.Web.UI.Page | |
11 | + { | |
12 | + public string strIPAddress = ""; | |
13 | + public bool bValidIP = false; | |
14 | + public string strAccountNumber = ""; | |
15 | + public string strEdition = ""; | |
16 | + public string strUrlReferer = ""; | |
17 | + public string strSiteReferer = ""; | |
18 | + public string urlParams = "?"; | |
19 | + public string test = ""; | |
20 | + | |
21 | + protected void Page_Load(object sender, EventArgs e) | |
22 | + { | |
23 | + urlParams = "XYZ"; | |
24 | + | |
25 | + if (Request.HttpMethod == "POST") | |
26 | + { | |
27 | + if (Request.Form["calsCredantial"] != null && Request.Form["calsCredantial"].ToString() == "yes") | |
28 | + { | |
29 | + urlParams = "?calsCredantial=" + Request.Form["calsCredantial"].ToString() + "&username=" + Request.Form["calsUsername"].ToString() + "&password=" + Request.Form["calsPassword"].ToString(); | |
30 | + } | |
31 | + } | |
32 | + | |
33 | + string c = "nm"; | |
34 | + if (Request.QueryString["account"] != null) | |
35 | + { | |
36 | + // http://stackoverflow.com/questions/9032005/request-servervariableshttp-referer-is-not-working-in-ie | |
37 | + // http://stackoverflow.com/questions/5643773/http-referrer-not-always-being-passed?rq=1 | |
38 | + // | |
39 | + strSiteReferer = Request.ServerVariables["HTTP_REFERER"]; | |
40 | + strAccountNumber = Request.QueryString["account"]; | |
41 | + strEdition = Request.QueryString["edition"]; | |
42 | + string remoteIPAddress = Request.ServerVariables["REMOTE_ADDR"]; | |
43 | + string strHttpReferer = null; | |
44 | + int intSiteId = 0; | |
45 | + | |
46 | + | |
47 | + | |
48 | + | |
49 | + if (Request.Form["referer"] != null) | |
50 | + { | |
51 | + strUrlReferer = Request.Form["referer"]; | |
52 | + } | |
53 | + else if (Request.QueryString["referer"] == null) | |
54 | + { | |
55 | + strUrlReferer = Request.ServerVariables["HTTP_REFERER"]; | |
56 | + } | |
57 | + else if (Request.Params["referer"] != null) | |
58 | + { | |
59 | + strUrlReferer = Request.Params["referer"]; | |
60 | + } | |
61 | + else | |
62 | + { | |
63 | + | |
64 | + strUrlReferer = Request.QueryString["referer"]; | |
65 | + } | |
66 | + | |
67 | + | |
68 | + if (strUrlReferer != "" && strUrlReferer != null) | |
69 | + { | |
70 | + strHttpReferer = strUrlReferer.ToLower().Replace("http://", "").Replace("https://", "").Replace("www.", "").ToString().Split('/')[0].ToString(); | |
71 | + | |
72 | + if (strHttpReferer.IndexOf(":") != -1) | |
73 | + { | |
74 | + char[] delimiters = new char[] { ':' }; | |
75 | + string[] parts = strHttpReferer.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); | |
76 | + strHttpReferer = parts[0]; | |
77 | + } | |
78 | + } | |
79 | + | |
80 | + try | |
81 | + { | |
82 | + | |
83 | + if (strHttpReferer != "" && strHttpReferer != null) | |
84 | + strIPAddress = strHttpReferer; | |
85 | + if (strIPAddress == "" || strIPAddress == null) | |
86 | + strIPAddress = remoteIPAddress; | |
87 | + | |
88 | + | |
89 | + // intSiteId = LicenseHelper.GetInstance().ValidateLicenseSiteIP(strIPAddress, remoteIPAddress, strAccountNumber, Convert.ToByte(strEdition)); | |
90 | + | |
91 | + } | |
92 | + catch (Exception objEx) | |
93 | + { | |
94 | + | |
95 | + } | |
96 | + //urlParams = "?siteIP=" + strIPAddress + "&status=" + intSiteId + "&accountNumber=" + strAccountNumber + "&edition=" + strEdition + "&urlReferer=" + (strSiteReferer != "" && strSiteReferer != null ? strSiteReferer : ""); | |
97 | + //urlParams = "siteIP=" + strIPAddress + "&accountNumber=" + strAccountNumber + "&edition=" + strEdition + "&urlReferer=" + (strSiteReferer != "" && strSiteReferer != null ? strSiteReferer : ""); | |
98 | + | |
99 | + //For the ease of splitting desgined urlParms in the pattern of | |
100 | + //urlParams = siteIP&accountNumber&remoteIPAddress&edition&urlReferer; without mentioning the variableName | |
101 | + urlParams = strIPAddress + "&" + remoteIPAddress+"&"+ strAccountNumber + "&" + strEdition + "&" + (strSiteReferer != "" && strSiteReferer != null ? strSiteReferer : ""); | |
102 | + | |
103 | + | |
104 | + } | |
105 | + } | |
106 | + } | |
107 | +} | |
0 | 108 | \ No newline at end of file | ... | ... |
400-SOURCECODE/AIAHTML5.Web/index.aspx.designer.cs
0 → 100644
1 | +//------------------------------------------------------------------------------ | |
2 | +// <auto-generated> | |
3 | +// This code was generated by a tool. | |
4 | +// | |
5 | +// Changes to this file may cause incorrect behavior and will be lost if | |
6 | +// the code is regenerated. | |
7 | +// </auto-generated> | |
8 | +//------------------------------------------------------------------------------ | |
9 | + | |
10 | +namespace ADAM.AIA { | |
11 | + | |
12 | + | |
13 | + public partial class index { | |
14 | + } | |
15 | +} | ... | ... |
400-SOURCECODE/AIAHTML5.Web/index.html renamed to 400-SOURCECODE/AIAHTML5.Web/index1.html