view_bbs_in_w_comment.go 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package route
  2. import (
  3. "database/sql"
  4. "opennamu/route/tool"
  5. "regexp"
  6. "strconv"
  7. "strings"
  8. )
  9. func View_bbs_in_w_comment(db *sql.DB, config tool.Config, user_name string, set_id string, set_code string) string {
  10. data_api := Api_bbs_w_comment(config, "around", set_id + "-" + set_code)
  11. data_api_in := data_api["data"].([]map[string]string)
  12. bbs_comment_acl := tool.Check_acl(db, set_id, "", "bbs_comment", config.IP)
  13. select_html := `
  14. <select id="opennamu_comment_select" name="comment_select">
  15. <option value="0">` + tool.Get_language(db, "normal", true) + `</option>
  16. `
  17. data_html := ""
  18. tabom_count_api := Api_bbs_w_tabom(config, set_id, set_code)
  19. tabom_count := tabom_count_api["data"]
  20. if bbs_comment_acl {
  21. data_html += `
  22. <hr class="main_hr">
  23. <div id="opennamu_bbs_w_post_tabom">
  24. <a href="javascript:void(0);" id="opennamu_tabom_button">
  25. <span class="opennamu_bbs_w_post_tabom opennamu_svg opennamu_svg_tabom">&nbsp;</span>
  26. </a>
  27. <script>
  28. window.addEventListener('DOMContentLoaded', function() {
  29. document.getElementById('opennamu_tabom_button').addEventListener("click", function() {
  30. opennamu_post_tabom("` + tool.JS_escape(set_id) + `", "` + tool.JS_escape(set_code) + `");
  31. });
  32. });
  33. </script>
  34. <hr class="main_hr">
  35. <span>` + tool.Get_language(db, "upvote", true) + `</span> <span class="opennamu_tabom_count">` + tabom_count + `</span>
  36. </div>
  37. `
  38. }
  39. data_html += "<hr>"
  40. var re = regexp.MustCompile(`^[0-9]+-[0-9]+-`)
  41. for _, v := range data_api_in {
  42. code_id := v["id"] + "-" + v["code"]
  43. code_id = re.ReplaceAllString(code_id, "")
  44. count := strings.Count(code_id, "-")
  45. select_html += `<option value="` + code_id + `">` + code_id + `</option>`
  46. color := "default"
  47. date := ""
  48. date += `<a href="javascript:opennamu_change_comment('` + code_id + `');">(` + tool.Get_language(db, "comment", true) + `)</a> `;
  49. date += `<a href="/bbs/tool/` + set_id + `/` + set_code + `/` + code_id + `">(` + tool.Get_language(db, "tool", true) + `)</a> `;
  50. date += v["comment_date"];
  51. padding_str := strconv.Itoa(20 * count)
  52. data_html += `<span style="padding-left: ` + padding_str + `px;"></span>`
  53. data_html += tool.Get_thread_ui(
  54. v["comment_user_id_render"],
  55. date,
  56. v["comment"],
  57. code_id,
  58. color,
  59. "",
  60. `width: calc(100% - ` + padding_str + `px);`,
  61. "",
  62. )
  63. }
  64. select_html += `</select> <a href="javascript:opennamu_return_comment();">(` + tool.Get_language(db, "return", true) + `)</a>`
  65. select_html += `<hr class="main_hr">`;
  66. if bbs_comment_acl {
  67. data_html += `
  68. <form method="post" action="/bbs/w/` + tool.Url_parser(set_id) + `/` + tool.Url_parser(set_code) + `">
  69. <div id="opennamu_bbs_w_post_select">` + select_html + `</div>
  70. ` + tool.Get_editor_ui(db, config, "", "bbs_comment", "", "") + `
  71. </form>
  72. `
  73. }
  74. data_html += `
  75. <script defer src="/views/main_css/js/route/topic.js` + tool.Cache_v() + `"></script>
  76. <script defer src="/views/main_css/js/route/bbs_w_post.js` + tool.Cache_v() + `"></script>
  77. `
  78. return data_html
  79. }