my_collect.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. function my_collect_init() {
  2. my_collect_list();
  3. collect_add_dlg_init("collect_add_div");
  4. }
  5. function my_collect_list() {
  6. $.get(
  7. "../article/collect_list.php",
  8. {
  9. userid: getCookie("userid"),
  10. setting: "",
  11. },
  12. function (data, status) {
  13. if (status == "success") {
  14. try {
  15. let html = "";
  16. let result = JSON.parse(data);
  17. let key = 1;
  18. for (const iterator of result) {
  19. html += '<div class="file_list_row" style="padding:5px;">';
  20. html +=
  21. '<div style="max-width:2em;flex:1;"><input type="checkbox" /></div>';
  22. html += "<div style='flex:1;'>" + key++ + "</div>";
  23. html += "<div style='flex:2;'>" + iterator.title + "</div>";
  24. html +=
  25. "<div style='flex:2;'>" +
  26. render_status(iterator.status) +
  27. "</div>";
  28. html += "<div style='flex:1;'>"+gLocal.gui.copy_link+"</div>";
  29. html +=
  30. "<div style='flex:1;'><a href='../article/my_collect_edit.php?id=" +
  31. iterator.id +
  32. "'>"+gLocal.gui.edit+"</a></div>";
  33. html +=
  34. "<div style='flex:1;'><a href='../article/?collect=" +
  35. iterator.id +
  36. "' target='_blank'>"+gLocal.gui.preview+"</a></div>";
  37. html += "<div style='flex:1;'>15</div>";
  38. html += "</div>";
  39. }
  40. $("#article_list").html(html);
  41. } catch (e) {
  42. console.error(e);
  43. }
  44. } else {
  45. console.error("ajex error");
  46. }
  47. }
  48. );
  49. }
  50. var _arrArticleList;
  51. var _arrArticleOrder = new Array();
  52. function my_collect_edit(id) {
  53. $.get(
  54. "../article/collect_get.php",
  55. {
  56. id: id,
  57. setting: "",
  58. },
  59. function (data, status) {
  60. if (status == "success") {
  61. try {
  62. let html = "";
  63. let result = JSON.parse(data);
  64. $("#article_collect").attr("a_id", result.id);
  65. html += '<div class="" style="padding:5px;">';
  66. html += '<div style="max-width:2em;flex:1;"></div>';
  67. html += "<input type='hidden' name='id' value='" + result.id + "'/>";
  68. html +=
  69. "<input type='hidden' name='subtitle' value='" +
  70. result.subtitle +
  71. "'/>";
  72. html +=
  73. "<input type='hidden' name='summary' value='" +
  74. result.summary +
  75. "'/>";
  76. html +=
  77. "<input type='hidden' name='status' value='" +
  78. result.status +
  79. "'/>";
  80. html +=
  81. "<input type='hidden' name='lang' value='" + result.lang + "'/>";
  82. html +=
  83. "<input id='form_article_list' type='hidden' name='article_list' value='" +
  84. result.article_list +
  85. "'/>";
  86. html += "</div>";
  87. html += "<div style='display:flex;'>";
  88. html += "<div style='flex:4;'>";
  89. _arrArticleList = JSON.parse(result.article_list);
  90. html += "<ul id='ul_article_list'>";
  91. for (let index = 0; index < _arrArticleList.length; index++) {
  92. const element = _arrArticleList[index];
  93. html += my_collect_render_article(index, element);
  94. _arrArticleOrder.push(index);
  95. }
  96. html += "</ul>";
  97. html += "</div>";
  98. html += "<div id='preview_div'>";
  99. html += "<div id='preview_inner' ></div>";
  100. html += "</div>";
  101. html += "</div>";
  102. $("#article_list").html(html);
  103. $("#collect_title").val(result.title);
  104. $("#ul_article_list").sortable({
  105. update: function (event, ui) {
  106. let sortedIDs = $("#ul_article_list").sortable("toArray");
  107. _arrArticleOrder = new Array();
  108. for (const iSorted of sortedIDs) {
  109. let newindex = parseInt($("#" + iSorted).attr("article_index"));
  110. _arrArticleOrder.push(_arrArticleList[newindex]);
  111. }
  112. $("#form_article_list").val(JSON.stringify(_arrArticleOrder));
  113. },
  114. });
  115. $("#aritcle_status").html(render_status(result.status));
  116. let html_title =
  117. "<input id='input_article_title' type='input' name='title' value='" +
  118. result.title +
  119. "' />";
  120. $("#article_title").html(html_title);
  121. } catch (e) {
  122. console.error(e);
  123. }
  124. } else {
  125. console.error("ajex error");
  126. }
  127. }
  128. );
  129. }
  130. function my_collect_render_article(index, article) {
  131. let html = "";
  132. html +=
  133. "<li id='article_item_" +
  134. index +
  135. "' article_index='" +
  136. index +
  137. "' class='file_list_row'>";
  138. html += "<span style='flex:1;'>";
  139. html += "<select>";
  140. let selected = "";
  141. for (let i = 1; i < 9; i++) {
  142. if (parseInt(article.level) == i) {
  143. selected = "selected";
  144. } else {
  145. selected = "";
  146. }
  147. html += "<option " + selected + " value='" + i + "' >H " + i + "</option>";
  148. }
  149. html += "</select>";
  150. html += "</span>";
  151. html += "<span style='flex:3;'>";
  152. html +=
  153. "<a href='../article/my_article_edit.php?id=" + article.article + "'>";
  154. html += article.title;
  155. html += "</a>";
  156. html += "</span>";
  157. html +=
  158. "<span style='flex:1;' onclick=\"article_preview('" +
  159. article.article +
  160. "')\">";
  161. html += "Preview";
  162. html += "</span>";
  163. html += "</li>";
  164. return html;
  165. }
  166. function article_preview(id) {
  167. $.get(
  168. "../article/get.php",
  169. {
  170. id: id,
  171. setting: "",
  172. },
  173. function (data, status) {
  174. if (status == "success") {
  175. try {
  176. let html = "";
  177. let result = JSON.parse(data);
  178. $("#preview_inner").html(note_init(result.content));
  179. note_refresh_new();
  180. } catch (e) {
  181. console.error(e.message);
  182. }
  183. }
  184. }
  185. );
  186. }
  187. function my_collect_save() {
  188. $.ajax({
  189. type: "POST", //方法类型
  190. dataType: "json", //预期服务器返回的数据类型
  191. url: "../article/my_collect_post.php", //url
  192. data: $("#collect_edit").serialize(),
  193. success: function (result) {
  194. console.log(result); //打印服务端返回的数据(调试用)
  195. if (result.status == 0) {
  196. alert("保存成功");
  197. } else {
  198. alert("error:" + result.message);
  199. }
  200. },
  201. error: function (data, status) {
  202. alert("异常!" + data.responseText);
  203. switch (status) {
  204. case "timeout":
  205. break;
  206. case "error":
  207. break;
  208. case "notmodified":
  209. break;
  210. case "parsererror":
  211. break;
  212. default:
  213. break;
  214. }
  215. },
  216. });
  217. }