my_collect.js 6.6 KB

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