Editing.cshtml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. @using SuperAdmin.Controllers;
  2. @using SuperAdmin.Models.View;
  3. @using SuperAdmin.Models.Object;
  4. @using System.Globalization;
  5. @model EventViewModel
  6. @{
  7. // set today date for all
  8. DateTime oDateFrom;
  9. DateTime oDateTo;
  10. if (Model.now != null)
  11. {
  12. oDateFrom = Model.now.from_date != "" ? DateTime.ParseExact(Model.now.from_date, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture) : new DateTime();
  13. oDateTo = Model.now.to_date != "" ? DateTime.ParseExact(Model.now.to_date, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture) : new DateTime();
  14. }
  15. else
  16. {
  17. oDateFrom = DateTime.ParseExact(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss"), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
  18. oDateTo = DateTime.ParseExact(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss"), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
  19. }
  20. var from_date = oDateFrom.ToString("yyyy-MM-dd'T'HH:mm:ss.fffK", CultureInfo.InvariantCulture);
  21. var to_date = oDateTo.ToString("yyyy-MM-dd'T'HH:mm:ss.fffK", CultureInfo.InvariantCulture);
  22. String ranStr = UtilsController.RandomString(10, true);
  23. String date = oDateFrom.ToString("yyyy-MM-dd'T'HH:mm:ss.fff", CultureInfo.InvariantCulture);
  24. if (Model.now == null)
  25. {
  26. Model.now = new RowStructure();
  27. }
  28. // parents
  29. var parents = "";
  30. if (Model.categories != null)
  31. {
  32. for (int i = 0; i < (Model.categories.data.Count > 1 ? Model.categories.data.Count - 1 : 1); i++)
  33. {
  34. parents += " / " + Model.categories.data[i].name_global;
  35. }
  36. }
  37. var parentId = BaseController.PARENT_ID;
  38. }
  39. <script>
  40. $('#myInform').modal('hide');
  41. </script>
  42. @*<script type='text/javascript' src="@ViewBag.MyConfig.MyValue/js/vendors/ckeditor/ckeditor.js"></script>*@
  43. <div class="modal-content">
  44. <div class="modal-header">
  45. <h4 class="modal-title" id="modalLabelService">Events Details</h4>
  46. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  47. <span aria-hidden="true">×</span>
  48. </button>
  49. </div>
  50. <div class="modal-body">
  51. <div class="row">
  52. <div class="col-md-8">
  53. <div class="form-group">
  54. <label for="fromDate">Parent name</label>
  55. <div class="const-box">
  56. <p>
  57. @parents
  58. </p>
  59. </div>
  60. </div>
  61. </div>
  62. <div class="col-md-4">
  63. <div class="form-group">
  64. <label for="serviceCode">Is Show</label>
  65. <select id="isShow" name="isShow" class="form-control" disabled>
  66. <option value="@(Model.now.is_show)" selected>@UtilsController.ConvertIsShow(Model.now.is_show)</option>
  67. @{
  68. List<String> listIsShow = UtilsController.GetListIsShow();
  69. for (int i = 0; i < listIsShow.Count; i++)
  70. {
  71. if (i.ToString() != Model.now.is_show)
  72. {
  73. <option value="@(i)">@listIsShow[i]</option>
  74. }
  75. }
  76. }
  77. </select>
  78. </div>
  79. </div>
  80. <div class="col-md-4">
  81. <div class="form-group">
  82. <label for="team1">Code</label>
  83. <input class="form-control" type="text" id="code" name="code" autocomplete="on" value="@Model.now.code">
  84. </div>
  85. </div>
  86. <div class="col-md-4">
  87. <div class="form-group">
  88. <label for="fromDate">Icon</label>
  89. @using (Html.BeginForm("UploadAction", "Admin", FormMethod.Post, new { id = "logoForm1", enctype = "multipart/form-data" }))
  90. {
  91. @Html.AntiForgeryToken()
  92. <input class="form-control" type="file" id="imageIcon" name="file">
  93. <input type="submit" id="submitIcon" value="Upload Image" style="margin: 10px 0px 10px 0px; display: none;" />
  94. }
  95. <img id="previewIcon" class="w-100 img-icon" src="@Model.now.icon">
  96. </div>
  97. </div>
  98. <div class="col-md-4">
  99. <div class="form-group">
  100. <label for="fromDate">Logo</label>
  101. @using (Html.BeginForm("UploadAction", "Admin", FormMethod.Post, new { id = "logoForm2", enctype = "multipart/form-data" }))
  102. {
  103. @Html.AntiForgeryToken()
  104. <input class="form-control" type="file" id="imageLogo" name="file">
  105. <input type="submit" id="submitLogo" value="Upload Image" style="margin: 10px 0px 10px 0px; display: none;" />
  106. }
  107. <img id="previewLogo" class="w-100 img-icon" src="@Model.now.logo">
  108. </div>
  109. </div>
  110. <div class="col-md-4">
  111. <div class="form-group">
  112. <label for="serviceCode">Content type</label>
  113. <select id="contentType" name="contentType" class="form-control">
  114. @if (Model.now.content_type != null)
  115. {
  116. @*<option value="@Model.now.content_type">@UtilsController.ConvertContentType(Model.now.content_type)</option>*@
  117. List<String> listContentType = UtilsController.GetListContentType();
  118. for (int i = 0; i < listContentType.Count; i++)
  119. {
  120. if ((i + 1).ToString() != Model.now.content_type)
  121. {
  122. <option value="@(i + 1)">@listContentType[i]</option>
  123. }
  124. else
  125. {
  126. <option value="@(i + 1)" selected>@listContentType[i]</option>
  127. }
  128. }
  129. }
  130. else
  131. {
  132. List<String> listContentType = UtilsController.GetListContentType();
  133. for (int i = 0; i < listContentType.Count; i++)
  134. {
  135. if (i == 0)
  136. {
  137. <option value="@(i + 1)" selected>@listContentType[i]</option>
  138. }
  139. else
  140. {
  141. <option value="@(i + 1)">@listContentType[i]</option>
  142. }
  143. }
  144. }
  145. </select>
  146. </div>
  147. </div>
  148. <div class="col-md-4">
  149. <div class="form-group">
  150. <label for="fromDate">From date</label>
  151. <input class="model-box-input" type="datetime-local" id="fromDate" name="from-date" value="@from_date">
  152. </div>
  153. </div>
  154. <div class="col-md-4">
  155. <div class="form-group">
  156. <label for="toDate">To date</label>
  157. <input class="model-box-input" type="datetime-local" id="toDate" name="to-date" value="@to_date">
  158. </div>
  159. </div>
  160. </div>
  161. <div>
  162. <ul class="nav nav-tabs" role="tablist">
  163. <li class="nav-item">
  164. <a class="nav-link active" data-toggle="tab" aria-controls="tab1" href="#tab1" role="tab" aria-selected="false">Kirundi</a>
  165. </li>
  166. <li class="nav-item">
  167. <a class="nav-link" data-toggle="tab" aria-controls="tab2" href="#tab2" role="tab" aria-selected="false">English</a>
  168. </li>
  169. <li class="nav-item">
  170. <a class="nav-link " data-toggle="tab" aria-controls="tab3" href="#tab3" role="tab" aria-selected="true">France</a>
  171. </li>
  172. <li class="nav-item">
  173. <a class="nav-link " data-toggle="tab" aria-controls="tab4" href="#tab4" role="tab" aria-selected="true">Vietnamese</a>
  174. </li>
  175. </ul>
  176. <div class="tab-content">
  177. @for (int i = 1; i <= 4; i++)
  178. {
  179. <div id="@("tab" + i)" class="@(i == 1? "tab-pane active" : "tab-pane")">
  180. <div class="col-md-12">
  181. <div class="form-group">
  182. <label for="team1">Name </label>
  183. <input class="form-control" type="text" id="@("name" + i)" name="@("name" + i)" autocomplete="on" value="@(Model.action == "add" ? "" : Model.now.names[i-1])">
  184. </div>
  185. </div>
  186. <div class="col-md-12">
  187. <div class="form-group">
  188. <label for="fromDate">Description </label>
  189. <textarea class="form-control" id="@("description" + i)" name="@("description" + i)" autocomplete="off" rows="3" spellcheck="false">@(Model.action == "add" ? "" : Model.now.descriptions[i-1])</textarea>
  190. </div>
  191. </div>
  192. <div class="col-md-12">
  193. <div class="form-group">
  194. <label for="fromDate">Introduction </label>
  195. <textarea class="form-control" id="@("introduction" + i)" name="@("introduction" + i)" autocomplete="off" rows="3" spellcheck="false">@(Model.action == "add" ? "" : Model.now.introductions[i-1])</textarea>
  196. </div>
  197. </div>
  198. <div class="col-md-12">
  199. <div class="form-group content-box">
  200. <label for="toDate">Content</label>
  201. <textarea class="form-control" name="content" id="editor-@ranStr-@i">@(Model.action == "add" ? "" : Model.now.contents[i-1])</textarea>
  202. </div>
  203. </div>
  204. </div>
  205. }
  206. </div>
  207. </div>
  208. </div>
  209. <div class="modal-footer">
  210. <button type="button" class="btn grey btn-outline-secondary" data-dismiss="modal">Close</button>
  211. <button type="button" id="btnUpdateInfo" class="btn btn-outline-primary" onclick="saveAdding('@Model.action')">@(Model.action == "add" ? "Add" : "Update")</button>
  212. </div>
  213. </div>
  214. <style>
  215. .cke_skin_kama {
  216. visibility: hidden;
  217. }
  218. </style>
  219. <script>
  220. var editor1, editor2, editor3, editor3;
  221. $(document).ready(function () {
  222. editor1 = CKEDITOR.replace('editor-@ranStr-1');
  223. editor2 = CKEDITOR.replace('editor-@ranStr-2');
  224. editor3 = CKEDITOR.replace('editor-@ranStr-3');
  225. editor4 = CKEDITOR.replace('editor-@ranStr-4');
  226. });
  227. function saveAdding() {
  228. var nameGlobal = $("#name2").val();
  229. var nameGlobal1 = $("#name3").val();
  230. var nameGlobal2 = $("#name4").val();
  231. var nameLocal = $("#name1").val();
  232. var topicID = $("#topicID").val();
  233. var provinceID = $("#provinceID").val();
  234. var descriptionGlobal = $("#description2").val();
  235. var descriptionGlobal1 = $("#description3").val();
  236. var descriptionGlobal2 = $("#description4").val();
  237. var descriptionLocal = $("#description1").val();
  238. var introductionGlobal = $("#introduction2").val();
  239. var introductionGlobal1 = $("#introduction3").val();
  240. var introductionGlobal2 = $("#introduction4").val();
  241. var introductionLocal = $("#introduction1").val();
  242. var fromDate = $("#fromDate").val();
  243. var toDate = $("#toDate").val();
  244. var contentType = $("#contentType").val();
  245. var isShow = $("#isShow").val();
  246. var code = $("#code").val();
  247. var content = CKEDITOR.instances["editor-@ranStr-1"].getData();
  248. var contentGlobal = CKEDITOR.instances["editor-@ranStr-2"].getData();
  249. var contentGlobal1 = CKEDITOR.instances["editor-@ranStr-3"].getData();
  250. var contentGlobal2 = CKEDITOR.instances["editor-@ranStr-4"].getData();
  251. var check = 1;
  252. if (nameLocal == null || nameLocal == "") {
  253. $("#name1").addClass("note-input");
  254. check *= 0;
  255. } else {
  256. $("#name1").removeClass("note-input");
  257. }
  258. if (descriptionLocal == null || descriptionLocal == "") {
  259. $("#description1").addClass("note-input");
  260. check *= 0;
  261. } else {
  262. $("#description1").removeClass("note-input");
  263. }
  264. //if (introductionLocal == null || introductionLocal == "") {
  265. // $("#introduction1").addClass("note-input");
  266. // check *= 0;
  267. //} else {
  268. // $("#introduction1").removeClass("note-input");
  269. //}
  270. //if (content == null || content == "") {
  271. // $(".content-box").addClass("note-input");
  272. // check *= 0;
  273. //} else {
  274. // $(".content-box").removeClass("note-input");
  275. //}
  276. if (check == 1) {
  277. var formData = new FormData();
  278. formData.append('__RequestVerificationToken', $('input[name=__RequestVerificationToken]').val());
  279. formData.append('icon', $('#imageIcon')[0].files[0]);
  280. formData.append('logo', $('#imageLogo')[0].files[0]);
  281. formData.append('name_global', nameGlobal);
  282. formData.append('name_global1', nameGlobal1);
  283. formData.append('name_global2', nameGlobal2);
  284. formData.append('name_local', nameLocal);
  285. formData.append('topic_id', topicID);
  286. formData.append('province_id', provinceID);
  287. formData.append('description_global', descriptionGlobal);
  288. formData.append('description_global1', descriptionGlobal1);
  289. formData.append('description_global2', descriptionGlobal2);
  290. formData.append('description_local', descriptionLocal);
  291. formData.append('introduction_global', introductionGlobal);
  292. formData.append('introduction_global1', introductionGlobal1);
  293. formData.append('introduction_global2', introductionGlobal2);
  294. formData.append('introduction_local', introductionLocal);
  295. formData.append('from_date', fromDate);
  296. formData.append('to_date', toDate);
  297. formData.append('content_type', contentType);
  298. formData.append('content', content);
  299. formData.append('contentGlobal', contentGlobal);
  300. formData.append('contentGlobal1', contentGlobal1);
  301. formData.append('contentGlobal2', contentGlobal2);
  302. formData.append('is_show', isShow);
  303. formData.append('code', code);
  304. formData.append('action', '@Model.action');
  305. formData.append('parent_id', @(Model.parent != null ? Model.parent.id : parentId));
  306. var serviceName = $("#serviceName").val();
  307. $.ajax({
  308. type: "POST",
  309. url: urlConfig("/" + serviceName + "/EditingAction"),
  310. headers: { 'RequestVerificationToken': $('input[name=__RequestVerificationToken]').val() },
  311. data: formData,
  312. processData: false,
  313. contentType: false,
  314. success: function (data) {
  315. console.log(data);
  316. if (data.code == @UtilsController.Constant.SUCCESS) {
  317. $.ajax({
  318. type: "POST",
  319. url: urlConfig("/Partial/TreeResponse"),
  320. data: {
  321. "ids": data.ids,
  322. "message": data.message
  323. },
  324. success: function (data) {
  325. $('#informModel').html(data);
  326. $('#myInform').modal({ "backdrop": "static", keyboard: true });
  327. $('#myInform').modal('show');
  328. },
  329. failure: function (data) {
  330. alert(data);
  331. },
  332. error: function (data) {
  333. alert(data);
  334. }
  335. });
  336. } else {
  337. $.ajax({
  338. type: "POST",
  339. url: urlConfig("/Partial/Response"),
  340. data: {
  341. "message": data.error_content
  342. },
  343. success: function (data) {
  344. $('#informModel').html(data);
  345. $('#myInform').modal({ "backdrop": "static", keyboard: true });
  346. $('#myInform').modal('show');
  347. },
  348. failure: function (data) {
  349. alert(data);
  350. },
  351. error: function (data) {
  352. alert(data);
  353. }
  354. });
  355. }
  356. },
  357. failure: function (data) {
  358. alert(data);
  359. },
  360. error: function (data) {
  361. alert(data);
  362. }
  363. });
  364. }
  365. }
  366. </script>