Files
DzzOffice/dzz/system/template/positionlist.htm
2024-10-15 13:08:16 +08:00

409 lines
13 KiB
HTML
Raw Permalink 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_common}-->
<link href="static/jstree/themes/default/style.min.css?{VERHASH}" rel="stylesheet" media="all">
<link href="dzz/system/css/selfilewindow.css?{VERHASH}" rel="stylesheet" media="all">
<style>
html, body {
height: 100%;
width: 100%;
margin: 0;
overflow: auto;
padding-bottom: 34px;
background: transparent;
background-color:transparent;
}
.orgtree-search {
position: fixed;
width: 100%;
left: 0;
bottom: 0;
background-color: #FFF;
}
.orgtree-search .form-control {
padding: 5px 50px 5px 5px;
border: 0;
border-top: 1px solid #CCC;
box-shadow: none;
background-color: #FFFFFF;
}
.orgtree-search .form-control:focus {
box-shadow: none;
}
.orgtree-search .search {
position: absolute;
right: 25px;
top: 1px;
width: 24px;
height: 32px;
padding: 8px 5px;
font-size: 18px;
}
.orgtree-search .delete {
position: absolute;
right: 1px;
top: 1px;
width: 24px;
height: 32px;
padding: 8px 5px;
font-size: 18px;
}
.orgtree-search a:hover {
background: #F7F7F7;
}
.jstree-default-responsive .jstree-anchor > .jstree-themeicon {
background-size: auto;
}
.iconFirstWord {
width: 24px;
height: 24px;
border-radius: 50%;
display: inline-block;
line-height: 24px;
text-align: center;
margin-right: 2px;
color: #FFFFFF;
}
.jstree-default .jstree-node {
line-height: 2.4rem;
}
.jstree-default .jstree-node, .jstree-default .jstree-icon {
background-image: url(dzz/system/images/32px.png);
}
.jstree-default .jstree-last {
background: 0 0;
}
.jstree-default .jstree-themeicon-custom {
background-color: transparent;
background-image: none;
}
#position {
position: absolute;
left: 0;
right: 0;
top: 0px;
bottom: 64px;
overflow: auto;
padding: 5px;
}
.modal-footer {
position: fixed;
left: 0;
right: 0;
bottom: 0;
}
<!--
{
if $ _GET [ 'nosearch' ] > 0
}
-->
.orgtree-search {
display: none;
}
body {
padding-bottom: 0;
}
<!--
{
/
if
}
-->
</style>
<script type="text/javascript">
var ctrlid = '$ctrlid';
/*var multiple=parseInt('$_GET[multiple]')>0?true:false;
var nouser=parseInt('$_GET[nouser]')>0?1:0;
var stype='$_GET[stype]'?parseInt('$_GET[stype]'):0;//0:可以选择机构和用户1仅选择机构和部门2仅选择用户
var moderator=parseInt('$_GET[moderator]')>0?1:0;*/
var defaultjson = eval('(' + '{$defaultjson}' + ')');
</script>
<div class="mechsnismMenu" id="position" class="usertree-container list-unstyled"></div>
<script type="text/javascript">
var opened = {};
/*jstree 左侧个人、机构及群组*/
$(document).ready(function (e) {
opened = window.opener;
var _explorer = {};
_explorer.jstree = jQuery('#position').jstree({
"core": {
"multiple": true,
"check_callback": true,
"themes": {
"responsive": false
},
'data': function (node, cb) {
var self = this;
$.getJSON('index.php?mod=system&op=positionlist&do=get_children&range={$range}&selhome={$selhome}&selorg={$selorg}&selgroup={$selgroup}&defaultsel={$defaultselect}', {'id': node.id}, function (json) {
cb.call(this, json);
});
}
},
"types": {
"#": {
"max_children": -1,
"max_depth": -1,
"valid_children": -1
},
"organization": {//部门
"icon": "dzz dzz-account-box",
"valid_children": ['depart', 'folder']
},
"department": {
"icon": "dzz/system/images/department.png",
"valid_children": ['depart', 'folder']
},
"group": {//群组
"li_attr": 'aaa',
"icon": "dzz dzz-group",
"valid_children": ['folder']
},
"home": {//我的网盘
"icon": "dzz dzz-mydisk",
"valid_children": ['folder']
},
"folder": {//群组
"icon": "dzz dzz-folder",
"valid_children": ['folder']
},
},
"plugins": ['types', 'search', 'wholerow']
}).on("ready.jstree", function () {
init_selected();
});
$('#position').off('select_node.jstree').on('select_node.jstree', function (e, data) {
var inst = $('#position').jstree(true);
var node = data.node;
if (!node.li_attr.fid) {
var replacematch = /^([a-z]|[A-Z])+_/;
var fid = node.id.replace(replacematch, '');
} else {
var fid = node.li_attr.fid;
}
var nummatch = /^\d+$/;
if (nummatch.test(fid)) {
if('{$savefile}'){
$.post('index.php?mod=system&op=positionlist&do=checkupload', {'fid': fid}, function (data) {
if (data['perm']) {
$('#' + ctrlid).val(fid);
} else {
inst.deselect_node(node);
$('#' + ctrlid).val('');
}
}, 'json')
}else{
$('#' + ctrlid).val(fid);
}
} else {
inst.deselect_node(node);
$('#' + ctrlid).val('');
}
inst.open_node(node);
return false;
});
});
function init_selected() {
var inst = $('#position').jstree(true);
if(!defaultjson.gid){
defaultjson.gid = 0;
}
if(!defaultjson.fid){
defaultjson.fid = 0;
}
open_node_by_id(defaultjson.gid,defaultjson.fid);
}
function open_node_by_id(gid, fid) {
var inst = $('#position').jstree(true);
var node = null;
if (fid) {
node = inst.get_node('#f_' + fid) || inst.get_node('#u_' + fid);
} else if (gid) {
node = inst.get_node('#g_' + gid) || inst.get_node('#gid_' + gid);
} else {
inst.deselect_all();
return;
}
if (node) {
inst.deselect_all();
var selects = inst.get_selected();
for (var i = 0; i < selects.length; i++) {
if (selects[i] === node.id) {
continue;
}
inst.deselect_node('#' + selects[i]);
}
inst.select_node(node);
} else {
$.post('index.php?mod=system&op=positionlist&do=getParentsArr', {
'fid': fid,
'gid': gid
}, function (data) {
var node = inst.get_node('#' + data[0]);
open_node_bg(inst, node, data);
}, 'json');
}
}
function open_node_bg(inst, node, arr) {
inst.open_node(node, function (node) {
var i = jQuery.inArray(node.id, arr);
if (i < arr.length && i > -1 && document.getElementById(arr[i + 1])) {
open_node_bg(inst, document.getElementById(arr[i + 1]), arr);
} else {
inst.deselect_all();
inst.select_node(node);
}
});
};
function createNewFolder() {
var inst = $('#position').jstree(true);
var id = $('#position').jstree("get_selected");
console.log(id);
if (id.length < 1) {
showmessage(__lang.please_select_dir, 'danger', 2000, 1);
return false;
} else {
var pnode = inst.get_node(id);
}
var fid = '';
if (!pnode.li_attr.fid) {
var replacematch = /^([a-z]|[A-Z])+_/;
fid = pnode.id.replace(replacematch, '');
} else {
fid = pnode.li_attr.fid;
}
if (!fid) {
showmessage(__lang.please_select_dir, 'danger', 2000, 1);
return false;
} else {
$.post('index.php?mod=system&op=positionlist&do=getfoldername', {'fid': fid}, function (data) {
if (data['success']) {
var node = {
'text': data.fname,
'icon': "dzz dzz-folder",
'id': 'new_folder',
'type': "folder",
};
inst.create_node(id, node, 'last', function (datas) {
inst.open_node(pnode);
$('#new_folder').css({'position': 'relative'});
var html = '<div id="replace_jstreeli" class="layer" style="position:absolute;top:0px;left:50px;">' +
'<input type="text" value="' + data.fname + '" class="nameinput" style="height:24px"/>' +
'<button type="button" class="btn btn-outline-secondary button-rightcolor" onclick="realcreate(this,' + node.id + ',' + pnode.id + ')">' +
'<span class="dzz dzz-done"></span>' +
'</button>' +
'<button type="button" class="btn btn-outline-secondary button-rightcolor" onclick="canclecreate(this,' + node.id + ')">' +
'<span class="dzz dzz-close"></span>' +
'</button> ' +
'</div>';
$('#new_folder').append(html);
});
} else {
// showDialog(data['error']);
showmessage(data['error'], "danger", 2000, 1);
}
}, 'json');
return false;
}
}
function realcreate(obj, node, parentnode) {
var inst = $('#position').jstree(true);
var pnode = inst.get_node(parentnode);
var fid = '';
if (!pnode.li_attr.fid) {
var replacematch = /^([a-z]|[A-Z])+_/;
fid = pnode.id.replace(replacematch, '');
} else {
fid = pnode.li_attr.fid;
}
var fname = $(obj).closest('.layer').find('.nameinput').val();
var empty = /^\s*$/;
if (empty.test(fname)) {
showmessage(__lang.name_cannot_empty, "danger", 2000, 1);
return false;
}
$.post('index.php?mod=system&op=positionlist&do=creatnewfolder', {
'fid': fid,
'foldername': fname
}, function (data) {
if (data['msg'] == 'success') {
inst.rename_node(node, fname);
inst.set_id(node, 'f_' + data.fid);
$(obj).closest('.layer').remove();
inst.deselect_node(parentnode);
inst.select_node(node);
} else {
showmessage(data['error'], "danger", 2000, 1);
}
}, 'json');
return false;
}
function canclecreate(obj, node) {
var inst = $('#position').jstree(true);
$(obj).closest('.layer').remove();
inst.delete_node(node);
}
function submitdata() {
var fid = $('#' + ctrlid).val();
if (!fid) {
// showDialog(__lang.please_select_dir);
showmessage(__lang.please_select_dir, "danger", 2000, 1);
return false;
} else {
$.post(MOD_URL + '&op=positionlist&do=geffolderinfo', {'fid': fid}, function (data) {
if (parent.{$callback}) {
parent.{$callback}(fid, data);
} else {
opened.{$callback}(fid, data);
}
hide_window();
}, 'json')
}
return false;
}
function hide_window() {
if (opened) {
window.close();
} else {
parent.hide_window();
}
}
</script>
<div class="modal-footer">
<input id="$ctrlid" type="hidden" name="fid" value=""/>
<!--{if $allowcreate}-->
<button type="button" class="btn btn-outline-secondary pull-left" onclick="createNewFolder();return false;">{lang
newfolder}
</button>
<!--{/if}-->
<button type="button" class="btn btn-primary" onclick="submitdata()">{lang confirms}</button>
<button type="button" class="btn btn-outline-danger" data-bs-dismiss="modal" aria-label="Close"
onclick="hide_window()">{lang cancel}
</button>
</div>
<script type="text/javascript" src="static/js/jstree.min.js?{VERHASH}"></script>
<!--{template common/footer}-->