MenuDetail.cshtml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. 
  2. @{
  3. ViewBag.Title = "MenuDetail";
  4. Layout = "~/Views/Shared/_LayoutHome.cshtml";
  5. }
  6. @using NEducation.Content.Texts
  7. <link type="text/css" rel="stylesheet" href="~/Content/assets/css/product-intro.css" />
  8. <link type="text/css" rel="stylesheet" href="~/Content/assets/css/learning-diary.css" />
  9. <link rel="stylesheet" href="~/Content/assets/css/home-voca.css" />
  10. <link rel="stylesheet" href="~/Content/assets/css/common-lesson-view.css" />
  11. @*<link rel="stylesheet" href="~/Content/assets/css/dialog.css" />*@
  12. @*@using NEducation.Content.Texts;
  13. @using NEducation.NEduService;*@
  14. @using NEducation.Controllers;
  15. @using NEducation.Code;
  16. @model NEducation.Models.HfModel
  17. @using System.Globalization;
  18. @using System.Linq;
  19. @using System.Threading;
  20. @{
  21. List<HfData> hfDatas = Session["categories"] as List<HfData>;
  22. HfData menu = hfDatas.Find(x => x.PathParent == "/menu");
  23. HfData gym = hfDatas.Find(x => x.PathParent == "/gym");
  24. HfData nutrition = hfDatas.Find(x => x.PathParent == "/nutrition");
  25. List<SubInfo> subInfo = Session["subInfo"] as List<SubInfo>;
  26. SubInfo homefitness = null;
  27. if (subInfo != null)
  28. {
  29. homefitness = subInfo.Find(x => x.subServiceName == UtilsController.Constant.EDU_HOME_FITNESS_REG);
  30. }
  31. }
  32. @section navMenu{
  33. <a href="/Home/" class="nav-link">@Lang.Home</a>
  34. <a href="/HomeFitness/Menu?id=@(menu != null ? menu.Id : "")" class="navigation-all nav-link">@Lang.menu</a>
  35. @*Không Ngôn Ngữ*@
  36. @*<a href="/HomeFitness/Menu?id=@(nutrition != null ? nutrition.Id : "")" class="navigation-all nav-link">@Lang.nutrition</a>*@
  37. <a href="/HomeFitness/Menu?id=@(nutrition != null ? nutrition.Id : "")" class="navigation-all nav-link">nutrition</a>
  38. <a href="/HomeFitness/Menu?id=@(gym != null ? gym.Id : "")" class="navigation-all nav-link">@Lang.gym</a>
  39. }
  40. @section menu{
  41. <a href="/Home/" class="header-menu-link ">@Lang.Home</a>
  42. <a href="/HomeFitness/Menu?id=@(menu != null ? menu.Id : "")" class="navigation-all header-menu-link">@Lang.menu</a>
  43. @*Không Ngôn Ngữ*@
  44. <a @*href="/HomeFitness/Menu?id=@(nutrition != null ? nutrition.Id : "")" class="navigation-all header-menu-link ">@Lang.nutrition</a>*@
  45. <a href="/HomeFitness/Menu?id=@(nutrition != null ? nutrition.Id : "")" class="navigation-all header-menu-link ">nutrition</a>
  46. <a href="/HomeFitness/Menu?id=@(gym != null ? gym.Id : "")" class="navigation-all header-menu-link ">@Lang.gym</a>
  47. }
  48. @{
  49. CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
  50. String nameCulture = currentCulture.Name;
  51. }
  52. <!-- Body -->
  53. <div class="main-body">
  54. <div class="main-body-container product-detail-container">
  55. <!-- Banner -->
  56. <div class="product-detail-banner">
  57. <img class="img-banner" alt="Prepare For National Exam" src="~/Content/assets/homefitness/imgs/Home Fitness_image/@Model.hfDataParent.Icon" />
  58. </div>
  59. <!-- Product detail body -->
  60. <div class="product-detail-body">
  61. <!-- Infor -->
  62. <div class="product-detail-infor">
  63. <div class="block-infor">
  64. <h2 class="infor-name">
  65. @{
  66. if (nameCulture == "vi")
  67. {
  68. @Model.hfDataParent.NameGlobal
  69. }
  70. else
  71. {
  72. @Model.hfDataParent.NameLocal
  73. }
  74. }
  75. </h2>
  76. <p class="infor-level">
  77. @{
  78. if (nameCulture == "vi")
  79. {
  80. @Model.hfDataParent.DescriptionGlobal
  81. }
  82. else
  83. {
  84. @Model.hfDataParent.DescriptionLocal
  85. }
  86. }
  87. </p>
  88. </div>
  89. @{
  90. if (homefitness == null)
  91. {
  92. <form class="block-button">
  93. @Html.AntiForgeryToken()
  94. <a id="buy-button" class="button-ranking"
  95. data-toggle="modal"
  96. data-target="#signup-dialog"
  97. href="#">
  98. @Lang.registerhf
  99. </a>
  100. </form>
  101. }
  102. }
  103. <div class="clearfix"></div>
  104. <div class="product-tab-group">
  105. <a data-toggle="tab" id="product-tab-lesson" class="product-tab-lesson product-tab-active" href="#tab-lesson">
  106. @(Model.hfDataParent.PathParent.Contains("/nutrition") ? Lang.toolCal :
  107. Model.hfDataParent.PathParent.Contains("/menu") ? Lang.menu : Lang.gym)
  108. @*<span id="product-tab-lesson">1</span>*@
  109. </a>
  110. <a data-toggle="tab" id="product-tab-intro" class="product-tab-intro" href="#tab-intro">@Lang.Introduction</a>
  111. </div>
  112. </div>
  113. <!-- Lesson -->
  114. <div class="tab-content">
  115. <div class="product-detail-lesson tab-pane fade in active" id="tab-lesson">
  116. <div class="row lesson-list">
  117. @if (Model.hfDataParent.PathParent == "/nutrition/tdee")
  118. {
  119. <div class="hf-nutrition-container hf-nutrition-row">
  120. <h3 style="font-weight:700;">
  121. @*Không Ngôn Ngữ*@
  122. @*@Lang.caloTool*@
  123. <span>caloTool</span>
  124. </h3>
  125. <div class="row hf-row">
  126. <div class="col-md-4 hf-nutrition-title">
  127. <h4>@Lang.height</h4>
  128. </div>
  129. <div class="col-md-8 hf-nutrition-box">
  130. <input class="box" id="tdee-height" type="number" placeholder="cm" />
  131. </div>
  132. <div class="col-md-4 hf-nutrition-title">
  133. <h4>@Lang.weight</h4>
  134. </div>
  135. <div class="col-md-8 hf-nutrition-box">
  136. <input class="box" id="tdee-weight" type="number" placeholder="kg" />
  137. </div>
  138. <div class="col-md-4 hf-nutrition-title">
  139. <h4>@Lang.sex</h4>
  140. </div>
  141. <div class="col-md-8 hf-nutrition-box" style="text-align: initial;">
  142. <form id="sex-container">
  143. <input type="radio" id="sex1" name="sex" value="0" checked>
  144. <label for="sex1">@Lang.female</label><br>
  145. <input type="radio" id="sex2" name="sex" value="1">
  146. <label for="sex2">@Lang.male</label><br><br>
  147. </form>
  148. </div>
  149. <div class="col-md-4 hf-nutrition-title" style=" margin-top: 30px;">
  150. <h4>@Lang.age</h4>
  151. </div>
  152. <div class="col-md-8 hf-nutrition-box" style=" margin-top: 30px;">
  153. <input class="box" id="tdee-age" type="number" placeholder="" />
  154. </div>
  155. @*<div class="col-md-5 hf-nutrition-title" style=" margin-top: 10px;">
  156. <h4>@Lang.needToLoose</h4>
  157. </div>
  158. <div class="col-md-7 hf-nutrition-box" style=" margin-top: 10px;">
  159. <input class="box" id="tdee-need-lose" type="number" placeholder="kg" />
  160. </div>*@
  161. <div class="col-md-4 hf-nutrition-title">
  162. <h4>@Lang.act</h4>
  163. </div>
  164. <div class="col-md-8 hf-nutrition-box" style="text-align:initial;">
  165. <form id="act-container">
  166. <input type="radio" id="act1" name="act" value="1.2" checked>
  167. <label for="act1">@Lang.act_des_1</label><br>
  168. <input type="radio" id="act2" name="act" value="1.375">
  169. <label for="act2">@Lang.act_des_2</label><br>
  170. <input type="radio" id="act3" name="act" value="1.55">
  171. <label for="act3">@Lang.act_des_3</label><br>
  172. <input type="radio" id="act4" name="act" value="1.725">
  173. <label for="act4">@Lang.act_des_4</label><br><br>
  174. </form>
  175. </div>
  176. </div>
  177. <div>
  178. <button class="hf-butrition-button" onclick="tdeeClick()">
  179. @*Không Ngôn Ngữ*@
  180. @*Lang.caloCal*@
  181. caloCal
  182. </button>
  183. </div>
  184. <div class="col-md-12 hf-nutrition-box" style=" margin-top: 25px; text-align: center;">
  185. <p readonly id="tdee-result" class="box" value="" style="width: 100%; height: auto; text-align: center; font-size: 20px;">
  186. @*Không Ngôn Ngữ*@
  187. @*@Lang.needToEat XXXX @Lang.calo*@
  188. @Lang.needToEat XXXX
  189. </p>
  190. </div>
  191. </div>
  192. }
  193. else if (Model.hfDataParent.PathParent == "/nutrition/bmi")
  194. {
  195. <div class="hf-nutrition-container hf-nutrition-row">
  196. <h3 style="font-weight:700;">
  197. @*Không Ngôn Ngữ*@
  198. @*@Lang.caloTool*@
  199. caloTool
  200. </h3>
  201. <div class="row hf-row">
  202. <div class="col-md-4 hf-nutrition-title">
  203. <h4>@Lang.height</h4>
  204. </div>
  205. <div class="col-md-8 hf-nutrition-box">
  206. <input class="box" id="bmi-height" type="number" placeholder="cm" />
  207. </div>
  208. <div class="col-md-4 hf-nutrition-title">
  209. <h4>@Lang.weight</h4>
  210. </div>
  211. <div class="col-md-8 hf-nutrition-box">
  212. <input class="box" id="bmi-weight" type="number" placeholder="kg" />
  213. </div>
  214. </div>
  215. <div>
  216. <button class="hf-butrition-button" onclick="bmiClick()">
  217. @*Không Ngôn Ngữ*@
  218. @*@Lang.caloCal*@
  219. <span>caloCal</span>
  220. </button>
  221. </div>
  222. <div class="col-md-12 hf-nutrition-box" style=" margin-top: 25px; text-align: center;">
  223. <p readonly id="bmi-result" class="box" value="@Lang.bmiNum XXX, @Lang.bodyStatus YY" style="width: 100%; height: auto; text-align: center; font-size: 20px;">
  224. @Lang.bmiNum XXX, @Lang.bodyStatus YY
  225. </p>
  226. </div>
  227. </div>
  228. }
  229. else
  230. {
  231. for (int i = 0; i < Model.hfDatas.Count; i++)
  232. {
  233. <div class="col-sm-6 col-md-6 col-lg-4 col-xl-3 lesson-item">
  234. <div style="max-width:200px;">
  235. <div class="lesson-image">
  236. <img src="~/Content/assets/homefitness/imgs/Home Fitness_image/@Model.hfDatas[i].Icon" alt="@if (nameCulture == "vi")
  237. {
  238. @Model.hfDatas[i].NameGlobal
  239. }
  240. else
  241. {
  242. @Model.hfDatas[i].NameLocal
  243. }">
  244. </div>
  245. <p class="lesson-name">
  246. @if (nameCulture == "vi")
  247. {
  248. @Model.hfDatas[i].NameGlobal
  249. }
  250. else
  251. {
  252. @Model.hfDatas[i].NameLocal
  253. }
  254. </p>
  255. @if (homefitness != null)
  256. {
  257. <a href="/HomeFitness/MenuContent?id=@Model.hfDatas[i].Id" class="lesson-button button-learn-now">
  258. @Lang.LearnNow
  259. </a>
  260. }
  261. else
  262. {
  263. <a href="#" class="lesson-button button-lock">
  264. @Lang.Locked
  265. </a>
  266. }
  267. </div>
  268. </div>
  269. }
  270. }
  271. </div>
  272. </div>
  273. <div class="product-detail-lesson tab-pane fade" id="tab-intro">
  274. @{
  275. if (nameCulture == "vi")
  276. {
  277. @Html.Raw(@Model.hfDataParent.IntroductionGlobal)
  278. }
  279. else
  280. {
  281. @Html.Raw(@Model.hfDataParent.IntroductionLocal)
  282. }
  283. }
  284. </div>
  285. </div>
  286. </div>
  287. </div>
  288. </div>
  289. <script type="text/javascript" src="~/Content/assets/homefitness/js/hf-main.js"></script>
  290. <script>
  291. function tdeeClick() {
  292. let height = $("#tdee-height").val();
  293. let weight = $("#tdee-weight").val();
  294. let age = $("#tdee-age").val();
  295. let sex = $('input[name="sex"]:checked').val();
  296. let act = $('input[name="act"]:checked').val();
  297. console.log("height: " + height);
  298. console.log("weight: " + weight);
  299. console.log("age: " + age);
  300. console.log("sex: " + sex);
  301. console.log("act: " + act);
  302. let check = 1;
  303. if (height == null || height == "") {
  304. $("#tdee-height").addClass("red-box");
  305. check *= 0;
  306. }
  307. if (weight == null || weight == "") {
  308. $("#tdee-weight").addClass("red-box");
  309. check *= 0;
  310. }
  311. if (age == null || age == "") {
  312. $("#tdee-age").addClass("red-box");
  313. check *= 0;
  314. }
  315. console.log("check: " + check);
  316. if (check == 1) {
  317. let BMR = 0;
  318. if (sex == "0") {
  319. BMR = 655.1 + (9.563 * parseInt(weight)) + (1.85 * parseInt(height)) - (4.676 * parseInt(age));
  320. } else {
  321. BMR = 66.47 + (13.75 * parseInt(weight)) + (5.003 * parseInt(height)) - (6.755 * parseInt(age));
  322. }
  323. console.log("BMR: " + BMR);
  324. let TDEE = (BMR * parseFloat(act)).toFixed(0);
  325. console.log("TDEE: " + TDEE);
  326. @*document.getElementById('tdee-result').innerHTML = '@Lang.needToEat' + " " + TDEE + " " + '@Lang.calo'*@
  327. document.getElementById('tdee-result').innerHTML = '@Lang.needToEat' + " " + TDEE
  328. }
  329. }
  330. function bmiClick() {
  331. let height = $("#bmi-height").val();
  332. let weight = $("#bmi-weight").val();
  333. console.log("height: " + height);
  334. console.log("weight: " + weight);
  335. let check = 1;
  336. if (height == null || height == "") {
  337. $("#bmi-height").addClass("red-box");
  338. check *= 0;
  339. }
  340. if (weight == null || weight == "") {
  341. $("#bmi-weight").addClass("red-box");
  342. check *= 0;
  343. }
  344. if (check == 1) {
  345. let BMI = (parseInt(weight) / (parseInt(height) * 2) * 100).toFixed(1);
  346. console.log("BMI: " + BMI);
  347. if (BMI < 18.5) {
  348. document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " " + '@Lang.slim';
  349. } else if (BMI > 18.6 && BMI <= 24.9) {
  350. document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " " + '@Lang.normal';
  351. } else if (BMI > 24.9 && BMI <= 29.9) {
  352. /*Không Ngôn Ngữ*/
  353. @*document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " " + '@Lang.overWeight';*@
  354. document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " " ;
  355. } else if (BMI > 29.9 && BMI <= 34.9) {
  356. /*Không Ngôn Ngữ*/
  357. @*document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " " + '@Lang.fat1'*@
  358. document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " ";
  359. } else if (BMI > 34.9 && BMI <= 39.9) {
  360. @*document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " " + '@Lang.fat2'*@
  361. document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " ";
  362. } else if (BMI > 39.9) {
  363. @*document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " " + '@Lang.fat2'*@
  364. document.getElementById('bmi-result').innerHTML = '@Lang.bmiNum' + BMI + ", " + '@Lang.bodyStatus' + " ";
  365. }
  366. }
  367. }
  368. </script>