topic_list.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. "use strict";
  2. function opennamu_topic_list() {
  3. const url = window.location.pathname;
  4. const url_split = url.split('/');
  5. let num;
  6. if(url_split[1] === 'topic') {
  7. num = '1';
  8. } else {
  9. num = url_split[2];
  10. }
  11. let doc_name;
  12. if(url_split[1] === 'topic') {
  13. doc_name = url_split.slice(2, undefined).join('/');
  14. } else {
  15. doc_name = url_split.slice(3, undefined).join('/');
  16. }
  17. let lang_data = new FormData();
  18. lang_data.append('data', 'closed stop agreed_discussion make_new_topic');
  19. fetch('/api/v2/lang', {
  20. method : 'POST',
  21. body : lang_data,
  22. }).then(function(res) {
  23. return res.json();
  24. }).then(function(lang) {
  25. lang = lang["data"];
  26. fetch('/api/v2/topic/' + num + '/normal/' + doc_name).then(function(res) {
  27. return res.json();
  28. }).then(function(data) {
  29. data = data['data'];
  30. let data_html = '';
  31. for(let for_a = 0; for_a < data.length; for_a++) {
  32. let left = '<a href="/thread/' + data[for_a][0] + '">' + opennamu_xss_filter(data[for_a][1]) + '</a>';
  33. let right = '';
  34. if(data[for_a][2] === 'O') {
  35. right += lang['closed'] + ' | ';
  36. } else if(data[for_a][2] === 'S') {
  37. right += lang['stop'] + ' | ';
  38. }
  39. if(data[for_a][3] !== '') {
  40. right += lang['agreed_discussion'] + ' | ';
  41. }
  42. right += '<a href="/thread/' + data[for_a][0] + '#' + data[for_a][7] + '">#' + data[for_a][7] + '</a> | ';
  43. right += data[for_a][5] + ' | ';
  44. right += data[for_a][6];
  45. data_html += opennamu_make_list(left, right);
  46. }
  47. if(data_html !== '') {
  48. data_html += '<hr class="main_hr">';
  49. }
  50. data_html += '<a href="/thread/0/' + doc_name + '">(' + lang['make_new_topic'] + ')</a>';
  51. data_html += opennamu_page_control('/topic_page/{}/normal/' + doc_name, Number(num), data.length);
  52. document.getElementById('opennamu_topic_list').innerHTML = data_html;
  53. });
  54. });
  55. }