mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-09 19:01:42 +00:00
[repo, repo_history]redesign ui
This commit is contained in:
@@ -175,7 +175,7 @@ ul.with-bg li {
|
||||
line-height:20px;
|
||||
background: #fff url('../img/li.gif') no-repeat scroll left 6px;
|
||||
}
|
||||
#paginator { margin-top:10px; }
|
||||
#paginator { margin:10px; }
|
||||
.tri-bg { /*triangle bg, <span>*/
|
||||
display:inline-block;
|
||||
font-size:0;
|
||||
@@ -634,15 +634,35 @@ ul.with-bg li {
|
||||
}
|
||||
|
||||
/*repo page*/
|
||||
#repo-basic-info {
|
||||
color:#333;
|
||||
background:#fafafa;
|
||||
border:1px solid #ddd;
|
||||
border-radius:3px;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
#repo-basic-info .desc,
|
||||
#repo-basic-info .size {
|
||||
padding:5px 10px;
|
||||
margin:0;
|
||||
}
|
||||
#repo-basic-info .desc {
|
||||
border-bottom:1px solid #ddd;
|
||||
}
|
||||
.path, .access-notice { margin: 0.8em 0 0.4em; }
|
||||
.repo-op button {
|
||||
.repo-op {
|
||||
text-align:right;
|
||||
}
|
||||
.repo-op button,
|
||||
#repo-download-btn {
|
||||
height:25px;
|
||||
background:#f5f5f5 scroll no-repeat 3px 48%;
|
||||
}
|
||||
#upload-file {
|
||||
padding-left:19px;
|
||||
background-image:url('../img/upload.png');
|
||||
margin-right:5px;
|
||||
}
|
||||
#add-new-dir {
|
||||
padding-left:23px;
|
||||
@@ -652,20 +672,51 @@ ul.with-bg li {
|
||||
padding-left:23px;
|
||||
background-image:url('../img/new-file-icon.png');
|
||||
}
|
||||
.more-op {
|
||||
.repo-file-list-outer-container,
|
||||
.commit-list-outer-container {
|
||||
padding:3px;
|
||||
background:#eee;
|
||||
border-radius:3px;
|
||||
margin:20px 0 25px;
|
||||
}
|
||||
.repo-file-list-inner-container,
|
||||
.commit-list-inner-container {
|
||||
min-height:250px;
|
||||
background:#fff;
|
||||
border:1px solid #ddd;
|
||||
border-radius:3px;
|
||||
}
|
||||
.repo-file-list-not-show {
|
||||
padding-left:10px;
|
||||
}
|
||||
.repo-file-list-topbar {
|
||||
padding:8px 10px;
|
||||
border-bottom:1px solid #ddd;
|
||||
}
|
||||
.repo-file-list-topbar .path {
|
||||
line-height:25px;
|
||||
margin:0;
|
||||
}
|
||||
.repo-file-list {
|
||||
margin:15px 0 0;
|
||||
}
|
||||
.displayed-op {
|
||||
display:inline;
|
||||
margin-right:8px;
|
||||
}
|
||||
.repo-file-list .more-op-icon {
|
||||
cursor:pointer;
|
||||
}
|
||||
.op-list {
|
||||
.repo-file-list .hidden-op {
|
||||
position:absolute;
|
||||
left:18px;
|
||||
background:#fff;
|
||||
padding:6px 1px;
|
||||
border:1px solid #eee;
|
||||
border-radius:5px;
|
||||
-moz-border-radius:5px;
|
||||
z-index:10;
|
||||
}
|
||||
.op-list li a {
|
||||
.hidden-op li a {
|
||||
display:block;
|
||||
padding:0 12px;
|
||||
}
|
||||
@@ -694,33 +745,51 @@ ul.with-bg li {
|
||||
border-top-color:#333;
|
||||
}
|
||||
#rename-form .new-name {
|
||||
margin-top:8px;
|
||||
}
|
||||
.latest-commit .more:hover {
|
||||
text-decoration:none;
|
||||
min-width:180px;
|
||||
margin-top:6px;
|
||||
}
|
||||
.icon-container {
|
||||
text-align:center;
|
||||
}
|
||||
.latest-commit-time-author {
|
||||
color:#333;
|
||||
font-size:13px;
|
||||
font-weight:normal;
|
||||
#repo-download-btn {
|
||||
font-size:14px;
|
||||
height:26px;
|
||||
padding:0 5px 0 27px;
|
||||
background-image: url('../img/sync-20.png');
|
||||
}
|
||||
.latest-commit {
|
||||
word-wrap:break-word;
|
||||
border: 1px solid #C5D5DD;
|
||||
border-radius: 4px;
|
||||
margin-top:10px;
|
||||
}
|
||||
.latest-commit .author {
|
||||
font-style:italic;
|
||||
.latest-commit .commit-msg,
|
||||
.latest-commit .meta-info {
|
||||
padding:4px 10px;
|
||||
margin:0;
|
||||
}
|
||||
.latest-commit .commit-msg {
|
||||
width:928px;
|
||||
padding:8px 10px;
|
||||
background: #E6F1F6;
|
||||
border-bottom: 1px solid #D8E6EC;
|
||||
border-top-left-radius:3px;
|
||||
border-top-right-radius:3px;
|
||||
}
|
||||
.latest-commit .commit-msg .more {
|
||||
margin-left:10px;
|
||||
}
|
||||
.latest-commit .author .avatar {
|
||||
border-radius:3px;
|
||||
}
|
||||
.latest-commit .author .avatar,
|
||||
.latest-commit .author .name,
|
||||
.latest-commit .time {
|
||||
vertical-align:middle;
|
||||
}
|
||||
.latest-commit .time {
|
||||
color:#666;
|
||||
margin-left:2px;
|
||||
}
|
||||
.repo-history {
|
||||
font-weight:normal;
|
||||
font-size:16px;
|
||||
margin: 4px 0 12px 0;
|
||||
margin-left:5px;
|
||||
}
|
||||
.lsch {
|
||||
font-size:12px;
|
||||
@@ -735,12 +804,30 @@ ul.with-bg li {
|
||||
max-height:550px;
|
||||
overflow:auto;
|
||||
}
|
||||
#ls-ch .latest-commit-time-author {
|
||||
color:#333;
|
||||
font-size:13px;
|
||||
font-weight:normal;
|
||||
}
|
||||
#ls-ch ul {
|
||||
padding:0 0 6px 0;
|
||||
}
|
||||
#dirs { /* file mv */
|
||||
margin-top:8px;
|
||||
}
|
||||
/* repo-history */
|
||||
#history-back-to-repo {
|
||||
margin-top:5px;
|
||||
}
|
||||
.commit-list {
|
||||
margin:0 0 20px;
|
||||
}
|
||||
.commit-list .time {
|
||||
padding-left:10px;
|
||||
}
|
||||
.commit-list .avatar {
|
||||
border-radius:2px;
|
||||
}
|
||||
/*repo-share-form*/
|
||||
#email,
|
||||
#email_or_group,
|
||||
|
@@ -18,10 +18,6 @@ $('#yes-btn').click(function() {
|
||||
location.href = Op_url;
|
||||
});
|
||||
|
||||
//handle table
|
||||
$("table tr:nth-child(even)").addClass("even");
|
||||
$("table tr:nth-child(odd)").addClass("odd");
|
||||
|
||||
//highlight the tr when mouse hover on it
|
||||
$("table tr:gt(0)").hover(
|
||||
function() {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{% extends base_template %}
|
||||
|
||||
{% load seahub_tags %}
|
||||
{% load seahub_tags avatar_tags %}
|
||||
{% load url from future %}
|
||||
|
||||
{% block info_bar_message %}
|
||||
@@ -14,133 +14,159 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block main_panel %}
|
||||
<h2>{{repo.props.name}}</h2>
|
||||
<div class="side fright">
|
||||
<h3>基本信息</h3>
|
||||
<p>{{repo.props.desc}}</p>
|
||||
<p>大小:{{ repo_size|filesizeformat }}</p>
|
||||
|
||||
{% if not repo.props.encrypted or password_set %}
|
||||
{% if can_access %}
|
||||
<div class="latest-commit">
|
||||
<h3>最新修改
|
||||
{% if request.user.is_authenticated %}
|
||||
<a href="{% url 'seahub.views.repo_history' repo.id %}" class="more">(更多)</a>
|
||||
{% endif %}
|
||||
</h3>
|
||||
<p>{{ current_commit.props.desc|translate_commit_desc }}</p>
|
||||
<p class="al-rt">
|
||||
<span class="author">by
|
||||
{% if current_commit.props.creator_name %}
|
||||
{{ current_commit.props.creator_name|short_email }}
|
||||
{% else %}
|
||||
未知
|
||||
{% endif %}
|
||||
</span>
|
||||
<span class="time">{{ current_commit.props.ctime|translate_commit_time }}</span>
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div class="w100 ovhd">
|
||||
<h2 class="fleft">{{repo.props.name}}</h2>
|
||||
{% if not repo.props.encrypted or password_set %}
|
||||
{% if can_access %}
|
||||
<button id="repo-download-btn" class="fright">同步到本地</button>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="main fleft">
|
||||
{% if repo.props.encrypted and not password_set %}
|
||||
<p class="access-notice">该目录已加密。如需在线查看里面的内容,请输入解密密码。密码只会在服务器上暂存1小时。</p>
|
||||
<form action="{{ SITE_ROOT }}repo/{{ repo.id }}/" method="post">
|
||||
<label>密码:</label>
|
||||
<input type="hidden" name="repo_id" value="{{ repo.id }}" />
|
||||
<input type="hidden" name="username" value="{{ request.user.username }}" />
|
||||
<input id="id_password" type="password" name="password" maxlength="64" /><br />
|
||||
{% for error in form.errors.values %}
|
||||
<p class="error">{{ error|escape }}</p>
|
||||
{% endfor %}
|
||||
<input type="submit" value="提交" />
|
||||
</form>
|
||||
<div id="repo-basic-info">
|
||||
<p class="desc">{{repo.props.desc}}</p>
|
||||
<p class="size">大小:{{ repo_size|filesizeformat }}</p>
|
||||
</div>
|
||||
|
||||
{% if not repo.props.encrypted or password_set %}
|
||||
{% if can_access %}
|
||||
<div class="latest-commit">
|
||||
<p class="commit-msg ovhd">
|
||||
<span class="fleft">
|
||||
{{ current_commit.props.desc|translate_commit_desc }}
|
||||
<a class="lsch" href="{{ SITE_ROOT }}repo/history/changes/{{ repo.id }}/?commit_id={{ current_commit.id }}" data="{{ current_commit.props.ctime|tsstr_sec }}">详情</a>
|
||||
</span>
|
||||
{% if request.user.is_authenticated %}
|
||||
<a href="{% url 'seahub.views.repo_history' repo.id %}" class="more fright">更多历史</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
<p class="meta-info">
|
||||
<span class="author">
|
||||
{% if current_commit.props.creator_name %}
|
||||
{% avatar current_commit.props.creator_name 20 %}
|
||||
<a class="name" href="{% url 'profile.views.user_profile' current_commit.props.creator_name %}">{{ current_commit.props.creator_name|short_email }}</a>
|
||||
{% else %}
|
||||
未知
|
||||
{% endif %}
|
||||
</span>
|
||||
<span class="time">{{ current_commit.props.ctime|translate_commit_time }}</span>
|
||||
</p>
|
||||
<div id="ls-ch" class="hide"></div><!--list modification details of a commit-->
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
{% if not can_access %}
|
||||
<p class="access-notice">无法在线查看该同步目录。</p>
|
||||
{% else %}
|
||||
<p class="path">
|
||||
当前路径:
|
||||
{% for name, link in zipped %}
|
||||
{% if not forloop.last %}
|
||||
<div class="repo-file-list-outer-container">
|
||||
<div class="repo-file-list-inner-container">
|
||||
{% if repo.props.encrypted and not password_set %}
|
||||
<div class="repo-file-list-not-show">
|
||||
<p class="access-notice">该目录已加密。如需在线查看里面的内容,请输入解密密码。密码只会在服务器上暂存1小时。</p>
|
||||
<form action="{{ SITE_ROOT }}repo/{{ repo.id }}/" method="post">
|
||||
<label>密码:</label>
|
||||
<input type="hidden" name="repo_id" value="{{ repo.id }}" />
|
||||
<input type="hidden" name="username" value="{{ request.user.username }}" />
|
||||
<input id="id_password" type="password" name="password" maxlength="64" />
|
||||
{% for error in form.errors.values %}
|
||||
<p class="error">{{ error|escape }}</p>
|
||||
{% endfor %}
|
||||
<input type="submit" value="提交" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
{% if not can_access %}
|
||||
<div class="repo-file-list-not-show">
|
||||
<p class="access-notice">无法在线查看该同步目录。</p>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="repo-file-list-topbar ovhd">
|
||||
<p class="path fleft">
|
||||
当前路径:
|
||||
{% for name, link in zipped %}
|
||||
{% if not forloop.last %}
|
||||
<a href="{{ SITE_ROOT }}repo/{{ repo.id }}/?p={{ link|urlencode }}">{{ name }}</a> /
|
||||
{% else %}
|
||||
{{ name }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
{% if request.user.is_authenticated %}
|
||||
<div class="repo-op">
|
||||
<button data="{{ SITE_ROOT }}repo/upload_file/{{repo.id}}/?p={{ path|urlencode }}" id="upload-file" class="op-btn">上传</button>
|
||||
<button id="add-new-dir" class="op-btn">新建目录</button>
|
||||
<button id="add-new-file" class="op-btn">新建文件</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th width="5%"></th>
|
||||
<th width="67%">名字</th>
|
||||
<th width="13%">大小</th>
|
||||
<th width="15%">操作</th>
|
||||
</tr>
|
||||
|
||||
{% for dirent in dir_list %}
|
||||
<tr>
|
||||
<td class="icon-container"><img src="{{ MEDIA_URL }}img/folder-icon-24.png" alt="目录" /></td>
|
||||
<td>
|
||||
<a href="{{ SITE_ROOT }}repo/{{ repo.id }}/?p={{ path|urlencode }}{{ dirent.obj_name|urlencode }}">{{ dirent.obj_name }}</a>
|
||||
</td>
|
||||
|
||||
<td></td>
|
||||
<td>
|
||||
{% if request.user.is_authenticated %}
|
||||
<div>
|
||||
<img src="{{ MEDIA_URL }}img/dropdown-arrow.png" alt="更多操作" class="more-op vh" data="no-popup" />
|
||||
<ul class="op-list hide">
|
||||
<li><a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?p={{ path|urlencode }}&file_name={{ dirent.props.obj_name|urlencode }}&op=del">删除</a></li>
|
||||
<li><a class="op dir-rename" href="#" data="{{ dirent.obj_name }}">重命名</a></li>
|
||||
<li><a class="op dir-mv" href="#" data="{{ dirent.obj_name }}">移动</a></li>
|
||||
<li><a class="op dir-cp" href="#" data="{{ dirent.obj_name }}">复制</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{{ name }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
{% if request.user.is_authenticated %}
|
||||
<div class="repo-op fright">
|
||||
<button data="{{ SITE_ROOT }}repo/upload_file/{{repo.id}}/?p={{ path|urlencode }}" id="upload-file" class="op-btn">上传</button>
|
||||
<button id="add-new-dir" class="op-btn">新建目录</button>
|
||||
<button id="add-new-file" class="op-btn">新建文件</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<table class="repo-file-list">
|
||||
<tr>
|
||||
<th width="5%"></th>
|
||||
<th width="60%">名字</th>
|
||||
<th width="10%">大小</th>
|
||||
<th width="30%">操作</th>
|
||||
</tr>
|
||||
|
||||
{% for dirent in file_list %}
|
||||
<tr>
|
||||
<td class="icon-container"><img src="{{ MEDIA_URL }}img/file/{{ dirent.obj_name|file_icon_filter }}" alt="文件" /></td>
|
||||
<td>
|
||||
<a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/files/?p={{ path|urlencode }}{{ dirent.obj_name|urlencode }}">{{ dirent.props.obj_name }}</a>
|
||||
</td>
|
||||
{% for dirent in dir_list %}
|
||||
<tr>
|
||||
<td class="icon-container"><img src="{{ MEDIA_URL }}img/folder-icon-24.png" alt="目录" /></td>
|
||||
<td>
|
||||
<a href="{{ SITE_ROOT }}repo/{{ repo.id }}/?p={{ path|urlencode }}{{ dirent.obj_name|urlencode }}">{{ dirent.obj_name }}</a>
|
||||
</td>
|
||||
|
||||
<td>{{ dirent.file_size|filesizeformat }}</td>
|
||||
<td>
|
||||
<div>
|
||||
<img src="{{ MEDIA_URL }}img/dropdown-arrow.png" alt="更多操作" class="more-op vh" data="no-popup" />
|
||||
<ul class="op-list hide">
|
||||
<li><a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?file_name={{ dirent.props.obj_name }}&op=download">下载</a></li>
|
||||
{% if request.user.is_authenticated %}
|
||||
<li><a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?p={{ path|urlencode }}&file_name={{ dirent.props.obj_name|urlencode }}&op=del">删除</a></li>
|
||||
<li><a class="op file-rename" href="#" data="{{ dirent.obj_name }}">重命名</a></li>
|
||||
<li><a class="op file-mv" href="#" data="{{ dirent.obj_name }}">移动</a></li>
|
||||
<li><a class="op file-cp" href="#" data="{{ dirent.obj_name }}">复制</a></li>
|
||||
<li><a class="op file-update" href="{{ SITE_ROOT }}repo/update_file/{{repo.id}}/?p={{ path|urlencode }}{{dirent.obj_name|urlencode}}">更新</a></li>
|
||||
<li><a href="{{ SITE_ROOT }}repo/revert_file/{{ repo.id }}/?commit={{ current_commit.id }}&p={{path|urlencode}}{{ dirent.obj_name|urlencode }}&from=repo_history" class="op file-revert">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<td></td>
|
||||
<td>
|
||||
{% if request.user.is_authenticated %}
|
||||
<div>
|
||||
<div class="displayed-op vh">
|
||||
<a class="op dir-rename" href="#" data="{{ dirent.obj_name }}">重命名</a>
|
||||
</div>
|
||||
<img src="{{ MEDIA_URL }}img/dropdown-arrow.png" title="更多操作" alt="更多操作" class="more-op-icon vh" data="no-popup" />
|
||||
<ul class="hidden-op hide">
|
||||
<li><a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?p={{ path|urlencode }}&file_name={{ dirent.props.obj_name|urlencode }}&op=del">删除</a></li>
|
||||
<!--li><a class="op dir-rename" href="#" data="{{ dirent.obj_name }}">重命名</a></li-->
|
||||
<li><a class="op dir-mv" href="#" data="{{ dirent.obj_name }}">移动</a></li>
|
||||
<li><a class="op dir-cp" href="#" data="{{ dirent.obj_name }}">复制</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
{% for dirent in file_list %}
|
||||
<tr>
|
||||
<td class="icon-container"><img src="{{ MEDIA_URL }}img/file/{{ dirent.obj_name|file_icon_filter }}" alt="文件" /></td>
|
||||
<td>
|
||||
<a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/files/?p={{ path|urlencode }}{{ dirent.obj_name|urlencode }}">{{ dirent.props.obj_name }}</a>
|
||||
</td>
|
||||
|
||||
<td>{{ dirent.file_size|filesizeformat }}</td>
|
||||
<td>
|
||||
<div>
|
||||
<div class="displayed-op vh">
|
||||
<a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?file_name={{ dirent.props.obj_name }}&op=download">下载</a>
|
||||
<a class="op file-rename" href="#" data="{{ dirent.obj_name }}">重命名</a>
|
||||
<a class="op file-update" href="{{ SITE_ROOT }}repo/update_file/{{repo.id}}/?p={{ path|urlencode }}{{dirent.obj_name|urlencode}}">更新</a>
|
||||
</div>
|
||||
<img src="{{ MEDIA_URL }}img/dropdown-arrow.png" title="更多操作" alt="更多操作" class="more-op-icon vh" data="no-popup" />
|
||||
<ul class="hidden-op hide">
|
||||
<!--li><a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?file_name={{ dirent.props.obj_name }}&op=download">下载</a></li-->
|
||||
{% if request.user.is_authenticated %}
|
||||
<li><a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?p={{ path|urlencode }}&file_name={{ dirent.props.obj_name|urlencode }}&op=del">删除</a></li>
|
||||
<!--li><a class="op file-rename" href="#" data="{{ dirent.obj_name }}">重命名</a></li-->
|
||||
<li><a class="op file-mv" href="#" data="{{ dirent.obj_name }}">移动</a></li>
|
||||
<li><a class="op file-cp" href="#" data="{{ dirent.obj_name }}">复制</a></li>
|
||||
<!--li><a class="op file-update" href="{{ SITE_ROOT }}repo/update_file/{{repo.id}}/?p={{ path|urlencode }}{{dirent.obj_name|urlencode}}">更新</a></li-->
|
||||
<li><a href="{{ SITE_ROOT }}repo/revert_file/{{ repo.id }}/?commit={{ current_commit.id }}&p={{path|urlencode}}{{ dirent.obj_name|urlencode }}&from=repo_history" class="op file-revert">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="add-new-dir-form" action="" method="post" class="hide">{% csrf_token %}
|
||||
@@ -204,26 +230,27 @@
|
||||
<script type="text/javascript">
|
||||
$("table tr:gt(0)").hover(
|
||||
function() {
|
||||
$(this).find('.more-op').removeClass('vh');
|
||||
$(this).find('.displayed-op, .more-op-icon').removeClass('vh');
|
||||
},
|
||||
function() {
|
||||
$(this).find('.more-op').addClass('vh');
|
||||
$(this).find('.displayed-op, .more-op-icon').addClass('vh');
|
||||
}
|
||||
);
|
||||
|
||||
$('#main-panel').removeClass('ovhd');
|
||||
var clicked_more_op;
|
||||
$('.more-op').click(function(e) {
|
||||
$('.more-op-icon').click(function(e) {
|
||||
var its_op_list = $(this).next();
|
||||
if ($(this).attr('data')) { // no popup
|
||||
clicked_more_op = $(this);
|
||||
$(this).parent().css('position','relative');
|
||||
its_op_list.css('left', $(this).position().left + $(this).width() + 5);
|
||||
if ($(this).offset().top + its_op_list.height() <= $('#main').offset().top + $('#main').height()) {
|
||||
its_op_list.css('top', 6);
|
||||
} else {
|
||||
its_op_list.css('bottom', 2);
|
||||
}
|
||||
$('.op-list').addClass('hide');
|
||||
$('.hidden-op').addClass('hide');
|
||||
its_op_list.removeClass('hide');
|
||||
$(this).attr('data','');
|
||||
} else {
|
||||
@@ -238,7 +265,7 @@ $(document).click(function(e) {
|
||||
clicked_more_op.attr('data','no-popup');
|
||||
}
|
||||
});
|
||||
$('.op-list li').hover(
|
||||
$('.hidden-op li').hover(
|
||||
function() {
|
||||
$(this).css('background', '#eee');
|
||||
},
|
||||
@@ -250,10 +277,13 @@ $('.op-list li').hover(
|
||||
$('.file-rename, .dir-rename').click(function () {
|
||||
var type = $(this).hasClass('file-rename') ? '文件 ' : '目录 ',
|
||||
name = $(this).attr('data');
|
||||
newname = $('#rename-form input[name="newname"]');
|
||||
$('#rename-target').html(type + name);
|
||||
$('input[name="oldname"]').val(name);
|
||||
$('input[name="newname"]').val(name);
|
||||
$('#rename-form input[name="oldname"]').val(name);
|
||||
$('#rename-form').modal({appendTo:'#main'});
|
||||
newname.before('<p class="hide">' + name + '</p>');
|
||||
newname.val(name).css('width', newname.prev().width() + 3);
|
||||
newname.prev().remove();
|
||||
return false;
|
||||
});
|
||||
|
||||
@@ -489,7 +519,7 @@ $('#add-new-file').click(function () {
|
||||
$('#add-new-file-form').modal({appendTo:'#main'});
|
||||
});
|
||||
|
||||
$('#upload-file, #add-new-dir, #add-new-file').hover(
|
||||
$('#upload-file, #add-new-dir, #add-new-file, #repo-download-btn').hover(
|
||||
function() {
|
||||
$(this).css({'background-color': '#fff', 'cursor': 'pointer'});
|
||||
},
|
||||
@@ -498,6 +528,10 @@ $('#upload-file, #add-new-dir, #add-new-file').hover(
|
||||
}
|
||||
);
|
||||
|
||||
$('#repo-download-btn').click(function() {
|
||||
window.open('{{ SITE_ROOT }}seafile_access_check/?repo_id={{repo.props.id}}');
|
||||
});
|
||||
{% include "snippets/list_commit_detail.html" %}
|
||||
{% include "snippets/bottom_bar.html" %}
|
||||
|
||||
</script>
|
||||
|
@@ -2,137 +2,87 @@
|
||||
{% load seahub_tags avatar_tags %}
|
||||
{% load url from future %}
|
||||
|
||||
{% block left_panel %}
|
||||
<h3>操作</h3>
|
||||
<ul class="with-bg">
|
||||
<li><a href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/">返回同步目录</a></li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
{% block right_panel %}
|
||||
<h2 class="repo-history">{{repo.props.name}} 修改历史</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<th width="12%">修改时间</th>
|
||||
<th width="13%">修改者</th>
|
||||
<th width="62%">描述</th>
|
||||
<th width="13%">操作</th>
|
||||
</tr>
|
||||
|
||||
{% for commit in commits %}
|
||||
<tr>
|
||||
<td>{{ commit.ctime|translate_commit_time }}</td>
|
||||
|
||||
{% if commit.creator_name %}
|
||||
<td>
|
||||
<a href="{{ SITE_ROOT }}profile/{{ commit.creator_name }}/">{% avatar commit.creator_name 16 %}</a>
|
||||
<a href="{{ SITE_ROOT }}profile/{{ commit.creator_name }}/">{{ commit.creator_name|email2nickname }}</a>
|
||||
</td>
|
||||
{% else %}
|
||||
<td>未知</td>
|
||||
{% endif %}
|
||||
|
||||
<td>
|
||||
{{ commit.props.desc|translate_commit_desc }}
|
||||
{% if not forloop.last %}
|
||||
<a class="lsch" href="{{ SITE_ROOT }}repo/history/changes/{{ repo.id }}/?commit_id={{ commit.id }}" data="{{ commit.props.ctime|tsstr_sec }}">详情</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
{% if not forloop.last %}
|
||||
<td>
|
||||
<a href="{% url 'repo_history_view' repo.id %}?commit_id={{ commit.id }}" class="op">浏览</a>
|
||||
<a href="#" data="{{ SITE_ROOT }}repo/history/revert/{{ repo.id }}/?commit_id={{ commit.id }}" class="repo-revert op">还原</a>
|
||||
</td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<div id="paginator">
|
||||
{% if current_page != 1 %}
|
||||
<a href="?page={{ prev_page }}&per_page={{ per_page }}">上一页</a>
|
||||
{% endif %}
|
||||
{% if page_next %}
|
||||
<a href="?page={{ next_page }}&per_page={{ per_page }}">下一页</a>
|
||||
{% endif %}
|
||||
<span>每页:</span>
|
||||
{% if per_page == 25 %}
|
||||
<span> 25 </span>
|
||||
{% else %}
|
||||
<a href="?per_page=25" class="per-page">25</a>
|
||||
{% endif %}
|
||||
{% if per_page == 50 %}
|
||||
<span> 50 </span>
|
||||
{% else %}
|
||||
<a href="?per_page=50" class="per-page">50</a>
|
||||
{% endif %}
|
||||
{% if per_page == 100 %}
|
||||
<span> 100 </span>
|
||||
{% else %}
|
||||
<a href="?per_page=100" class="per-page">100</a>
|
||||
{% endif %}
|
||||
{% block main_panel %}
|
||||
<div class="w100 ovhd">
|
||||
<h2 class="fleft">{{repo.props.name}} 修改历史</h2>
|
||||
<button data="{{ SITE_ROOT }}repo/{{ repo.props.id }}/" class="fright" id="history-back-to-repo">返回同步目录</button>
|
||||
</div>
|
||||
<div class="commit-list-outer-container">
|
||||
<div class="commit-list-inner-container">
|
||||
<table class="commit-list">
|
||||
<tr>
|
||||
<th width="13%" class="time">修改时间</th>
|
||||
<th width="15%">修改者</th>
|
||||
<th width="57%">描述</th>
|
||||
<th width="15%">操作</th>
|
||||
</tr>
|
||||
|
||||
<div id="ls-ch" class="hide"></div><!--list modification details of a commit-->
|
||||
{% for commit in commits %}
|
||||
<tr>
|
||||
<td class="time">{{ commit.ctime|translate_commit_time }}</td>
|
||||
|
||||
{% if commit.creator_name %}
|
||||
<td>
|
||||
<a href="{{ SITE_ROOT }}profile/{{ commit.creator_name }}/">{% avatar commit.creator_name 16 %}</a>
|
||||
<a href="{{ SITE_ROOT }}profile/{{ commit.creator_name }}/">{{ commit.creator_name|email2nickname }}</a>
|
||||
</td>
|
||||
{% else %}
|
||||
<td>未知</td>
|
||||
{% endif %}
|
||||
|
||||
<td>
|
||||
{{ commit.props.desc|translate_commit_desc }}
|
||||
{% if not forloop.last %}
|
||||
<a class="lsch" href="{{ SITE_ROOT }}repo/history/changes/{{ repo.id }}/?commit_id={{ commit.id }}" data="{{ commit.props.ctime|tsstr_sec }}">详情</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
{% if not forloop.last %}
|
||||
<td>
|
||||
<a href="{% url 'repo_history_view' repo.id %}?commit_id={{ commit.id }}" class="op">浏览</a>
|
||||
<a href="#" data="{{ SITE_ROOT }}repo/history/revert/{{ repo.id }}/?commit_id={{ commit.id }}" class="repo-revert op">还原</a>
|
||||
</td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<div id="paginator">
|
||||
{% if current_page != 1 %}
|
||||
<a href="?page={{ prev_page }}&per_page={{ per_page }}">上一页</a>
|
||||
{% endif %}
|
||||
{% if page_next %}
|
||||
<a href="?page={{ next_page }}&per_page={{ per_page }}">下一页</a>
|
||||
{% endif %}
|
||||
<span>每页:</span>
|
||||
{% if per_page == 25 %}
|
||||
<span> 25 </span>
|
||||
{% else %}
|
||||
<a href="?per_page=25" class="per-page">25</a>
|
||||
{% endif %}
|
||||
{% if per_page == 50 %}
|
||||
<span> 50 </span>
|
||||
{% else %}
|
||||
<a href="?per_page=50" class="per-page">50</a>
|
||||
{% endif %}
|
||||
{% if per_page == 100 %}
|
||||
<span> 100 </span>
|
||||
{% else %}
|
||||
<a href="?per_page=100" class="per-page">100</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div id="ls-ch" class="hide"></div><!--list modification details of a commit-->
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_script %}
|
||||
<script type="text/javascript">
|
||||
//list modification made by a commit
|
||||
$('.lsch').each(function() {
|
||||
$(this).click(function() {
|
||||
var time = '<span class="latest-commit-time-author">(' + $(this).attr('data') + ')</span>';
|
||||
$.ajax({
|
||||
url: $(this).attr('href'),
|
||||
dataType: 'json',
|
||||
cache: false,
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
success: function(data) {
|
||||
var title = '<h3>修改详情' + time + '</h3>',
|
||||
con = '';
|
||||
var show = function(data_) {
|
||||
con += '<ul>';
|
||||
for (var i = 0, len = data_.length; i < len; i++) {
|
||||
con += '<li>' + data_[i] + '</li>';
|
||||
}
|
||||
con += '</ul>';
|
||||
};
|
||||
if (data['new'].length > 0) {
|
||||
con += '<h4 id="ls-ch-new">新文件</h4>';
|
||||
show(data['new']);
|
||||
}
|
||||
if (data['removed'].length > 0) {
|
||||
con += '<h4 id="ls-ch-rm">删除的文件</h4>';
|
||||
show(data['removed']);
|
||||
}
|
||||
if (data['renamed'].length > 0) {
|
||||
con += '<h4 id="ls-ch-rn">重命名或移动的文件</h4>';
|
||||
show(data['renamed']);
|
||||
}
|
||||
if (data['modified'].length > 0) {
|
||||
con += '<h4 id="ls-ch-modi">修改的文件</h4>';
|
||||
show(data['modified']);
|
||||
}
|
||||
if (data['newdir'].length > 0) {
|
||||
con += '<h4 id="ls-ch-newdir">新目录</h4>';
|
||||
show(data['newdir']);
|
||||
}
|
||||
if (data['deldir'].length > 0) {
|
||||
con += '<h4 id="ls-ch-deldir">删除的目录</h4>';
|
||||
show(data['deldir']);
|
||||
}
|
||||
if (!con) {
|
||||
con = '<p>没有文件被改动</p>';
|
||||
}
|
||||
$('#ls-ch').html(title + con).modal({appendTo:'#main', maxHeight: window.innerHeight - 57, autoResize:true});
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
{% include 'snippets/list_commit_detail.html' %}
|
||||
$('#history-back-to-repo').click(function() {
|
||||
location.href = $(this).attr('data');
|
||||
});
|
||||
|
||||
addConfirmTo($(".repo-revert"), '确定要还原该目录?');
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
49
templates/snippets/list_commit_detail.html
Normal file
49
templates/snippets/list_commit_detail.html
Normal file
@@ -0,0 +1,49 @@
|
||||
$('.lsch').click(function() {
|
||||
var time = '<span class="latest-commit-time-author">(' + $(this).attr('data') + ')</span>';
|
||||
$.ajax({
|
||||
url: $(this).attr('href'),
|
||||
dataType: 'json',
|
||||
cache: false,
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
success: function(data) {
|
||||
var title = '<h3>修改详情' + time + '</h3>',
|
||||
con = '';
|
||||
var show = function(data_) {
|
||||
con += '<ul>';
|
||||
for (var i = 0, len = data_.length; i < len; i++) {
|
||||
con += '<li>' + data_[i] + '</li>';
|
||||
}
|
||||
con += '</ul>';
|
||||
};
|
||||
if (data['new'].length > 0) {
|
||||
con += '<h4 id="ls-ch-new">新文件</h4>';
|
||||
show(data['new']);
|
||||
}
|
||||
if (data['removed'].length > 0) {
|
||||
con += '<h4 id="ls-ch-rm">删除的文件</h4>';
|
||||
show(data['removed']);
|
||||
}
|
||||
if (data['renamed'].length > 0) {
|
||||
con += '<h4 id="ls-ch-rn">重命名或移动的文件</h4>';
|
||||
show(data['renamed']);
|
||||
}
|
||||
if (data['modified'].length > 0) {
|
||||
con += '<h4 id="ls-ch-modi">修改的文件</h4>';
|
||||
show(data['modified']);
|
||||
}
|
||||
if (data['newdir'].length > 0) {
|
||||
con += '<h4 id="ls-ch-newdir">新目录</h4>';
|
||||
show(data['newdir']);
|
||||
}
|
||||
if (data['deldir'].length > 0) {
|
||||
con += '<h4 id="ls-ch-deldir">删除的目录</h4>';
|
||||
show(data['deldir']);
|
||||
}
|
||||
if (!con) {
|
||||
con = '<p>没有文件被改动</p>';
|
||||
}
|
||||
$('#ls-ch').html(title + con).modal({appendTo:'#main', maxHeight: window.innerHeight - 57, autoResize:true});
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
Reference in New Issue
Block a user