You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

202 lines
13 KiB

11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
  1. @{
  2. Layout = null;
  3. }
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  8. <title>Sevomin God Mode</title>
  9. <link rel="stylesheet" type="text/css" href="@Url.Content("~/content/bootstrap.min.css")" />
  10. <link rel="stylesheet" type="text/css" href="@Url.Content("~/content/bootstrap-theme.min.css")" />
  11. <link rel="stylesheet" type="text/css" href="@Url.Content("~/content/common.css")" />
  12. <link rel="stylesheet" type="text/css" href="@Url.Content("~/content/forms.css")" />
  13. </head>
  14. <body>
  15. <div class="container rtl">
  16. <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
  17. <div class="container">
  18. <div class="navbar-header">
  19. <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#collapse">
  20. <span class="sr-only">Toggle navigation</span>
  21. <span class="icon-bar"></span>
  22. <span class="icon-bar"></span>
  23. <span class="icon-bar"></span>
  24. </button>
  25. <a class="navbar-brand" href="#">
  26. <small>(آزمایشی)</small>
  27. <img src="/content/images/revert-logo.png" />
  28. </a>
  29. </div>
  30. <div class="collapse navbar-collapse navbar-right" id="collapse">
  31. <ul class="nav navbar-nav navbar-right">
  32. <li class="rtl"><a href="/"><span class="glyphicon glyphicon-home"></span> خانه</a></li>
  33. <li class="rtl"><a href="/errors.axd"><span class="glyphicon glyphicon-exclamation-sign"></span> خطاها</a></li>
  34. <li class="rtl"><a href="@Url.Action("RecentJobs", "Job")">آگهی‌های استخدام</a></li>
  35. <li class="dropdown rtl"><a href="#" class="dropdown-toggle" data-toggle="dropdown">پروفایل <b class="caret"></b></a>
  36. <ul class="dropdown-menu">
  37. <li class="rtl"><a href="@Url.Action("ChangePassword", "Account")"><span class="glyphicon glyphicon-refresh"></span> تغییر کلمه عبور</a></li>
  38. </ul>
  39. </li>
  40. <li class="rtl"><a href="/logout">خروج از سایت</a></li>
  41. </ul>
  42. </div>
  43. </div>
  44. </nav>
  45. <div class="jumbotron">
  46. <h1>سلام!</h1>
  47. <p>یک سری اطلاعات کلی درباره وب سایت سومین در این محل قابل ارائه می باشد.</p>
  48. <p>تاریخ و ساعت به وقت سرور سومین: @DateTime.Now.ToShortDateString() - @DateTime.Now.ToShortTimeString()</p>
  49. </div>
  50. <div class="row">
  51. <div class="col-md-12">
  52. <p>برای تست: @(HttpContext.Current.Application["ApplicationStart"] == null ? "اجرا نشده" : (DateTime.Now - (DateTime)HttpContext.Current.Application["ApplicationStart"]).Minutes.ToString())</p>
  53. <div class="table-responsive">
  54. <table class="table table-stripped table-bordered">
  55. <thead>
  56. <tr>
  57. <th>تعداد کل اعضا</th>
  58. <th>تعداد کارفرماها</th>
  59. <th>تعداد متخصصین</th>
  60. <th>تعداد فرصت های شغلی</th>
  61. <th>تعداد اعلام آمادگی های فرصت های شغلی</th>
  62. </tr>
  63. </thead>
  64. <tbody>
  65. <tr>
  66. <td>@Sevomin.Models.SevominDbContext.Current.Users.Count() (دو روز اخیر: @Sevomin.Models.SevominDbContext.Current.Users.ToList().Where(u => u.SignUpDate.Date > DateTime.Now.Date.AddDays(-2)).Count())</td>
  67. <td>@(Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Avalin>().Count()) (دو روز اخیر: @(Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Avalin>().ToList().Where(u => u.SignUpDate.Date > DateTime.Now.Date.AddDays(-2)).Count()))</td>
  68. <td>@(Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Dovomin>().Count()) (دو روز اخیر: @(Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Dovomin>().ToList().Where(u => u.SignUpDate.Date > DateTime.Now.Date.AddDays(-2)).Count()))</td>
  69. <td>@Sevomin.Models.SevominDbContext.Current.Jobs.Count()</td>
  70. <td>@Sevomin.Models.SevominDbContext.Current.DovominJobs.Count() (دو روز اخیر: @Sevomin.Models.SevominDbContext.Current.DovominJobs.ToList().Where(j => j.ApplyDate.Date > DateTime.Now.Date.AddDays(-2)).Count())</td>
  71. </tr>
  72. </tbody>
  73. </table>
  74. </div>
  75. </div>
  76. </div>
  77. <div class="row">
  78. <div class="col-md-12 rtl">
  79. <div class="panel panel-default" id="parameters-edit-panel">
  80. <div class="panel-heading">
  81. <h4 class="panel-title"><a data-toggle="collapse" data-parent="parameters-edit-panel" href="#parameters-edit-panel-body">ویرایش متن راهنمای پارامترها</a></h4>
  82. </div>
  83. <div id="parameters-edit-panel-body" class="panel-collapse collapse in">
  84. <div class="panel-body">
  85. @foreach (var param in Sevomin.Models.SevominDbContext.Current.Parameters)
  86. {
  87. <div class="col-md-6 col-sm-12 col-xs-12">
  88. <table class="table table-stripped table-bordered">
  89. <thead>
  90. <tr>
  91. <th>پارامتر</th>
  92. <th>توضیح اولین</th>
  93. <th>توضیح دومین</th>
  94. </tr>
  95. </thead>
  96. <tbody>
  97. <tr>
  98. <td>@param.Name</td>
  99. <td>
  100. <div style="border: 1px solid #dcdcdc" data-param-id="@param.Id" data-id="CommentAvalin" contenteditable>@param.CommentAvalin</div>
  101. </td>
  102. <td>
  103. <div style="border: 1px solid #dcdcdc" data-param-id="@param.Id" data-id="CommentDovomin" contenteditable>@param.CommentDovomin</div>
  104. </td>
  105. <td>
  106. <button data-param-id="@param.Id" class="btn btn-xs btn-primary pull-left parameter-updater"><span class="glyphicon glyphicon-refresh"></span></button>
  107. </td>
  108. </tr>
  109. </tbody>
  110. </table>
  111. </div>
  112. }
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="row">
  119. <div class="col-md-12 rtl">
  120. <h2>اعلام آمادگی های فرصت های شغلی</h2>
  121. <div class="panel-group" id="accordion">
  122. @foreach (Sevomin.Models.Avalin avalin in Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Avalin>().ToList())
  123. {
  124. if (avalin.Jobs.Count == 0)
  125. { continue; }
  126. <div class="panel panel-default">
  127. <div class="panel-heading">
  128. <h4 class="panel-title">
  129. <a data-toggle="collapse" data-parent="#accordion" href="#@avalin.Id">@avalin.DisplayName
  130. </a>
  131. </h4>
  132. </div>
  133. @foreach (var job in avalin.Jobs)
  134. {
  135. if (job.Applications.Count == 0)
  136. { continue; }
  137. <div id="@avalin.Id" class="panel-collapse collapse in">
  138. <div class="panel-body">
  139. <p>@((new Sevomin.Models.JobMiniViewModel(job)).JobSummary) @Html.ActionLink("مشاهده آگهی", "SingleJob", "Job", new { jobId = job.Id }, null)</p>
  140. <h5>اطلاعات فرد پاسخگو به این آگهی: (@(string.IsNullOrWhiteSpace(job.ContactPersonName) ? "نام وارد نشده" : job.ContactPersonName)
  141. @((string.IsNullOrWhiteSpace(job.ContactPersonEMail) ? "ایمیل وارد نشده" : job.ContactPersonEMail))
  142. @((string.IsNullOrWhiteSpace(job.ContactPersonPhone) ? "تلفن وارد نشده" : job.ContactPersonPhone)))</h5>
  143. </div>
  144. @foreach (var application in job.Applications.OrderByDescending(a => a.ApplyDate))
  145. {
  146. Sevomin.Models.JobApplicationViewModel apply = new Sevomin.Models.JobApplicationViewModel(application);
  147. <div class="panel-body">
  148. <em>از طرف <a href="@Url.Action("Dovomin", "Account", new { userId = apply.DovominId })">@apply.DovominDisplayName</a></em>
  149. @if (!string.IsNullOrWhiteSpace(apply.CoverLetter))
  150. {
  151. <h5>پیغام متخصص:</h5>
  152. <blockquote>@apply.CoverLetter</blockquote>
  153. }
  154. @if (apply.MinimumRequirement)
  155. {
  156. <p>این متخصص تمامی مهارت های الزامی برای این فرصت شغلی را دارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @apply.Affinity درصد است.</p>
  157. }
  158. else
  159. {
  160. <p>این متخصص برخی مهارت های الزامی برای این فرصت شغلی را ندارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @apply.Affinity درصد است.</p>
  161. }
  162. </div>
  163. }
  164. </div>
  165. }
  166. </div>
  167. }
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. <script src="@Url.Content("~/scripts/jquery-2.1.0.min.js")"></script>
  173. <script src="@Url.Content("~/scripts/jquery-ui-1.10.4.js")"></script>
  174. <script src="@Url.Content("~/scripts/jalaliCalendar.js")"></script>
  175. <script src="@Url.Content("~/scripts/jquery-ui-i18n.min.js")"></script>
  176. <script src="@Url.Content("~/scripts/jquery.validate.min.js")"></script>
  177. <script src="@Url.Content("~/scripts/jquery.validate.unobtrusive.min.js")"></script>
  178. <script src="@Url.Content("~/scripts/bootstrap.min.js")"></script>
  179. <script>
  180. $(function () {
  181. $('.collapse').collapse();
  182. $('button.parameter-updater').bind('click', function (e) {
  183. e.preventDefault();
  184. var vals = $('div[data-param-id="' + $(this).data('param-id') + '"]');
  185. var commentAvalin; var commentDovomin; var paramId = $(this).data('param-id');
  186. $.each(vals, function (index, obj) {
  187. if ($(obj).data('id') == "CommentAvalin")
  188. commentAvalin = $(obj).text();
  189. else
  190. commentDovomin = $(obj).text();
  191. });
  192. $.post('@Url.Action("UpdateParam", "God")', { paramId: paramId, commentAvalin: commentAvalin, commentDovomin: commentDovomin })
  193. .success(function () {
  194. console.log('done');
  195. });
  196. });
  197. });
  198. </script>
  199. </body>
  200. </html>