topic_list.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. fetch('/api/v2/topic/' + num + '/normal/' + doc_name).then(function(res) {
  18. return res.json();
  19. }).then(function(data) {
  20. let lang = data['language'];
  21. data = data['data'];
  22. let data_html = '';
  23. for(let for_a = 0; for_a < data.length; for_a++) {
  24. let left = '<a href="/thread/' + data[for_a][0] + '">' + opennamu_xss_filter(data[for_a][1]) + '</a>';
  25. let right = '';
  26. if(data[for_a][2] === 'O') {
  27. right += lang['closed'] + ' | ';
  28. } else if(data[for_a][2] === 'S') {
  29. right += lang['stop'] + ' | ';
  30. }
  31. if(data[for_a][3] !== '') {
  32. right += lang['agreed_discussion'] + ' | ';
  33. }
  34. right += '<a href="/thread/' + data[for_a][0] + '#' + data[for_a][7] + '">#' + data[for_a][7] + '</a> | ';
  35. right += data[for_a][5] + ' | ';
  36. right += data[for_a][6];
  37. data_html += openamu_make_list(left, right);
  38. }
  39. if(data_html !== '') {
  40. data_html += '<hr class="main_hr">';
  41. }
  42. data_html += '<a href="/thread/0/' + doc_name + '">(' + lang['make_new_topic'] + ')</a>';
  43. data_html += opennamu_page_control('/topic_page/{}/normal/' + doc_name, Number(num), data.length);
  44. document.getElementById('opennamu_topic_list').innerHTML = data_html;
  45. });
  46. }