Files
DzzOffice/dzz/share/template/share.htm
小胡 b0bb8e3fc0 更新内容:
1. 水印样式优化 🎨
在特定场景下,我们对水印样式进行了调整,确保水印在不被误选的同时,依然能够清晰展示,保护您的文档安全。
2. 编辑器内边距调整 📝
为了让您的编辑体验更加舒适,我们微调了编辑器主体的内边距,让内容显示更加集中和美观。
3. 文件图标大升级 📊
思维导图(.smm)、流程图(.drawio)、Excalidraw白板(.edraw)等多种文件类型现在拥有了全新的、更具辨识度的图标,让您的文件管理更加直观。
4. 网盘分享短链接功能 🔗
我们将网盘分享界面的分享链接优化为短链接,不仅方便记忆和分享,还与分享管理应用中的显示保持一致,提升用户体验。
5. 新增404页面 🚫
当您访问不存在的页面时,将不再只是简单的错误提示,而是会看到一个友好的404页面,为您指引方向。
6. 分享管理新增短链接栏 🔍
现在,您可以在分享管理应用中轻松管理所有生成的短链接,无论是查看、编辑还是删除,都变得更加便捷。
2024-07-20 18:54:06 +08:00

336 lines
15 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.
<!--{template common/header_simple_start}-->
<link href="dzz/images/folder/folder.css?{VERHASH}" rel="stylesheet" media="all">
<link rel="stylesheet" type="text/css" href="static/lyear/js/bootstrap-lyear-select/bootstrap-lyear-select.css?{VERHASH}">
<!--{template common/header_simple_end}-->
<!--{template common/commer_header}-->
<div class="bs-container clearfix">
<div class="bs-left-container clearfix">
<!--{template left}-->
</div>
<div class="left-drager">
<div class="left-drager-op">
<div class="left-drager-sub"></div>
</div>
</div>
<div class="bs-main-container">
<!--{if $_G[adminid]==1}-->
<!--{if !$list}-->
<!--{else}-->
<div class="main-header2">
<ul class="nav nav-pills clearfix">
<li class="pull-right " style="margin:5px 0;">
<form name="search" action="{DZZSCRIPT}" class="form-inline" method="get">
<input type="hidden" name="mod" value="{MOD_NAME}" />
<input type="hidden" name="lpp" value="$lpp">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="keyword" value="$keyword" />
<input name="username" type="text" value="$username" class="form-control" style="width:90px ;display:inline-block" placeholder="{lang username}" />
<button class="btn btn-outline-info" onclick="this.parentNode.submit()"><i class="glyphicon glyphicon-search"></i></button>
<div class="pull-right">
<div class="input-group mb-3">
<span class="input-group-text">每页显示</span>
<select class="form-select" onchange="if(this.options[this.selectedIndex].value != '') {this.form.lpp.value = this.options[this.selectedIndex].value;this.form.submit(); }">
<option value="10" $checklpp[10]> 10 </option>
<option value="20" $checklpp[20]> 20 </option>
<option value="40" $checklpp[40]> 40 </option>
<option value="100" $checklpp[100]> 100 </option>
<option value="200" $checklpp[200]> 200 </option>
</select>
<span class="input-group-text">条记录</span>
</div>
</div>
</form>
</li>
</ul>
</div>
<!--{/if}-->
<!--{/if}-->
<div class="main-content clearfix">
<!--{if !$list}-->
<div style="text-align: center;">
<img src="static/image/common/no_list.png" /><br>
<span class="no-result-title">{lang no_relevant_content}</span>
</div>
<!--{else}-->
<div node-type="module" class="module-list-toolbar" style="display: none;">
<div class="bar clearfix">
<span class="text"><span node-type="chk" class="chk-box">
<span class="chk chk-ico"></span>
</span>
{lang checked}<span node-type="num">0</span>{lang file_number_type}</span>
<button class="btn btn-danger" data-key="unshare"><span>{lang delete_share}</span> </button><!--{if $_G[adminid]==1}-->
<button class="btn btn-warning" data-key="forbidden"><span>{lang screen_share}</span> </button>
<button class="btn btn-success" data-key="allow"><span>{lang cancel_shielding}</span> </button><!--{/if}-->
</div>
</div>
<div node-type="module" class="module-list-view">
<div node-type="wrapper" class="list-view-home">
<div node-type="title" class="title">
<div class="item clearfix">
<!-- 第一列 -->
<div node-type="title-col" data-key="title" class="col c1">
<div class="name"> <span>{lang sharing_file}</span>
<span node-type="order-status" class="asc <!--{if $asc}-->desc<!--{/if}-->" style="visibility: <!--{if $order=='title'}-->visible<!--{else}-->hidden<!--{/if}-->;"></span>
</div>
</div>
<!-- 其他列 -->
<div node-type="title-col" data-key="dateline" class="col"> {lang share_time}
<span node-type="order-status" class="asc <!--{if $asc}-->desc<!--{/if}-->" style="visibility: <!--{if $order=='dateline'}-->visible<!--{else}-->hidden<!--{/if}-->;"></span>
</div>
<div node-type="title-col" data-key="count" class="col"> {lang view_count}
<span node-type="order-status" class="asc <!--{if $asc}-->desc<!--{/if}-->" style="visibility: <!--{if $order=='count'}-->visible<!--{else}-->hidden<!--{/if}-->;"></span>
</div>
<div node-type="title-col" data-key="type" class="col"> {lang file_type}
<span node-type="order-status" class="asc <!--{if $asc}-->desc<!--{/if}-->" style="visibility: <!--{if $order=='type'}-->visible<!--{else}-->hidden<!--{/if}-->;"></span>
</div>
<!--{if $_G[adminid]==1}-->
<div node-type="title-col" data-key="username" class="col"> {lang share_user}
<span node-type="order-status" class="asc <!--{if $asc}-->desc<!--{/if}-->" style="visibility: <!--{if $order=='username'}-->visible<!--{else}-->hidden<!--{/if}-->;"></span>
</div>
<!--{/if}-->
</div>
</div>
<div node-type="list" class="list list-share">
<!--{loop $list $value}-->
<div node-type="item" data-sid="$value[id]" data-status="$value[status]" class="item clearfix">
<!-- 第一列 -->
<div node-type="name" class="col c1 name" title="$value[title]" data-name="$value[title]">
<span node-type="chk" class="chk"> <span class="chk-ico"></span></span>
<!--{if $value[img]}--><img class="icon" src="$value[img]" />
<!--{/if}-->
<!--{if $value[status]<0}--><span node-type="name-tip" style="color: red;display: inline-block;">($value[fstatus])</span><!--{/if}-->
<span class="name-text-wrapper"> <span node-type="name-text" data-href="$value[sharelink]" class="name-text enabled">$value[title]</span> </span>
<!-- 私密分享图标 -->
<!--{if $value[password]}--><span class="ico-private-share" title="{lang private_share}"></span><!--{/if}-->
</div>
<!-- 其他列 -->
<div class="col dateline" data-dateline="$value[dateline]">$value[fdateline]</div>
<div class="col count" data-count="$value[count]">$value[count]{lang degree}</div>
<div class="col type" data-type="$value[ftype]">$value[ftype]</div>
<!--{if $_G[adminid]==1}-->
<div class="col username" data-type="$value[username]">
<a href="user.php?uid=$value[uid]">$value[username]</a>
</div>
<!--{/if}-->
<!-- 复制 -->
<div node-type="copy-bar" class="copy-bar">
<!--{if $value[qrcode]}-->
<a href="javascript:;" class="qrcode glyphicon glyphicon-qrcode" title="{lang scon_code_send_mobile}" data-container="body" data-html="true" data-bs-trigger="hover" data-bs-toggle="popover" data-bs-placement="right" data-content="<p class='text-center'><img src='$value[qrcode]'></p>"></a><!--{/if}-->
{lang link}
<a href="$value[sharelink]" target="_dzz">$value[sharelink]</a>
<!--{if $value[password]}-->&nbsp;{lang extract_password}$value[password]<!--{/if}-->
&nbsp;<button class="btn btn-primary js_copy" data-clipboard-text="{eval echo $value[password]?(分享名称.':'.$value[title].'
'.分享链接.':'.$value[sharelink].'
'.提取码.':'.$value[password]):$value[sharelink];}" style="position:relative"><i class="glyphicon glyphicon-duplicate"></i>复制<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span></button>
<!--{if $value[password]}-->
<button class="btn btn-primary js_copy" data-clipboard-text="$value[password]" style="position:relative"><i class="glyphicon glyphicon-duplicate"></i>提取码<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span></button>
<!--{/if}-->
<!--{if $value[endtime]}-->&nbsp;{lang expiration_time}$value[fendtime]<!--{/if}-->
<!--{if $value[times]}-->&nbsp;{lang limited_number}$value[count] / $value[times]<!--{/if}-->
</div>
</div>
<!--{/loop}-->
<div class="page clearfix" style="padding: 20px 0">$multi</div>
</div>
</div>
</div>
<!--{/if}-->
</div>
</div>
</div>
<script type="text/javascript">
jQuery(document).ready(function(e) {
jQuery('select').lyearSelect({
width:70,
});
jQuery(document).on('mouseenter', 'div[node-type=item]', function() {
jQuery(this).addClass('item-hover');
});
jQuery(document).on('mouseleave', 'div[node-type=item]', function() {
jQuery(this).removeClass('item-hover');
});
jQuery(document).on('click', 'span[node-type=name-text]', function() {
if(top._config) {
top.OpenWindow('url', jQuery(this).data('href'), jQuery(this).html());
} else {
window.open(jQuery(this).data('href'), jQuery(this).html());
}
});
jQuery('.chk[node-type=chk-all]').on('click', function() {
jQuery(this).addClass('chked');
jQuery('.item').each(function() {
jQuery(this).addClass('item-active').find('span[node-type=chk]').addClass('chked');
});
refresh_header();
return false;
});
jQuery(document).on('click', '.item .chk', function() {
jQuery(this).toggleClass('chked');
jQuery(this).closest('.item').toggleClass('item-active');
jQuery('.copy-bar').hide();
refresh_header();
return false;
});
jQuery('.module-list-toolbar .chk').on('click', function() {
if(jQuery(this).hasClass('chked')) {
jQuery(this).removeClass('chked');
jQuery('.chk[node-type=chk-all]').removeClass('chked');
jQuery('.module-list-toolbar').hide();
jQuery('.item.item-active').each(function() {
jQuery(this).removeClass('item-active').find('span[node-type=chk]').removeClass('chked');
jQuery(this).find('.copy-bar').hide();
});
} else {
jQuery(this).addClass('chked');
jQuery('.item:not(.item-active)').each(function() {
jQuery(this).addClass('item-active').find('span[node-type=chk]').addClass('chked');
});
}
});
jQuery(document).on('click', 'div[node-type=item]', function(e) {
e = e ? e : event;
var el = jQuery(this);
var obj = e.srcElement ? e.srcElement : e.target;
if(jQuery(obj).closest('.js_copy').length) return false;
var actives = jQuery('.item-active').length;
if(e.ctrlKey) {
jQuery('.item-active').not(this).find('.copy-bar').hide();
} else {
jQuery('.item-active').not(this).each(function() {
jQuery(this).removeClass('item-active').find('span[node-type=chk]').removeClass('chked')
.end().find('.copy-bar').hide();
});
}
if(el.hasClass('item-active') && (actives == 1 || e.ctrlKey)) {
el.removeClass('item-active').find('span[node-type=chk]').removeClass('chked');
el.find('.copy-bar').hide();
} else {
el.addClass('item-active').find('span[node-type=chk]').addClass('chked');
if(parseInt(el.data('status')) > -1) el.find('.copy-bar').show();
}
refresh_header();
});
var client = new Clipboard('.js_copy');
client.on("success", function(e) {
var self = e.trigger;
jQuery(self).find('.copy-success').removeClass('hide');
window.setTimeout(function() {
jQuery(self).find('.copy-success').addClass('hide');
}, 1000);
});
jQuery('.title .item .col[node-type=title-col]').on('click', function() {
var el = jQuery(this);
el.find('.asc').css('visibility', 'visible').toggleClass('desc');
el.siblings().find('.asc').css('visibility', 'hidden');
item_sort(el.data('key'), el.find('.asc').hasClass('desc') ? 'desc' : 'asc');
});
jQuery('button[data-key=unshare]').on('click', function() {
var msg = '{lang share_stop_sharing1}';
showDialog(msg, 'confirm', '{lang affirm_stop_sharing}', share_delete, 1)
});
<!--{if $_G[adminid]==1}-->
jQuery('button[data-key=forbidden]').on('click', function() {
var msg = '{lang share_stop_sharing2}';
showDialog(msg, 'confirm', '{lang affirm_screen_share}', share_forbidden, 1)
});
jQuery('button[data-key=allow]').on('click', function() {
var msg = '{lang share_stop_sharing3}';
showDialog(msg, 'confirm', '{lang affirm_cancel_shielding}', share_allow, 1)
});
<!--{/if}-->
jQuery('[data-bs-toggle="popover"]').popover();
});
function item_sort(key, order) {
location.href = '$theurl&order=' + key + '&asc=' + (order == 'desc' ? 1 : 0);
return;
}
function share_delete() {
var sids = new Array();
jQuery('.list .item-active').each(function() {
sids.push(jQuery(this).data('sid'));
});
jQuery.post('{MOD_URL}&op=ajax&do=delete', { "sids": sids }, function(json) {
for(var o in json.msg){
if(json.msg[o]['success']){
jQuery('.list div[data-sid="'+o+'"]').remove();
}
}
refresh_header();
}, 'json');
}
<!--{if $_G[adminid]==1}-->
function share_forbidden() {
var sids = new Array();
jQuery('.list .item-active').each(function() {
sids.push(jQuery(this).data('sid'));
});
jQuery.post('{MOD_URL}&op=ajax&do=forbidden', { "sids": sids, "flag": 'forbidden' }, function(json) {
if(json.msg == 'success') {
showmessage('{lang share_screen_success}', 'success', 2000, 1);
jQuery('.list .item-active').each(function() {
jQuery(this).attr('data-status', '-4');
if(jQuery(this).find('span[node-type=name-tip]').length) {
jQuery(this).find('span[node-type=name-tip]').html('({lang been_blocked})');
} else {
jQuery('<span node-type="name-tip" style="color: red;display: inline-block;">({lang been_blocked})</span>').insertBefore('.list .item-active .name-text-wrapper');
}
});
refresh_header();
} else {
showmessage('{lang shielding_failure}', 'danger', 3000, 1);
}
}, 'json');
}
function share_allow() {
var sids = new Array();
jQuery('.list .item-active').each(function() {
if(jQuery(this).data('status') == '-4') sids.push(jQuery(this).data('sid'));
});
if(sids.length) {
jQuery.post('{MOD_URL}&op=ajax&do=forbidden', { "sids": sids, "flag": 'allow' }, function(json) {
if(json.msg == 'success') {
showmessage('{lang cancel_shielding_success}', 'success', 2000, 1);
jQuery('.list .item-active').attr('data-status', '0').find('span[node-type=name-tip]').remove();
refresh_header();
} else {
showmessage('{lang cancel_shielding_failure}', 'danger', 3000, 1);
}
}, 'json');
}
}
<!--{/if}-->
function refresh_header() {
var sum = jQuery('.list .item.item-active').length;
var tsum = jQuery('.list .item').length;
var psum = jQuery('.list .item.item-active[data-status=-4]').length;
if(sum > 0) {
jQuery('.module-list-toolbar').find('span[node-type=num]').html(sum).end().show();
if(sum == tsum) {
jQuery('.module-list-toolbar').find('.chk').addClass('chked');
} else {
jQuery('.module-list-toolbar').find('.chk').removeClass('chked');
}
if(psum == sum) {
jQuery('.module-list-toolbar .bar').find('button[data-key=forbidden]').hide();
} else {
jQuery('.module-list-toolbar .bar').find('button[data-key=forbidden]').show();
}
if(psum > 0) {
jQuery('.module-list-toolbar .bar').find('button[data-key=allow]').show();
} else {
jQuery('.module-list-toolbar .bar').find('button[data-key=allow]').hide();
}
} else {
jQuery('.module-list-toolbar').hide();
jQuery('.chk[node-type=chk-all]').removeClass('chked');
}
}
</script>
<script type="text/javascript" src="static/lyear/js/bootstrap-lyear-select/bootstrap-lyear-select.js?{VERHASH}"></script>
<script type="text/javascript" src="static/clipboard/clipboard.min.js?{VERHASH}"></script>
<!--{template common/footer_simple}-->