MrDoc/template/app_doc/project.html
2021-03-22 22:41:05 +08:00

217 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- 继承自模板app_doc/docs_base.html -->
{% extends 'app_doc/docs_base.html' %}
<!-- 引入静态文件 -->
{% load static %}
{% load i18n %}
{% block title %}{{ project.name }}{% endblock %}
{% block head_toolbar %}
{% if request.user == project.create_user or colla_user > 0 %}
<span class="btn pull-left">|</span>
<a class="btn pull-left" href="{% url 'create_doc' %}?pid={{project.id}}" target="_blank">
<i class="layui-icon layui-icon-add-1"></i> <span class="layui-hide-xs">{% trans "添加" %}</span>
</a>
{% endif %}
{% if request.user == project.create_user %}
<a class="btn pull-left" href="{% url 'user_center' %}">
<i class="fa fa-cubes"></i> <span class="layui-hide-xs">{% trans "管理" %}</span>
</a>
{% endif %}
{% endblock %}
{% block content_head %}
<h1>{{ project.name }}</h1><hr>
{% endblock %}
{% block page_content %}
<!-- 引入文档过滤器 -->
{% load doc_filter %}
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
<ul class="layui-tab-title">
<li class="layui-this">{% trans "简介" %}</li>
<li>{% trans "目录大纲" %}</li>
<li>{% trans "最新文档" %}</li>
{% if enable_project_report %}
<li>{% trans "文集下载" %}</li>
{% endif %}
</ul>
<div class="layui-tab-content" style="padding: 0;">
<!-- 文集简介 -->
<div class="layui-tab-item layui-show">
<div id="project-desc">
<textarea style="display: none;">{% if project.intro == '' or project.intro is None %}{% trans "暂无文集简介" %}{% else %}{{project.intro}}{% endif %}
</textarea></div>
</div>
<!-- 目录大纲 -->
<div class="layui-tab-item">
<ul class="summary" id="doc-tree"></ul>
</div>
<!-- 最新文档 -->
<div class="layui-tab-item">
{% for doc in new_docs %}
<div>
<h3><a style="color:#333;" href="{% url 'doc' project.id doc.id %}">{{doc.name}}</a></h3>
<p style="color:#999;font-size:12px;">
{% if doc.pre_content|length > 200 %}
{{ doc.pre_content|truncatechars:200 }}……
{% else %}
{{ doc.pre_content }}
{% endif %}
</p>
<p style="color:#999;font-size:12px;"><i class="fa fa-user"></i> {% if doc.create_user.first_name != '' %} {{doc.create_user.first_name}} {% else %} {{doc.create_user}}{% endif %} - <i class="fa fa-clock-o"></i> {{doc.modify_time}}</p>
</div>
<hr>
{% endfor %}
</div>
<!-- 文集下载 -->
{% if enable_project_report %}
<div class="layui-tab-item">
<p style="margin-bottom: 0px;">
<span class="layui-breadcrumb" lay-separator="|">
{% if allow_download %}
{% if allow_download.allow_epub == 1 %}
<a href="javascript:void(0);" onclick="reportFile('{{project.id}}','epub')"><i class="fa fa-download"></i> <u>EPUB电子书</u></a>
{% endif %}
{% if allow_download.allow_pdf == 1 %}
<a href="javascript:void(0);" onclick="reportFile('{{project.id}}','pdf')"><i class="fa fa-download"></i> <u>PDF电子书</u></a>
{% endif %}
{% if allow_download.allow_pdf == 0 and allow_download.allow_epub == 0 %}
<a>{% trans "文集作者未开放此文集的任何格式下载!" %}</a>
{% endif %}
{% else %}
<a>{% trans "文集作者未开放此文集的任何格式下载!" %}</a>
{% endif %}
</span>
</p>
</div>
{% endif %}
</div>
</div>
{% if enable_project_report %}
<script>
// 下载文件
reportFile = function(pro_id,types){
layer.load(1)
var data = {'pro_id':pro_id,'types':types};
$.post("{% url 'report_file' %}",data,function(r){
layer.closeAll('loading');
if(r.status){
//文件下载提示
downloadFile(r.data)
}else{
layer.msg(r.data)
}
})
}
//下载文件弹出框
downloadFile = function(download_link){
layer.open({
type:1,
title:"下载导出文档",
area:"300px",
id:"downloadMd",
content:'<p style="text-align:center;color:red;">请尽快下载,避免失效!</p><br><a class="layui-btn layui-btn-normal layui-btn-fluid download-md-link" href="'+ download_link + '" download="" >点击下载文件</a>',
//btn:['确定','取消'], //添加按钮
//btnAlign:'c', //按钮居中
success: function (layero, index) {
$(layero).find('.download-md-link').click(function () {
layer.close(index);
})
}
})
};
</script>
{% endif %}
{% endblock %}
{% block doc_bottom_block %}
<div class="layui-row layui-col-space20" style="padding-left: 20px;">
<span >
<i class="layui-icon layui-icon-user"></i>
<span tooltip="文集创建者">{% if project.create_user.first_name != '' %} {{project.create_user.first_name}} {% else %} {{project.create_user.username}}{% endif %}</span>
{% for colla in colla_user_list %}
,<span tooltip="文集成员">{% if colla.user.first_name != '' %} {{colla.user.first_name}} {% else %} {{colla.user.username}}{% endif %}</span>
{% endfor %}
</span>
<button id="share" class="doc-bottom-btn" tooltip="分享本文档" style="padding-left: 20px;">
<i class="fa fa-share-alt" ></i> {% trans "分享" %}
</button>
</div>
{% endblock %}
{% block custom_script %}
<script src="{% static 'editor.md/lib/marked.min.js' %}?version={{mrdoc_version}}"></script>
<script src="{% static 'editor.md/editormd.js' %}?version={{mrdoc_version}}"></script>
<script>
// 生成文集简介中的文档大纲
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});
var tree = layui.tree;
var layer = layui.layer;
var util = layui.util;
getDocTree = function(){
layer.load(1)
$.post("{% url 'get_pro_doc_tree' %}",{'pro_id':'{{project.id}}'},function(r){
if(r.status){
var toc_str = ""
layui.each(r.data,function(index,item){
toc_str += "<li>"
if(item['children'] != undefined){ // 存在二级文档
li = '<div class="project-toc-left"><a href="/project-'+'{{project.id}}'+'/doc-'+item.id+'/" title="'+item.title+'">'+item.title+'</a></div><div class="project-toc-right layui-hide-xs">' + util.toDateString(item.modify_time,"yyyy-MM-dd") + '</div>' +'<ul class="sub-menu">'
toc_str += li
layui.each(item['children'],function(index,item){// 遍历二级文档
toc_str += '<li>'
if(item['children'] != undefined){ //存在三级文档
li = '<div class="project-toc-left"><a href="/project-'+'{{project.id}}'+'/doc-'+item.id+'/" title="'+item.title+'">'+item.title+'</a></div><div class="project-toc-right layui-hide-xs">' + util.toDateString(item.modify_time,"yyyy-MM-dd") + '</div>' +'<ul class="sub-menu">'
toc_str += li
layui.each(item['children'],function(index,item){ // 遍历三级文档
li = '<li><div class="project-toc-left"><a href="/project-'+'{{project.id}}'+'/doc-'+item.id+'/" title="'+item.title+'">'+item.title+'</a></div><div class="project-toc-right layui-hide-xs">' + util.toDateString(item.modify_time,"yyyy-MM-dd") + '</div></li>'
toc_str += li
})
toc_str += '</ul>'
}else{// 不存在三级文档
li = '<div class="project-toc-left"><a href="/project-'+'{{project.id}}'+'/doc-'+item.id+'/" title="'+item.title+'">'+item.title+'</a></div><div class="project-toc-right layui-hide-xs">' + util.toDateString(item.modify_time,"yyyy-MM-dd") + '</div>'
toc_str += li
}
toc_str += '</li>'
})
toc_str += '</ul>'
}else{//不存在二级文档
li = '<div class="project-toc-left"><a href="/project-'+'{{project.id}}'+'/doc-'+item.id+'/" title="'+item.title+'">'+item.title+'</a></div><div class="project-toc-right layui-hide-xs">' + util.toDateString(item.modify_time,"yyyy-MM-dd") + '</div>'
toc_str += li
}
toc_str += '</li>'
});
$("#doc-tree").append(toc_str);
}else{
layer.msg("获取文集文档大纲失败!")
}
layer.closeAll('loading')
});
};
getDocTree();
// 渲染文集简介Markdown
const renderDesc = () => {
editormd.markdownToHTML("project-desc", {
emoji : true, //emoji表情
taskList : true, // 任务列表
tex : true, // 科学公式
flowChart : true, // 流程图
sequenceDiagram : true, // 时序图
tocm : false, //目录
toc :false,
tocContainer : "#toc-container",
tocDropdown : false,
atLink : false,//禁用@链接
htmlDecode : "link,style,base,script,iframe", //过滤部分HTML标签
});
}
layer.load(1);
renderDesc();
</script>
{% endblock %}