manage_categories.html 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. {% extends "base.html" %}
  2. {% block title %}逐鹿导航 - 编辑分类{% endblock %}
  3. {% block content %}
  4. <div class="row justify-content-center">
  5. <div class="col-md-6">
  6. <div class="card">
  7. <div class="card-header">
  8. <h4>{{ '编辑分类' if action == 'edit' else '添加分类' }}</h4>
  9. </div>
  10. <div class="card-body">
  11. <form method="POST">
  12. {{ form.hidden_tag() }}
  13. <div class="mb-3">
  14. {{ form.name.label(class="form-label") }}
  15. {{ form.name(class="form-control") }}
  16. {% if form.name.errors %}
  17. {% for error in form.name.errors %}
  18. <div class="text-danger small">{{ error }}</div>
  19. {% endfor %}
  20. {% endif %}
  21. </div>
  22. <div class="mb-3 form-check">
  23. {{ form.is_public(class="form-check-input", id="is_public") }}
  24. {{ form.is_public.label(class="form-check-label") }}
  25. <div class="form-text">
  26. 如果勾选,此分类将公开显示。同时,该分类下的所有站点也将变为公开。
  27. </div>
  28. </div>
  29. <div class="d-flex justify-content-between">
  30. <a href="{{ url_for('dashboard') }}" class="btn btn-secondary">返回管理后台</a>
  31. {{ form.submit(class="btn btn-primary") }}
  32. </div>
  33. </form>
  34. </div>
  35. </div>
  36. </div>
  37. </div>
  38. {% endblock %}
  39. {% block scripts %}
  40. {{ super() }}
  41. <script>
  42. $(document).ready(function() {
  43. const publicCheckbox = $('#is_public');
  44. let originalPublicState = publicCheckbox.prop('checked');
  45. publicCheckbox.change(function() {
  46. if (this.checked !== originalPublicState) {
  47. const action = this.checked ? '公开' : '私有';
  48. const confirmed = confirm(`警告:更改此分类为${action}状态将影响该分类下的所有站点。确定要继续吗?`);
  49. if (!confirmed) {
  50. // 恢复原始状态
  51. publicCheckbox.prop('checked', originalPublicState);
  52. }
  53. }
  54. });
  55. // 表单提交时更新原始状态
  56. $('form').submit(function() {
  57. originalPublicState = publicCheckbox.prop('checked');
  58. });
  59. });
  60. </script>
  61. {% endblock %}