edit.tpl 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. {include file='admin/header.tpl'}
  2. <script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/6.6.0/tinymce.min.js"></script>
  3. <div class="page-wrapper">
  4. <div class="container-xl">
  5. <div class="page-header d-print-none text-white">
  6. <div class="row align-items-center">
  7. <div class="col">
  8. <h2 class="page-title">
  9. <span class="home-title">编辑文档 #{$doc->id}</span>
  10. </h2>
  11. <div class="page-pretitle my-3">
  12. <span class="home-subtitle">编辑站点文档</span>
  13. </div>
  14. </div>
  15. <div class="col-auto ms-auto d-print-none">
  16. <div class="btn-list">
  17. <button id="save-doc" href="#" class="btn btn-primary">
  18. <i class="icon ti ti-device-floppy"></i>
  19. 保存
  20. </button>
  21. </div>
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. <div class="page-body">
  27. <div class="container-xl">
  28. <div class="card">
  29. <div class="card-body">
  30. <div class="mb-3">
  31. <label class="form-label col-3 col-form-label">文档标题</label>
  32. <div class="col">
  33. <input id="title" type="text" class="form-control" value="{$doc->title}">
  34. </div>
  35. </div>
  36. <div class="mb-3">
  37. <form method="post">
  38. <textarea id="tinymce">{$doc->content}</textarea>
  39. </form>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. <script>
  47. document.addEventListener("DOMContentLoaded", function () {
  48. let options = {
  49. selector: '#tinymce',
  50. height: 300,
  51. menubar: false,
  52. statusbar: false,
  53. plugins:
  54. 'advlist autolink lists link image charmap preview anchor ' +
  55. 'searchreplace visualblocks code fullscreen ' +
  56. 'insertdatetime media table wordcount',
  57. toolbar: 'undo redo | formatselect | ' +
  58. 'bold italic backcolor link | blocks | alignleft aligncenter ' +
  59. 'alignright alignjustify | bullist numlist outdent indent | ' +
  60. 'removeformat',
  61. content_style: 'body { font-family: -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif; font-size: 14px; -webkit-font-smoothing: antialiased; }',
  62. {if $user->is_dark_mode}
  63. skin: 'oxide-dark',
  64. content_css: 'dark',
  65. {/if}
  66. }
  67. tinyMCE.init(options);
  68. })
  69. $("#save-doc").click(function() {
  70. $.ajax({
  71. url: '/admin/docs/' + {$doc->id},
  72. type: 'PUT',
  73. dataType: "json",
  74. data: {
  75. title: $("#title").val(),
  76. content: tinyMCE.activeEditor.getContent(),
  77. },
  78. success: function(data) {
  79. if (data.ret === 1) {
  80. $('#success-message').text(data.msg);
  81. $('#success-dialog').modal('show');
  82. window.setTimeout("location.href=top.document.referrer", {$config['jump_delay']});
  83. } else {
  84. $('#fail-message').text(data.msg);
  85. $('#fail-dialog').modal('show');
  86. }
  87. }
  88. })
  89. });
  90. </script>
  91. {include file='admin/footer.tpl'}