SongZihuan пре 3 година
родитељ
комит
e5b77b93eb
5 измењених фајлова са 56 додато и 10 уклоњено
  1. 1 1
      static/styles/docx/docx.css
  2. 2 2
      templates/archive/archive.html
  3. 33 4
      templates/docx/docx.html
  4. 5 2
      view/archive.py
  5. 15 1
      view/docx.py

+ 1 - 1
static/styles/docx/docx.css

@@ -19,7 +19,7 @@
     background-color: white;
 }
 
-.docx a, .docx-top a{
+.docx a, .docx-top a {
     padding: 15px;
     color: black;
     text-decoration: none;

+ 2 - 2
templates/archive/archive.html

@@ -59,7 +59,7 @@
                 <p> {{ archive[2] }} </p>
                 <p> 篇数: {{ archive[3] }} </p>
                 <a class="btn btn-info" href="{{ url_for("docx.archive_page", archive=archive[0], page=1) }}"> 进入 </a>
-                {% if current_user.check_role("DeleteBlog") %}
+                {% if show_delete %}
                     <div id="DeleteModal{{archive[0]}}" class="modal fade" role="dialog" aria-hidden="true">
                         <div class="modal-dialog">
                             <div class="modal-content text-left">
@@ -71,7 +71,7 @@
                                 </div>
                                 <div class="modal-footer">
                                     <a class="btn btn-danger"
-                                       href="{{ url_for("archive.delete_archive", archive_id=archive[0]) }}"> 删除 </a>
+                                       href="{{ url_for("archive.delete_archive_page", archive_id=archive[0]) }}"> 删除 </a>
                                     <button type="button" class="btn btn-secondary" data-dismiss="modal"> 取消 </button>
                                 </div>
                             </div>

+ 33 - 4
templates/docx/docx.html

@@ -66,15 +66,44 @@
             <div class="row">
                 <article class="col-12">
                 {% for blog in blog_list %}
+                    {% if show_delete %}
+                        {# 判断是否显示删除模态框 #}
+                        <div id="DeleteModal{{blog[0]}}" class="modal fade" role="dialog" aria-hidden="true">
+                            <div class="modal-dialog">
+                                <div class="modal-content text-left">
+                                    <div class="modal-header">
+                                        <h4 class="modal-title"> 确认删除博文? </h4>
+                                    </div>
+                                    <div class="modal-body">
+                                        <p> 是否确认删除博文 {{ blog[1] }}? </p>
+                                    </div>
+                                    <div class="modal-footer">
+                                        <a class="btn btn-danger"
+                                           href="{{ url_for("docx.delete_blog_page", blog_id=blog[0]) }}"> 删除 </a>
+                                        <button type="button" class="btn btn-secondary" data-dismiss="modal"> 取消 </button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    {% endif %}
+
                     {% if blog[4] == is_top %}
-                        <div class="docx-top"> <a class="h4"
-                                                          href="{{ url_for("docx.article_page", blog_id=blog[0]) }}">
+                        <div class="docx-top">
+                            {% if show_delete %}
+                                <button type="button" class="btn btn-danger ml-2"
+                                    data-toggle="modal" data-target="#DeleteModal{{blog[0]}}"> &times; </button>
+                            {% endif %}
+                            <a class="h4" href="{{ url_for("docx.article_page", blog_id=blog[0]) }}">
                             {{ blog[1] }}
                                 <small> {{ blog[2] }}
                                     <small> {{ blog[3] }} </small> </small> </a></div>
                     {% else %}
-                        <div class="docx"> <a class="h4"
-                                                      href="{{ url_for("docx.article_page", blog_id=blog[0]) }}">
+                        <div class="docx">
+                            {% if show_delete %}
+                                <button type="button" class="btn btn-danger ml-2"
+                                    data-toggle="modal" data-target="#DeleteModal{{blog[0]}}"> &times; </button>
+                            {% endif %}
+                            <a class="h4" href="{{ url_for("docx.article_page", blog_id=blog[0]) }}">
                             {{ blog[1] }}
                                 <small> {{ blog[2] }}
                                     <small> {{ blog[3] }} </small> </small> </a></div>

+ 5 - 2
view/archive.py

@@ -21,7 +21,10 @@ class CreateArchiveForm(FlaskForm):
 @archive.route('/')
 def archive_page():
     archive_list = Archive.get_archive_list()
-    return render_template("archive/archive.html", archive_list=archive_list, form=CreateArchiveForm())
+    return render_template("archive/archive.html",
+                           archive_list=archive_list,
+                           form=CreateArchiveForm(),
+                           show_delete=current_user.check_role("DeleteBlog"))
 
 
 @archive.route("create", methods=["POST"])
@@ -43,7 +46,7 @@ def create_archive_page():
 
 @archive.route("delete/<int:archive_id>")
 @login_required
-def delete_archive(archive_id: int):
+def delete_archive_page(archive_id: int):
     if not current_user.check_role("DeleteBlog"):
         abort(403)
         return

+ 15 - 1
view/docx.py

@@ -48,7 +48,8 @@ def docx_page(page: int = 1):
                            blog_list=blog_list,
                            is_top=DBBit.BIT_1,
                            page_list=page_list,
-                           form=WriteBlogForm())
+                           form=WriteBlogForm(),
+                           show_delete=current_user.check_role("DeleteBlog"))
 
 
 @docx.route('/<int:archive>/<int:page>')
@@ -132,6 +133,19 @@ def create_docx_page():
     abort(404)
 
 
+@docx.route("delete/<int:blog_id>")
+@login_required
+def delete_blog_page(blog_id: int):
+    if not current_user.check_role("DeleteBlog"):
+        abort(403)
+        return
+    if BlogArticle(blog_id, None, None, None, None).delete():
+        flash("归档博文成功")
+    else:
+        flash("归档博文失败")
+    return redirect(url_for("docx.docx_page", page=1))
+
+
 @docx.context_processor
 def inject_base():
     return {"top_nav": ["", "", "active", "", "", ""]}