topic_list.js 1.8 KB

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