Namespace.register("U.MD.DK.RE"); //Disk右键功能命名空间 //#region 文件属性 /** * 用户属性框的样式 * @param {object} 目录目录或者文件信息 * @param {string} 用户id */ U.MD.DK.RE.attribute = function (fileordir, userid) { var _diskinfo = U.MD.DK.M.diskOperatingSwitch(userid), _attributeel = U.MD.DK.RE.attributeStyle(fileordir, true, _diskinfo); //用户属性框的样式 U.UF.UI.alertClick(_attributeel); } /** * 用户属性框的样式 * @param {object} 目录目录或者文件信息 * @param {bool} 是否需要设置权限 */ U.MD.DK.RE.attributeStyle = function (fileordir, issetpermissions, diskinfo) { var _selected = 2; var _icon = U.MD.DK.C.getIcon(fileordir.UserDirectoryExtendType.toLowerCase()) var _box = $$("div", { className: "U_MD_DK_fileInfo" }); var _head = $$("div", { className: "U_MD_DK_fileInfo_head" }, _box); $$("div", { className: "U_MD_DK_fileInfo_line" }, _box); var _info = $$("div", { className: "U_MD_DK_fileInfo_info" }, _box); //图片样式设置 if (U.UF.UP.isImg(fileordir.UserDirectoryExtendType)) { var _img = $$("div", { className: "U_MD_DK_fileInfo_img" }, _head); $$("img", { "onerror": U.MD.C.imgError, "src": U.MD.C.getHeadImage(fileordir.UserDirectoryUrl) }, _img); } else { $$("div", { className: "U_MD_DK_fileInfo_icon U_MD_DK_Img " + _icon.classname[1] }, _head); } $$("span", { innerHTML: fileordir.UserallDirectoryName }, _head); //文件处理 if (fileordir.filetype) { $$("div", { "innerHTML": "类型:文件" }, _info); $$("div", { "spellcheck": "false", "onselectstart": U.UF.EV.stopBubble, "innerHTML": "路径:" + "http://fs.1473.cn/" + fileordir["UserDirectoryID"] + "" }, _info); } else if (issetpermissions) { $$("div", { "innerHTML": "类型:" + "文件夹" }, _info); var _permission = $$("div", { "className": "", "innerHTML": "权限选择:" }, _info); var _select = $$("select", { "onchange": function () { U.MD.DK.RE.setpermissions(this, fileordir, diskinfo); } }, _permission); $$('option', { value: "1", innerHTML: "只允许上传" }, _select); $$('option', { value: "2", innerHTML: "只允许下载" }, _select); $$('option', { value: "", innerHTML: "无限制" }, _select); if (fileordir.UserDirectoryEncrypt == "1") { _selected = 0; } else if (fileordir.UserDirectoryEncrypt == "2") { _selected = 1; } $('option', _select)[_selected].selected = true; //选中 } $$("div", { "innerHTML": "大小:" + U.UF.UP.minUnitToMaxUnit(fileordir.UserDirectorySize) }, _info); $$("div", { "innerHTML": "创建时间:" + U.UF.D.getYearMonthDay(fileordir.UserDirectoryAddTime) }, _info); return _box; } /** * 共享文件夹设置权限 * @param {element} 目录目录或者文件信息 * @param {object} 是否需要设置权限 */ U.MD.DK.RE.setpermissions = function (selectel, dirinfo, diskinfo) { var _value = selectel.options[selectel.selectedIndex].value; //获取设置权限的值 U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "SetFtpPriviledge", dirinfo.UserDirectoryID, _value], U.MD.DK.RE.asynSetPermissions, ["", dirinfo, _value, diskinfo]); U.alert("权限设置中..."); } /** * 共享文件夹设置权限 * @param {element} 目录目录或者文件信息 * @param {object} 是否需要设置权限 */ U.MD.DK.RE.asynSetPermissions = function (r) { var _leftel, _rightel, _imgicon, _context = r.context, _dirinfo = _context[1], //文件夹信息 _value = _context[2], _diskinfo = _context[3]; //加密的值 r = r.value; //判断设置操作 if (r) { _dirinfo.UserDirectoryEncrypt = _value; //设置加密的值 _leftel = $("#L" + _dirinfo.UserDirectoryID, _diskinfo.formel)[0]; //左边的导航,文件夹同时展开的时候会存在 _rightel = $("#R" + _dirinfo.UserDirectoryID, _diskinfo.formel)[0]; //右边文件或者文件夹的处理 //左边的目录处理 if (_leftel) { //加密的处理 if (_value != "") { _imgicon = "U_MD_DK_LCOI U_MD_DK_LTXOST U_MD_DK_Img U_MD_DK_LCJ"; } //未加密的处理 else { _imgicon = "U_MD_DK_LCOI U_MD_DK_LTXOST U_MD_DK_Img U_MD_DK_LCW"; } $("div", _leftel)[2].className = _imgicon; } //右边的目录处理 if (_rightel) { //加密的处理 if (_value != "") { _imgicon = "U_MD_DK_RZOS U_MD_DK_Img U_MD_DK_RZOM"; } //未加密的处理 else { _imgicon = "U_MD_DK_RZOS U_MD_DK_Img U_MD_DK_RZOW"; } $("div", _rightel)[1].className = _imgicon; } } //设置权限或者加密解密 else { U.alert("设置失败"); } } //#endregion //#region 新建文件夹 /** * 新建文件夹处理的新建提示框 * @param {array} 需要删除文件的数组 * @param {string} 用户id **/ U.MD.DK.RE.addFileOrFolder = function (fileordirinfo, diskinfo, dirinfo) { var _nowdiskinfo = US.disk.UserDisk, //当前使用用户的网盘 _leftel = $("#L" + dirinfo["UserDirectoryID"], diskinfo.formel)[0], _el = $("#U_MD_DK_RZ", diskinfo.formel)[0]; //在粘贴网盘的数组目录中添加值 U.MD.DK.M.entity.add(fileordirinfo, diskinfo); //添加到用户disk全局变量中 U.MD.DK.M.entity.addChild(fileordirinfo, dirinfo); //添加到子节点中 //操作的文件夹是否在异步结束后还在同一个文件夹下,如果是那么就添加 if (fileordirinfo[0].UserDirectoryParentID == _nowdiskinfo.directoryid && diskinfo == _nowdiskinfo && _nowdiskinfo.directoryid == diskinfo.directoryid) { //如果里面没有内容是展示没有资源的处理 if ($(_el).Child()[0].className == "U_MD_DK_RZF") { _el.innerText = ""; } U.MD.DK.VW.printContent(fileordirinfo, _el); //打印到网盘中 //添加到侧边栏 if (_leftel) { U.MD.DK.LL.printLeftTreeDirectory(fileordirinfo, _leftel, diskinfo.userInfo.UserId); //如果左边数目显示了 } } _el.scrollTop = _el.offsetHeight; $(_el.lastChild).addClass("U_MD_DK_RZOI"); } /** * 新建文件夹处理 **/ U.MD.DK.RE.newFolder = function (diskinfo) { if (!U.MD.U.L.isLogin()) {//是否登录 var _directoryid = diskinfo.directoryid//目录id if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建文件权限 U.MD.DK.RE.newFolder.confirm(diskinfo, _directoryid); //新建提示框 } else { U.alert("无权限访问此文件夹"); }; /// } } /** * 新建文件夹处理的新建提示框 * @param {array} 需要删除文件的数组 * @param {string} 用户id **/ U.MD.DK.RE.newFolder.confirm = function (diskinfo, directoryid) { var _ancestors, //目录的祖先元素 _groupid, //群id _newguid = Guid.newGuid(), //新建文件夹的id _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": directoryid })[0], //目录网盘信息 _userid = US.userInfo.userid, //新建用户id _input = $$("input", { "placeholder": "请输入文件夹名字", "style": { "width": "180px", "height": "25px" } }) //输入的名字 //弹出comfir U.MD.DK.RE.newconfirm( _input, function () { var _name = _input.value; //获取粘贴到制定目录的群id _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先 //如果是ftp目录,那么groupid就是用户id if (_ancestors[_ancestors.length - 1].UserDirectoryID == US.FTPFOLDERID) { _groupid = diskinfo.userInfo.UserId; } //否则就是对应的群id,如果不存在那么就是"" else { _groupid = _ancestors[_ancestors.length - 1].GroupID || ""; } //文件名判断 if (U.UF.S.ZWFileName.test(_input.value)) { //填写文件名符合规范 将文件夹以及文件夹名字保存到数据库 U.A.Request(US.DISK, ["CreateDirectory", _userid, _newguid, _dirinfo.UserDirectoryDeep + 1, _input.value, directoryid, "", _groupid, ""], //保存到数据库 function (r) { var _fileinfo = new U.MD.DK.M.entity(_newguid, 0, directoryid, _name, _name, "folder", "", U.UF.D.toTimeStamp(), "", _dirinfo.UserDirectoryDeep + 1, null, "", 0, "", _groupid, "", _userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead) U.MD.DK.RE.addFileOrFolder([_fileinfo], diskinfo, _dirinfo); //添加到页面上中 }, []); } else { U.alert("文件名过长或者为空"); return false; } }, function () { }, "新建文件夹" ); } /** * 新建文件处理 **/ U.MD.DK.RE.newText = function (diskinfo, fun) { if (!U.MD.U.L.isLogin()) {//是否登录 var _directoryid = diskinfo.directoryid; //目录id if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建文件权限 U.MD.DK.RE.newText.confirm(diskinfo, _directoryid, fun); //新建提示框 } else { U.alert("无权限访问此文件"); }; } } /** * 新建文件处理的新建提示框 **/ U.MD.DK.RE.newText.confirm = function (diskinfo, directoryid, fun) { var _ancestors, //目录的祖先元素 _groupid, //群id _newguid = Guid.newGuid(), //新建文件夹的id _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": directoryid })[0], //目录网盘信息 _userid = US.userInfo.userid, //新建用户id _input = $$("input", { "placeholder": "请输入新文本文档的命名", "style": { "width": "180px", "height": "25px", "padding-left": "7px" } }); //输入的名字 //弹出comfirm U.MD.DK.RE.newconfirm(_input, function () { var _name = _input.value; //获取粘贴到制定目录的群id _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先 //如果是ftp目录,那么groupid就是用户id if (_ancestors[_ancestors.length - 1].UserDirectoryID == US.FTPFOLDERID) { _groupid = diskinfo.userInfo.UserId; } //否则就是对应的群id,如果不存在那么就是"" else { _groupid = _ancestors[_ancestors.length - 1].GroupID || ""; } //文件名判断 if (U.UF.S.ZWFileName.test(_input.value)) { //去数据库添加文件 U.A.Request(US.DISK, ["CreateFile", _userid, _newguid, directoryid, _input.value, "", "", "", "txt", _groupid], function (r) { //创建文件 var _fileinfo = new U.MD.DK.M.entity(_newguid, 0, directoryid, _name, _name, "txt", "", U.UF.D.toTimeStamp(), "", "9999", null, "", 1, "", _groupid, "", _userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead) U.MD.DK.RE.addFileOrFolder([_fileinfo], diskinfo, _dirinfo); //添加到页面上中 //如果存在就执行 if (fun) {//判断是否有点击事件的方法,如果有,运行它 fun(_fileinfo); } }, []); } else { U.alert("文件名过长或者为空"); return false; } }, function () { }, "新建文本文件"); } /** * 新建文档处理 **/ U.MD.DK.RE.newDocument = function (diskinfo, fun, fileid) { if (!U.MD.U.L.isLogin()) {//是否登录 var _directoryid = diskinfo.directoryid; //目录id if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建文档权限 return U.MD.DK.RE.newDocument.confirm(diskinfo, _directoryid, fun, fileid); } else { U.alert("无权限访问此文档"); }; } } /** * 新建文档处理的新建提示框 **/ U.MD.DK.RE.newDocument.confirm = function (diskinfo, directoryid, fun, fileid) { var _ancestors, //目录的祖先元素 _groupid, //群id _newguid = fileid || Guid.newGuid(), //新建文件夹的id _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": directoryid })[0], //目录网盘信息 _userid = US.userInfo.userid, //新建用户id _input = $$("input", { "placeholder": "请输入文档名字", "style": { "width": "180px", "height": "25px" } }); //输入的名字 return U.MD.DK.RE.newconfirm(_input, //创建文档的框 function () { var _name = _input.value; //获取粘贴到制定目录的群id _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先 //如果是ftp目录,那么groupid就是用户id if (_ancestors[0].UserDirectoryID == US.FTPFOLDERID) { _groupid = diskinfo.userInfo.UserId; } //否则就是对应的群id,如果不存在那么就是"" else { _groupid = _ancestors[0].GroupID || ""; } //文件名判断 if (U.UF.S.ZWFileName.test(_input.value)) { //去数据库添加文件 U.A.Request(US.DISK, ["CreateFile", _userid, _newguid, directoryid, _input.value, "", "", "", "uw", _groupid], function (r) { //创建文件 var _fileinfo = new U.MD.DK.M.entity(_newguid, 0, directoryid, _name, _name, "uw", "", U.UF.D.toTimeStamp(), "", "9999", null, "", 1, "", _groupid, "", _userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead) U.MD.DK.RE.addFileOrFolder([_fileinfo], diskinfo, _dirinfo); //添加到页面上中 //如果存在就执行 if (fun) {//判断是否保存到数据库 fun(_fileinfo); } }, []); } else { U.alert("文件名过长或者为空"); return false; } }, function () { }, "新建文档"); } /** * 新建工作表处理 **/ U.MD.DK.RE.newExcel = function (diskinfo) { if (!U.MD.U.L.isLogin()) {//是否登录 var _directoryid = diskinfo.directoryid; //目录id if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建工作表权限 U.MD.DK.RE.newExcel.confirm(diskinfo, _directoryid); //新建提示框 } else { U.alert("无权限访问此工作表"); }; } } /** * 新建工作表处理的新建提示框 **/ U.MD.DK.RE.newExcel.confirm = function (diskinfo, directoryid) { var _ancestors, //目录的祖先元素 _groupid, //群id _newguid = Guid.newGuid(), //新建文件夹的id _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": directoryid })[0], //目录网盘信息 _userid = US.userInfo.userid, //新建用户id _input = $$("input", { "placeholder": "请输入表格名字", "style": { "width": "180px", "height": "25px" } }); //输入的名字 U.MD.DK.RE.newconfirm(_input, //创建文档的框 function () { var _name = _input.value; //获取粘贴到制定目录的群id _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先 //如果是ftp目录,那么groupid就是用户id if (_ancestors[_ancestors.length - 1].UserDirectoryID == US.FTPFOLDERID) { _groupid = diskinfo.userInfo.UserId; } //否则就是对应的群id,如果不存在那么就是"" else { _groupid = _ancestors[_ancestors.length - 1].GroupID || ""; } //文件名判断 if (U.UF.S.ZWFileName.test(_input.value)) { //去数据库添加文件 U.A.Request(US.DISK, ["CreateFile", _userid, _newguid, directoryid, _input.value, "", "", "", "ue", _groupid], function (r) { //创建文件 var _fileinfo = new U.MD.DK.M.entity(_newguid, 0, directoryid, _name, _name, "ue", "", U.UF.D.toTimeStamp(), "", "9999", null, "", 1, "", _groupid, "", _userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead) U.MD.DK.RE.addFileOrFolder([_fileinfo], diskinfo, _dirinfo); //添加到页面上中 }, []); } else { U.alert("文件名过长或者为空"); return false; } }, function () { }, "新建工作表"); } /** * 新建文件对话框 * @content {string/elemnet} 内容 * @determineFun {function} 确认回调函数 * @cancelFun {function} 取消回调函数 * @string {string} 对话框的标题名字 */ U.MD.DK.RE.newconfirm = function (content, determineFun, cancelFun, str) { //创建对话框主体元素 var _confirm = $$("div", { "style": { "cssText": "width: 100%; background: rgb(255,255,255); overflow:hidden; " }, id: "123133456" }); var _string = str || "提示框"; //创建内容区域 var _content = $$("div", { "style": { "cssText": "text-align: center; margin: 30px 20px 30px 20px; " } }, _confirm); //判断内容是否为元素 if (U.UF.C.isElement(content)) { //如果为元素则动态添加到对话框中 $(_content).append(content); } else { //如果为文字则修改inerHTML。 _content.innerHTML = content || '内容'; } //创建页脚部分 var _footer = $$("div", { "style": { "cssText": " height:45px;" } }, _confirm); //调用Uform窗体创建函数将主体内容添加到窗体中 var _form = new U.UF.UI.form( _string, _confirm, { "style": { "cssText": "font-size: 16px; background: rgb(255,255,255); width: 300px; position: fixed; box-shadow: 0 0 10px 3px rgb(0,0,0); border-radius: 5px;" } }, { "istop": true, "isenlarge": false, "isstretching": false, "isnarrow": false }, { "style": { "cssText": " background: rgb(59,88,120); padding: 10px;padding-left: 20px; color: rgb(255,255,255); " } }); //创建确定按钮 绑定点击事件,默认点击后执行关闭窗体函数 $$("div", { "style": { "cssText": "text-align: center; color: rgb(255,255,255); width: 30%; padding: 5px; background: rgb(48,126,208); border-radius: 5px;float: right; margin-right:35px;" }, innerHTML: "确定", onclick: function () { var _bool = true; if (U.UF.C.isFunction(determineFun)) { _bool = determineFun(); //判断是否存在回调 有则执行。 } if (_bool !== false) { U.UF.F.closeWindow(_form.form); //关闭窗口函数 } } }, _footer); //创建取消按钮 绑定点击事件,默认点击后执行关闭窗体函数 $$("div", { "style": { "cssText": "text-align: center; color: rgb(255,255,255); width: 30%; padding: 5px; background: rgb(48,126,208); border-radius: 5px;background: rgb(170,170,170); float: left; margin-left:35px;" }, "innerHTML": "取消", "onclick": function () { U.UF.C.isFunction(cancelFun) && cancelFun(); //判断是否存在回调 有则执行。 U.UF.F.closeWindow(_form.form); //关闭窗口函数 } }, _footer); return _form; } /** * 新建互联办公文件对话框 * @determineFun {function} 确认回调函数 * @cancelFun {function} 取消回调函数 */ U.MD.DK.RE.newDocConfirm = function (diskinfo/*determineFun cancelFun*/) { if (!U.MD.U.L.isLogin()) {//是否登录 var _directoryid = diskinfo.directoryid; //目录id if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建工作表权限 var _confirm = $$('div'), _pickarea = $$("div", { "style": { "cssText": "display:table; width: 100%; height: auto; " } }, _confirm), _picklocal = $$("div", { "id": "U_MD_DK_RE_localDoc", "style": { "cssText": "display:table-cell; width:235px; height:170px; background-color:#f5f5f5;text-align:center; vertical-align: middle;cursor: pointer;" } }, _pickarea), _pickline = $$("div", { "style": { "cssText": "display:table-cell; width:1px; height: 100%; background-color:#cecece;" } }, _pickarea), _pickoa = $$("div", { "style": { "cssText": "display:table-cell; width:234px; height:100%; background-color:#f5f5f5;text-align:center; vertical-align: middle;cursor: pointer;" } }, _pickarea); $$("img", { "onerror": U.MD.C.imgError, src: "/img/officefileicon.png", style: { "vertical-align": "middle" } }, _picklocal); $$("img", { "onerror": U.MD.C.imgError, src: "/img/oaofficeicon.png", style: { "vertical-align": "middle" } }, _pickoa); $$('span', { innerText: '互联文档', style: { "margin-left": "10px" } }, _pickoa); $$('span', { innerText: '本地文档', style: { "margin-left": "10px" } }, _picklocal); //创建对话框主体元素 var _enter = $$("div", { "style": { "cssText": "width: 100%; background: rgb(255,255,255); overflow:hidden; display:none" }, id: "123133456" }, _confirm); var _string = "新建文档"; //创建内容区域 var _content = $$("div", { "style": { "cssText": "text-align: center; margin: 30px 20px 30px 20px;" } }, _enter) //创建页脚部分 var _footer = $$("div", { "style": { "cssText": " height:45px;" } }, _enter); //调用Uform窗体创建函数将主体内容添加到窗体中 var _form = new U.UF.UI.form( _string, _confirm, { "style": { "cssText": "font-size: 16px; background: rgb(255,255,255); width: 470px; position: fixed; box-shadow: rgb(0, 0, 0) 2px 1px 5px; " } }, { "istop": true, "isenlarge": false, "isstretching": false, "isnarrow": false }, { "style": { "cssText": " background: #3c475b;padding:4px 0 ; color: rgb(255,255,255); " } }); $(_picklocal).bind({ "mouseover": function () { _picklocal.style.backgroundColor = "#dcdcdc"; }, "mouseout": function () { _picklocal.style.backgroundColor = "#f5f5f5"; }, "click": function () { U.MD.DK.RE.newDocument(diskinfo); U.UF.F.closeWindow(_form.form, "remove"); } }) $(_pickoa).bind({ "mouseover": function () { _pickoa.style.backgroundColor = "#dcdcdc"; }, "mouseout": function () { _pickoa.style.backgroundColor = "#f5f5f5"; }, "click": function () { // $('#U_UF_UI_confirm')[0].style.display = "none"; var _docId = Guid.newGuid(); U.MD.O.word(US.userInfo, { 'UserDirectoryID': _docId }, function () { var _iframe = $('#UD_Word' + _docId).find('iframe')[0].contentWindow; _iframe.document.getElementById('U_MD_O_H_body_left_invite_user').children[0].click(); U.UF.F.closeWindow(_form.form, "remove"); }); } }) return _form; } else { U.alert("无权限访问此工作表"); }; } } //#endregion //#region 删除文件 /** * 删除文件 * * @param {array} 需要删除文件的数组 * @param {string} 用户id */ U.MD.DK.RE.deleteFileOrDir = function (fileordirs, userid, diskinfo) { var _contentel; //多文件删除 if (fileordirs.length > 1) { _contentel = $$("div", { "style": { "cssText": "text-align:center;width:100%;height:30px;padding:5% 0 0% 0;" } }); $$("span", { "style": { "cssText": "font-weight:bold;" }, "innerHTML": "你确定要删除这" + fileordirs.length + "项吗?" }, _contentel); } //单文件处理 else { _contentel = U.MD.DK.RE.attributeStyle(fileordirs, null, diskinfo); fileordirs = [fileordirs]; } //弹出提示框,确认后删除文件 U.UF.UI.confirm(_contentel, function () { U.MD.DK.RE.deleteDirectoryOrFile(fileordirs, userid); //U.UF.UI.alertClick }); //$(".U_MD_DK_SX")[$(".U_MD_DK_SX").length - 2].parentNode.style.margin = "0"; //位置美化 } /** * 删除文件接口 * * @param {array} 需要删除文件的数组 * @param {string} 用户id */ U.MD.DK.RE.deleteDirectoryOrFile = function (fileordirs, userid) { var _allfileordirid = U.Json.toKeyArray(fileordirs, "UserDirectoryID").join(","); //所有删除的文件和文件夹的合并id U.A.Request(US.DISK, ["DeleteDirectoryOrFile", _allfileordirid, fileordirs[0].GroupID || ""], U.MD.DK.RE.asynDeleteDirectoryOrFile, ["", fileordirs, userid]); //文件夹和文件同时删除 } /** * 删除文件异步 * * @param {array} 需要删除文件的数组 * @param {string} 用户id */ U.MD.DK.RE.asynDeleteDirectoryOrFile = function (r) { var i, _dirid, _context = r.context, _fileordirs = _context[1], //文件或者是文件夹信息 _userid = _context[2], //用户id _diskinfo = U.MD.DK.M.diskOperatingSwitch(_userid) //获取用户硬盘的信息 ; r = r.value; //允许删除 if (r) { U.MD.DK.M.entity.del(_fileordirs, _diskinfo); //删除diskinfo数组里面的文件或者文件夹 U.MD.DK.RE.delPageFileOrDir(_fileordirs, _diskinfo); //删除文件在页面上的元素 } else { U.alert("操作失败!"); //弹出操作失败 } } /** * 删除文件在页面上的显示 * * @param {array} 文件或者是目录 * @param {string} 删除用户网盘的信息 */ U.MD.DK.RE.delPageFileOrDir = function (fileordirs, diskinfo) { var i, _parentdirinfo, _contentel = $("#U_MD_DK_RZ", diskinfo.formel); //中间的内容 //循环文件或者文件夹处理 for (i = 0; i < fileordirs.length; i++) { $("#L" + fileordirs[i].UserDirectoryID, diskinfo.formel).remove(); //移除左边的导航 $("#R" + fileordirs[i].UserDirectoryID, diskinfo.formel).remove(); //移除右边的文件或者文件夹 //判断删除的位置是否是当前打开的位置,如果是则保持 if (fileordirs[i].UserDirectoryID == diskinfo.directoryid) { _parentdirinfo = fileordirs[i].Parent; } } //如果删除的位置是当前打开的位置 if (_parentdirinfo) { //重新打印 U.MD.DK.LE.openFileDirectory(_parentdirinfo, diskinfo.userInfo.UserId); } //如果文件或者文件夹给全部删除,那么就打印空视图 else if (_contentel.Child() == 0) { U.MD.DK.VW.printNullView(_contentel[0]); //重新打印空视图 } $('#U_MD_DK_RKR', diskinfo.formel)[0].innerHTML = '当前文件的数量:' + $('.U_MD_DK_RZO').length//删除之后当前文件的数量正确显示 } //#endregion //#region 重命名 /** * 删除文件在页面上的元素 * * @param {element} 元素 * @param {string} 用户id */ U.MD.DK.RE.rename = function (el, fileordir, diskinfo) { var _input, _el; //创建一个可输入的input标签 if (el.firstChild.children[1]) {//判断是否在左边菜单栏插入 _el = el.firstChild.children[1].children[0]; //插入地方 _el.innerText = ""//清除原文件名,并在上面设置一个input输出框 } else { _el = el.lastElementChild; //插入地方 _el.innerText = ""//清除原文件名,并在上面设置一个input输出框 } _input = $$("input", {//创建input框 "ondblclick": U.UF.EV.stopBubble, //阻止冒泡 "onblur": function () {//失焦 U.MD.DK.RE.detemineReName(this, fileordir, diskinfo); //确定修改 }, //回车会理 "onkeyup": function () { if (event.keyCode == 13 || event.keyCode == 10) { this.onblur(); //失焦 } }, "onclick": U.UF.EV.stopBubble, //阻止冒泡 "className": "U_MD_U_P_C_P_N_I", //设置class "value": fileordir.UserallDirectoryName.replace("." + fileordir.UserDirectoryExtendType, "")//文件名+后缀 }, _el); //在哪里插入 _input.focus(); //聚焦到重命名的input框上面 } /** * 確定修改文件名 * * @param {element} 元素 * @param {string} 用户id */ U.MD.DK.RE.detemineReName = function (inputel, fileordir, diskinfo) { var _leftel, _rightel, _extendtype = fileordir.UserDirectoryExtendType, //文件扩展名 _name = inputel.value.replaceHtmlSign() + (fileordir.filetype ? "." + _extendtype : ""); //文件或者文件夹的名字 //修改的名字没有变化 if (_name != fileordir.UserallDirectoryName) { //判断文件名输入符不符合规范 if (U.UF.S.FileName.test(_name)) { //目录的处理 if (_extendtype == "folder") { U.A.Request(US.DISK, ["UpdateDirectoryInfo", fileordir.UserDirectoryID, _name], U.MD.DK.RE.asynDetemineReName, ["", fileordir, _name, diskinfo]); } //文件的处理 else { U.A.Request(US.DISK, ["UpdateFileInfo", fileordir.UserDirectoryID, _name], U.MD.DK.RE.asynDetemineReName, ["", fileordir, _name, diskinfo]); } _leftel = $("#L" + fileordir.UserDirectoryID, diskinfo.formel)[0]; //左边的导航,文件夹同时展开的时候会存在 _rightel = $("#R" + fileordir.UserDirectoryID, diskinfo.formel)[0]; //右边文件或者文件夹的处理 //左边的目录处理 if (_leftel) { $("div", _leftel)[3].innerText = _name; } //右边的目录处理 if (_rightel) { $("div", _rightel)[3].innerText = _name; } } } } /** * 確定修改文件名 * * @param {element} 元素 * @param {string} 用户id */ U.MD.DK.RE.asynDetemineReName = function (r) { var _context = r.context, _fileordir = _context[1], //文件或者文件夹信息 _name = _context[2] //文件名 ; r = r.value; //判断服务器修改是否成功的处理,处理成功后修改文件的信息 if (r) { _fileordir.UserallDirectoryName = _name; //文件全写的名字 _fileordir.UserDirectoryName = _name.addEllipsis(20); //文件的缩略名 } } //#endregion //#region 复制 剪切 粘贴 /** * 删除文件在页面上的元素 * * @param {array} 复制粘贴的元素 * @param {string} 粘贴的格式 */ U.MD.DK.RE.copyorshear = function (dirorfile, type, diskinfo) { var _userid = US.disk.UserDisk.userInfo.UserId, //用户id _dirid = dirorfile.UserDirectoryParentID //复制的目录id ; //复制的目录转化成数组 if (!Array.isArray(dirorfile)) { dirorfile = [dirorfile]; } //添加复制的全局变量 US.disk.Disks[_userid].pasteDirOrFile = { "type": type, //复制或者剪切 "copy" || "shear" "UserDirectoryID": _dirid, //在哪个目录复制或者剪切 "dirorfile": dirorfile, //复制的内容 "userid": _userid //用户id }; } /** * 粘贴文件 * * @param {array} 复制粘贴的元素 * @param {string} 粘贴的格式 */ U.MD.DK.RE.paste = function (diskinfo) { var _ancestors, //祖先元素 _groupid, //群元素 _fileordirids, //文件和目录的id集合 _dirid = diskinfo.directoryid, //当前目录id _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": _dirid }, 1)[0], //当前目录的信息 _userid = US.disk.UserDisk.userInfo.UserId, //用户id _pastecontent = US.disk.Disks[_userid].pasteDirOrFile, //粘贴的内容 _type = _pastecontent.type, //粘贴的格式 _pastedirid = _pastecontent.UserDirectoryID, //粘贴目录id _dirorfile = _pastecontent.dirorfile, //粘贴文件和目录的数组 _pasteuserid = _pastecontent.userid //祖先元素 ; //需要剪切的内容存在,无需判断权限了,能触发改函数说明是有权限的。 如果剪切文件,同时不是剪切到同一个目录里 if (_pastecontent && (_type == "copy" || _dirid != _pastedirid || _pasteuserid != _userid)) { // && (_dirid != _pastedirid || _pasteuserid != _userid) //获取粘贴到制定目录的群id _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先 //如果是ftp目录,那么groupid就是用户id if (_ancestors[_ancestors.length - 1].UserDirectoryID == US.FTPFOLDERID) { _groupid = diskinfo.userInfo.UserId; } //否则就是对应的群id,如果不存在那么就是"" else { _groupid = _ancestors[_ancestors.length - 1].GroupID || ""; } _fileordirids = U.Json.toKeyArray(_dirorfile, "UserDirectoryID").join(","); //文件 //处理粘贴在数据库的过程 //剪切的处理 if (_type == "shear") { //调用剪切的函数 用户ID 粘贴目录id 文件和目录的id集合 群元素 U.A.Request(US.DISK, ["CutAndPasteFiles", US.userInfo.userid, _dirid, _fileordirids, _groupid, _dirorfile[0].GroupID], U.MD.DK.RE.asynPaste, ["", _dirinfo, _groupid, _pastecontent, diskinfo, _pastecontent.type]); _pastecontent.type = "copy"; } //复制的处理 else { //调用复制的函数 U.A.Request(US.DISK, ["CopyAndPasteFiles", US.userInfo.userid, _dirid, _fileordirids, _groupid], U.MD.DK.RE.asynPaste, ["", _dirinfo, _groupid, _pastecontent, diskinfo, _pastecontent.type]); } } } /** * 粘贴文件 * * @param {object} ajax的传参处理 */ U.MD.DK.RE.asynPaste = function (r) { var i, _context = r.context, //上线文的传参 _dirinfo = _context[1], //粘贴到制定的目录 _groupid = _context[2], //粘贴的群id _pastecontent = _context[3], //粘贴的文件或者文件夹内容 _diskinfo = _context[4], //粘贴的网盘信息 _type = _context[5], //判断是复制还是剪切 _copyorshearinfo = US.disk.Disks[_pastecontent.userid], //粘贴网盘的信息 _pasteinfo = r.value //目录信息 ; //剪切处理的话,先要移除原本的文件,然后在重新处理 if (_type == "shear") { U.MD.DK.M.entity.del(_pastecontent.dirorfile, _copyorshearinfo); //在制定的用户中移除 U.MD.DK.RE.delPageFileOrDir(_pastecontent.dirorfile, _copyorshearinfo); //剪切的话会在之前目录里面删除 } //循环设置粘贴文件的属性 for (i = 0; i < _pasteinfo.length; i++) { _pasteinfo[i] = new U.MD.DK.M.entity(_pasteinfo[i].UserDirectoryID, _pasteinfo[i].UserDirectorySize, _pasteinfo[i].UserDirectoryParentID, _pasteinfo[i].UserDirectoryName, _pasteinfo[i].UserDirectoryName, _pasteinfo[i].UserDirectoryExtendType, _pasteinfo[i].UserDirectoryUrl, _pasteinfo[i].UserDirectoryAddTime, _pasteinfo[i].UserDirectoryUrl, _pasteinfo[i].UserDirectoryDeep, null, _pasteinfo[i].UserDirectoryEncrypt, _pasteinfo[i].UserDirectoryExtendType == "folder" ? 0 : 1, "", _pasteinfo[i].UserDirectoryEncrypt, "", US.userInfo.userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead) } //在粘贴网盘的数组目录中添加值 U.MD.DK.RE.addFileOrFolder(_pasteinfo, _diskinfo, _dirinfo); } //#endregion //#region 文件下载 //弹出下载的处理 U.MD.DK.RE.downloadFile = function (dirorfileid, isdir) { window.open("/Pages/Downlaod.htm?id=" + dirorfileid + "&type=" + (isdir || "")); } //#endregion //#region 查看评论 /** * 查看评论 * * @param {object} 文件信息 */ U.MD.DK.RE.replay = function (fileinfo) { // U.MD.I.Img(UDE, UDE); // U.MD.D.CM.CKPLXS(UDE.UserDirectoryID, UDE.UserallDirectoryName); } //#endregion //#region 刷新 /** * 刷新 * * @param {string} 用户id * @param {object} 目录信息 */ U.MD.DK.RE.refresh = function (userid, fileinfo, diskinfo) { //如果文档不是最新文档、我的协同、他人邀请的处理 if (fileinfo.GroupID !== true) { U.MD.DK.LE.getChildsByDirectoryId(userid, fileinfo, $("#U_MD_DK_RZ", diskinfo.formel)[0]); //加载当前网盘内容 } } //#endregion