create.tpl 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. {include file='admin/tabler_header.tpl'}
  2. <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/@tabler/core@latest/dist/libs/tinymce/skins/ui/oxide/skin.min.css">
  3. <script src="//cdn.jsdelivr.net/npm/@tabler/core@latest/dist/libs/tinymce/tinymce.min.js"></script>
  4. <div class="page-wrapper">
  5. <div class="container-xl">
  6. <div class="page-header d-print-none text-white">
  7. <div class="row align-items-center">
  8. <div class="col">
  9. <h2 class="page-title">
  10. <span class="home-title">创建公告</span>
  11. </h2>
  12. <div class="page-pretitle my-3">
  13. <span class="home-subtitle">创建站点公告</span>
  14. </div>
  15. </div>
  16. <div class="col-auto ms-auto d-print-none">
  17. <div class="btn-list">
  18. <a id="create-ann" href="#" class="btn btn-primary">
  19. <i class="icon ti ti-device-floppy"></i>
  20. 保存
  21. </a>
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. <div class="page-body">
  28. <div class="container-xl">
  29. <div class="card">
  30. <div class="card-body">
  31. <div class="mb-3">
  32. <form method="post">
  33. <textarea id="tinymce"></textarea>
  34. </form>
  35. </div>
  36. <div class="mb-3">
  37. <label class="form-label col-3 col-form-label">公告通知的用户等级,0为不分级</label>
  38. <div class="col">
  39. <input id="email_notify_class" type="text" class="form-control" value="">
  40. </div>
  41. </div>
  42. <div class="mb-3">
  43. <div class="divide-y">
  44. <div>
  45. <label class="row">
  46. <span class="col">发送邮件通知</span>
  47. <span class="col-auto">
  48. <label class="form-check form-check-single form-switch">
  49. <input id="email_notify" class="form-check-input" type="checkbox"
  50. checked="">
  51. </label>
  52. </span>
  53. </label>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. <script>
  63. // @formatter:off
  64. document.addEventListener("DOMContentLoaded", function () {
  65. let options = {
  66. selector: '#tinymce',
  67. height: 300,
  68. menubar: false,
  69. statusbar: false,
  70. plugins:
  71. 'advlist autolink lists link image charmap preview anchor ' +
  72. 'searchreplace visualblocks code fullscreen ' +
  73. 'insertdatetime media table code help wordcount',
  74. toolbar: 'undo redo | formatselect | ' +
  75. 'bold italic backcolor link | blocks | alignleft aligncenter ' +
  76. 'alignright alignjustify | bullist numlist outdent indent | ' +
  77. 'removeformat',
  78. content_style: 'body { font-family: -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif;font-size: 14px; -webkit-font-smoothing: antialiased; }',
  79. {if $user->is_dark_mode}
  80. skin: 'oxide-dark',
  81. content_css: 'dark',
  82. {/if}
  83. }
  84. tinyMCE.init(options);
  85. })
  86. // @formatter:on
  87. $("#create-ann").click(function() {
  88. $.ajax({
  89. url: '/admin/announcement',
  90. type: 'POST',
  91. dataType: "json",
  92. data: {
  93. {foreach $update_field as $key}
  94. {$key}: $('#{$key}').val(),
  95. {/foreach}
  96. email_notify: $("#email_notify").is(":checked"),
  97. content: tinyMCE.activeEditor.getContent(),
  98. },
  99. success: function(data) {
  100. if (data.ret == 1) {
  101. $('#success-message').text(data.msg);
  102. $('#success-dialog').modal('show');
  103. window.setTimeout("location.href=top.document.referrer", {$config['jump_delay']});
  104. } else {
  105. $('#fail-message').text(data.msg);
  106. $('#fail-dialog').modal('show');
  107. }
  108. }
  109. })
  110. });
  111. </script>
  112. {include file='admin/tabler_footer.tpl'}