You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

452 lines
12 KiB
HTML

5 years ago
<extend name="Public/base" />
<block name="style">
<style>
.sidebar .right-cnt{
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: 1px 2px 5px rgba(180,180,180,0.75);
-moz-box-shadow: 1px 2px 5px rgba(180,180,180,0.75);
box-shadow: 1px 2px 5px rgba(180,180,180,0.75);
min-height: 530px;
display: block;
border: 1px solid #c9ccd0;
background-color: #fff;
}
.sidebar .right-head{
overflow: hidden;
padding: 0 30px;
height: 50px;
line-height: 50px;
text-align: center;
font-size: 14px;
border-bottom: 1px solid #c9ccd0;
background-color: #dee0e6;
background-image: url(../../image/report/gradient-line.png);
background-position: top;
background-repeat: no-repeat;
-webkit-border-top-right-radius: 5px;
-moz-border-radius-topright: 5px;
border-top-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
-moz-border-radius-topleft: 5px;
border-top-left-radius: 5px;
}
.sidebar .prev-block{
width: 100%;
height: 203px;
line-height: 203px;
margin-bottom: 40px;
text-align: center;
}
.sidebar .prev-block .file-prev{
max-width: 203px;
max-height: 203px;
vertical-align: middle;
background-color: #f0f0f0;
-webkit-box-shadow: 0 0 2px rgba(120,120,120,0.5);
-moz-box-shadow: 0 0 2px rgba(120,120,120,0.5);
box-shadow: 0 0 2px rgba(120,120,120,0.5);
}
}
.sidebar .right-body-block .file-info-item {
margin-bottom: 8px;
}
</style>
</block>
<block name="sidebar">
<div class="right-cnt">
<!-- ko ifnot: certainFile -->
<div class="right-head">
未选择文件
</div>
<div class="right-body">
<div class="right-body-block">
<div class="prev-block">
<span>点击左侧文件名以查看信息</span>
</div>
</div>
</div>
<!-- /ko -->
<!-- ko with: certainFile --><!-- /ko -->
</div>
</block>
<block name="body">
<!-- 标题栏 -->
<div class="main-title">
<h2>blackwhite的七牛空间</h2>
</div>
<div>
<form action="__SELF__" method="post">
<input type="text" class="search-input" name="prefix" placeholder="输入资源名前缀匹配">
<button class="btn" type="submit">搜索</button>
<input type="file" name="file" id="upload-file">
<button class="btn" target-form="ids" id="batchDelBtn" type="button">删 除</button>
<a href="javascript:location.reload(true);" class="btn">刷新</a>
</form>
</div>
<!-- 数据列表 -->
<div class="data-table table-striped">
<form action="{:U('batchDel')}" id="ids">
<table id="file_list">
<thead>
<tr>
<th></th>
<th>文件名</th>
<th>mimeType</th>
<th >最后更新时间</th>
<th>文件大小</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<volist name="_list" id="vo">
<tr>
<td><input type="checkbox" name="key" value="{$vo.key}"></td>
<td>{$vo.key}</td>
<td>{$vo.mimeType} </td>
<td>{$vo.putTime|strval|substr=###,0,11|bcmul="1000000000"|date="Y-m-d H:i:s",###}</td>
<td>{$vo.fsize|format_bytes}</td>
<td>
<a href="javascript:;" data-href="{:U('rename?file='.$vo['key'])}" class="rename" title="{$vo.key}">重命名</a>
<a href="{:$qiniu->downLink($vo['key'])}" target="_blank">下载</a>
<a href="{:U('del?file='.$vo['key'])}">删除</a>
<a href="javascript:adv('{$vo.mimeType}','{$vo.key}')">高级</a>
</td>
</tr>
</volist>
</tbody>
</table>
</form>
</div>
<!-- 分页 -->
<div class="page">
{$_page}
</div>
</block>
<block name="script">
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<script type="text/javascript" src="__STATIC__/thinkbox/jquery.thinkbox.js"></script>
<script id="hooktpl" type="text/tpl">
<form action="" method="post" class="form-horizontal hooktpl" id="rename_form">
<label class="item-label">请输入文件名:</label>
<div class="controls">
<label class="textarea">
<input type="text" name="new_name" class="input-large" />
</label>
</div>
</form>
</script>
<script id="imgAdv" type="text/tpl">
<p>
<table>
<tbody>
<tr>
<td>
<input type="radio" class="type" name="type" value=0 checked>
</td>
<td>
查看基本信息
</td>
</tr>
<tr>
<td>
<input type="radio" class="type" name="type" value=1>
</td>
<td>
查看exif
</td>
</tr>
<tr>
<td>
<input type="radio" class="type" name="type" value=2>
</td>
<td>
<form action="{:U('Qiniu/dealImage')}" class="form-horizontal hooktpl" id="resize_form" target="_blank" method="post">
<label class="item-label">缩放类型:</label>
<div class="controls">
<label class="radio">
<input type="radio" name="mode" value="1">
非等比缩放
</label>
<label class="radio">
<input type="radio" name="mode" value="2" checked>
等比缩放
</label>
</div>
<div class="controls">
<label class="text">
宽度
<input type="text" name="w">
</label>
<label class="text">
高度
<input type="text" name="h">
</label>
</div>
<div class="controls">
<label class="text">
质量
<input type="text" name="q" value="100">(1~100)
</label>
<label class="select">
输出格式:
<select name="format">
<option>jpg</option>
<option>gif</option>
<option>png</option>
<option>webp</option>
</select>
</label>
<input type="hidden" name="imageView" value=1>
<input type="hidden" name="key">
</div>
</form>
</td>
</tr>
</tbody>
</table>
</p>
</script>
<script id="videoAdv" type="text/tpl">
<form action="" method="post" class="form-horizontal hooktpl" id="rename_form">
<label class="item-label">请输入文件名:</label>
<div class="controls">
<label class="textarea">
<input type="text" name="new_name" class="input-large" />
</label>
</div>
</form>
</script>
<script id="mdAdv" type="text/tpl">
<form action="{:U('Qiniu/dealDoc')}" class="form-horizontal hooktpl" id="translate_form" target="_blank" method="post">
<label class="item-label">请输入远程css路径</label>
<div class="controls">
<label class="textarea">
<input type="text" name="cssurl" class="input-large" />
</label>
</div>
<label class="item-label">请选择模式:</label>
<div class="controls">
<label class="radio">
<input type="radio" name="mode" value=0 checked/>
完整的 HTML(head+body) 输出
</label>
<label class="radio">
<input type="radio" name="mode" value=1 />
只转为HTML Body
</label>
</div>
<input type="hidden" name="key">
</form>
</script>
<script type="text/javascript">
(function($){
//上传文件
/* 初始化上传插件 */
$("#upload-file").uploadify({
"height" : 30,
"swf" : "__STATIC__/uploadify/uploadify.swf",
"fileObjName" : "qiniu_file",
"buttonText" : "上传文件",
"uploader" : "{:U('uploadOne',array('session_id'=>session_id(),'ajax'=>1))}",
"width" : 120,
'removeTimeout' : 1,
'onInit' : init,
'multi' : false,
"onUploadSuccess" : uploadSuccess,
'onFallback' : function() {
alert('未检测到兼容版本的Flash.');
}
});
function init(){
$('#upload-file, #upload-file-queue').css('display','inline-block');
}
/* 文件上传成功回调函数 */
function uploadSuccess(file, data){
console.log(data);
var data = $.parseJSON(data);
if(data.status){
updateAlert('上传成功', 'alert-success');
setTimeout(function(){
location.reload(true);
},1500);
} else {
console.log(data.data);
updateAlert('上传失败');
}
}
//文件信息预览
$('#file_list tr').click(function(event){
$target = $(event.target);
$tr = $(this);
if(!$target.is(':checkbox')){
$('#file_list :checkbox').removeAttr('checked');
$tr.find(':checkbox').prop('checked',true);
$.ajax({
url : '{:U('detail')}',
data : { key : $('td:eq(1)', $tr).text()},
success: function(data){
if(data.status){
$('.sidebar .right-cnt').html(data.tpl);
}else{
updateAlert('获取文件信息失败');
}
}
})
}
});
//批量删除
$('#batchDelBtn').click(function(){
var $checked = $('#file_list input[name="key"]:checked');
if($checked.length != 0){
if(confirm('您确认删除吗?')){
$.ajax({
url : '{:U('batchDel')}',
data : { key : $checked.serializeArray()},
success: function(data){
if(data.status){
updateAlert('删除成功','alert-success');
location.reload(true);
}else{
updateAlert('批量删除失败');
}
}
});
}
}else{
updateAlert('请先选择一项');
}
return false;
});
//重命名
$('.rename').click(function(){
var action = $.trim($(this).data('href'));
var html = $($("#hooktpl").html());
html.find("input[name=new_name]").val(this.title);
html.find("input[name=new_name]").parents('form').attr('action', action);
//ajaxForm 公共函数
function ajaxForm(element,callback,dataType){
var form = $(element).closest('form');
var dataType = dataType || 'json';
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(),
async: false,
dataType:dataType,
success: function(data) {
if($.isFunction(callback)){
callback(data,form);
}
}
});
}
option = {
title:'文件名更改',
actions:['close'],
drag:true,
tools:true,
buttons:{"ok":['保存', 'blue',function(){
var _this = this;
ajaxForm(this.find('.input-large'),function(data){
if (data.status){
_this.hide();
updateAlert(data.info,'alert-success');
setTimeout(function(){
location.reload(true);
},1000);
}else{
updateAlert(data.info);
}
})
}]}
}
$.thinkbox(html,option);
});
})(jQuery);
//高级处理
function adv(mime, key){
if($.inArray(mime,['image/jpeg','image/png', 'image/gif']) != -1){
//图片
var html = $($("#imgAdv").html());
var option = {
title:'图片处理',
actions:['close'],
drag:true,
tools:true,
buttons:{"ok":['提 交', 'blue',function(){
var _this = this;
var type = this.find('[name="type"]:checked').val();
if(type == 2){
this.find('[name=key]').val(key);
this.find('#resize_form').submit();
}else if(type == 0){
window.open(Think.U('Admin/Qiniu/dealImage','key='+key+'&imageInfo=1'));
}else{
window.open(Think.U('Admin/Qiniu/dealImage','key='+key+'&exif=1'))
}
this.hide();
}]}
}
}else if(key.slice(-3) == '.md'){
//markdown
var html = $($("#mdAdv").html());
var option = {
title:'md2html转换',
actions:['close'],
drag:true,
tools:true,
buttons:{"ok":['提交', 'blue',function(){
var _this = this;
this.find('[name=key]').val(key);
this.find('#translate_form').submit();
}]}
}
}else{
//视频
var html = $($("#videoAdv").html());
var option = {
title:'视频处理',
actions:['close'],
drag:true,
tools:true,
buttons:{"ok":['保存', 'blue',function(){
var _this = this;
ajaxForm(this.find('.input-large'),function(data){
if (data.status){
_this.hide();
updateAlert(data.info,'alert-success');
setTimeout(function(){
location.reload(true);
},1000);
}else{
updateAlert(data.info);
}
})
}]}
}
}
$.thinkbox(html,option);
}
</script>
</block>