//此处放置iframe中的word中的功能面板,包括包括创建邀请协作人员,创建编辑历史,创建生成链接.创建热门模板。
Namespace.register("U.MD.O.W.Panel");
//#region 初始化区域
/**
* 加载编辑区域
*
* @param {element}
* @param {element}
*/
U.MD.O.W.Panel.Loadeditor = function (fileid, fileinfo) {
var _worddiv, _UDTD, _UDGD, _wordeditor, _UDKD;
//$("#U_MD_O_W_E_body")[0] 是word的编辑区域,如果不存在,则创建一个。
if (!$("#U_MD_O_W_E_body")[0]) {
_worddiv = $("#U_MD_O_R_Parent")[0]; //包含word编辑区域的div
_wordeditor = $$("div", { "id": "U_MD_O_W_E_body" }, _worddiv); //创建word编辑器区域
_pagediv = $$("div", { "className": "U_MD_O_H_body_main_m" }, _wordeditor); //由于是多页,所以需要另外建立一个div,包含下面的头部,内容,底部
_header = $$("div", { "className": "U_MD_O_H_body_main_border" }, _pagediv); //头部信息
$$("div", { "className": "U_MD_O_H_body_main_bordero" }, _header); //头部的左上角
$$("div", { "className": "U_MD_O_H_body_main_bordert" }, _header); //头部的右上角
$$("div", { "className": "U_MD_O_H_body_main_text", contentEditable: "true", spellcheck: "false", "innerHTML": "", "id": "Txt" + Guid.newGuid() }, _pagediv); //编辑器区域
_footer = $$("div", { "className": "U_MD_O_H_body_main_border" }, _pagediv);
$$("div", { "className": "U_MD_O_H_body_main_borders" }, _footer);
$$("div", { "className": "U_MD_O_H_body_main_borderf" }, _footer);
//把编辑器区域放入窗体。
//new U.UF.UI.form("", _worddiv, { className: 'U_MD_F_S', style: { "backgroundColor": "transparent", "border": "0", "width": "auto", "top": "15px", "left": "30px"} }, {});
new U.UF.UI.form(false, _worddiv, { style: { backgroundColor: "transparent", border: "0", width: "auto", top: "50px", left: "0px", margin: "0px 20px", "box-shadow": "none"} }, { isdrag: false, isstretching: false });
U.MD.O.W.LoadContent(fileid, fileinfo)
}
}
//#endregion
//#region 本地转协同文档及新建保存为协同文档操作
/**
* 本地转协同文档及新建保存为协同文档操作
*
* @param fun {element} 回调函数
*/
U.MD.O.W.Panel.IsSynergy = function (fun) {
if (!top.U.MD.U.L.isLogin()) { //判断是登录
var _fileinfo = U.MD.O.W.fileinfo;
var _filegroupid = _fileinfo.UserDirectoryEncrypt || _fileinfo.GroupID; //获取_filegroupid群id,判断是否是在自己的ftp下的文档
if (_filegroupid == US.userInfo.UserId) { //判断是本地文档还是互联文档
_filegroupid = false;
}
if (_filegroupid && U.MD.O.W.permission.edit) { //是否为群
if (U.UF.C.isFunction(fun)) {//判断是否有点击事件的方法,如果有,运行它
fun(_fileinfo);
}
return true;
} else {
var _filename = top.$('#UD_Word' + _fileinfo.UserDirectoryID + ' .U_MD_O_H_head_navigation_Title')[0]; //获取文件名
if (_fileinfo.UserDirectoryID && _fileinfo.UserId && _fileinfo.UserallDirectoryName && U.MD.O.W.permission.edit) { //如果是已经保存到数据库的文档,那么直接保存内容
new U.UF.UI.confirm("是否将此文档转成互联办公文档", function () { //本地转协同
top.U.MD.DK.VW.saveSynergy(_fileinfo.UserDirectoryExtendType || "uw", _fileinfo, _filename.value, 'move', function (fileinfo) {
U.MD.O.W.Panel.IsSynergy.Async(fileinfo, fun);
});
});
} else { //新建保存为协同
top.U.MD.DK.VW.saveSynergy(_fileinfo.UserDirectoryExtendType || "uw", _fileinfo, _filename.value, 'new', function (fileinfo) {
U.MD.O.W.Panel.IsSynergy.Async(fileinfo, fun);
});
}
}
}
return false;
}
/**
* 本地转协同文档及新建保存为协同文档操作
*
* @param fileinfo {object} 文件信息
* @param fun {element} 回调函数
*/
U.MD.O.W.Panel.IsSynergy.Async = function (fileinfo, fun) {
U.MD.O.W.fileinfo = fileinfo; //设置文件信息
U.MD.O.W.Panel.disPlayUser(fileinfo); //获取协作人员
var _eidtorel = $('#U_MD_O_H_wordEditor')[0]; //获取编辑器
if (fileinfo.UserDirectoryExtendType == 'un') {
//保存文件到后台
U.MD.O.W.T.N.saveAllPage(function () {
U.MD.O.W.T.N.saveNav.asyn(true, fileinfo, _eidtorel);
}, 0, true, _eidtorel.innerHTML);
// U.A.Request(US.SCOKET, ["newNavSave", fileinfo.UserDirectoryID, JSON.stringify(U.MD.O.W.T.N.navInfo), fileinfo.UserDirectoryName, U.MD.O.W.T.N.nowNavId, _eidtorel.innerHTML.escapeQuotes(), US.userInfo.UserId, US.pageId], U.MD.O.W.Panel.IsSynergy.saveAsync, [null, fileinfo, _eidtorel]);
} else {
//保存文件到后台
U.A.Request(US.SCOKET, ["newWordSave", fileinfo.UserDirectoryID, _eidtorel.innerHTML.escapeQuotes(), fileinfo.UserDirectoryName, US.userInfo.UserId, top.US.pageId], U.MD.O.W.Panel.IsSynergy.saveAsync, [null, fileinfo, _eidtorel]);
}
if (U.UF.C.isFunction(fun)) {//判断是否有点击事件的方法,如果有,运行它
fun(fileinfo);
}
}
U.MD.O.W.Panel.IsSynergy.saveAsync = function (r) {
var _fileinfo = r.context[1];
var _eidtorel = r.context[2];
U.MD.O.W.permission.edit = true;
U.MD.O.W.permission.web = true;
top.$('#UD_Word' + _fileinfo.UserDirectoryID + ' .U_MD_O_H_head_navigation_Title')[0].value = _fileinfo.UserDirectoryName; //设置文件名
U.Alert("保存成功"); //提示保存成功
U.MD.O.W.fileinfo.UsOffice = _eidtorel.innerHTML; //设置内容
_eidtorel.editor.operaNotice = U.MD.O.W.E.operationNotice; //设置协同监听回调
}
//#endregion
//#region 团队成员
/**
* 创建团队成员的窗体
*
* @param fileinfo {object} 文件信息
*/
U.MD.O.W.Panel.LoadPlayUser = function (fileinfo) {
var _coopwindow, _frienddiv, _example, _wordsize, _marginleft, _shareLink, _cBox;
//如果不存在团队成员窗口,则创建一个团队成员窗口。
if (!$("#U_MD_O_H_body_left_invite_user")[0]) {
_wordsize = U.UF.EL.getElementInfo($("#U_MD_O_W_E_body")[0]); //获取编辑器域的父亲。用于获取长度大小,用于定位
_marginleft = _wordsize["OW"] + 50; //团队窗口的位置间距编辑器50像素
//创建邀请协助人员窗口
_coopwindow = $("#U_MD_O_H_body_left")[0];
_cBox = $$("div", {});
_shareLink = $$("div", { className: 'U_MD_O_H_body_left_invite_linkTxt', "onclick": function () { U.MD.O.W.Panel.IsSynergy(U.MD.O.W.Panel.shareLink); }, "innerText": "第三方链接邀请" }, _cBox);
_frienddiv = $$("div", { "className": "U_MD_O_H_body_left_invite_user", "id": "U_MD_O_H_body_left_invite_user" }, _cBox); //好友内容区域
_example = $$("div", { "className": "U_MD_O_H_body_left_invite_user_a", "onclick": function () { U.MD.O.W.Panel.displayInsertUser(); } }, _frienddiv); //默认邀请按钮
$$("div", { "className": "U_MD_O_H_body_left_invite_user_a_img" }, _example);
$$("div", { "className": "U_MD_O_H_body_left_invite_user_a_div", "innerHTML": "邀请" }, _example);
new U.UF.UI.form("邀请协作人员", _cBox, { style: { border: "none", position: "absolute", width: "300px", "min-width": "200px", height: "250px", top: "140px", left: "auto", "box-shadow": "none"} },
{ isenlarge: false, isnarrow: false }, { style: { margin: "0px 5px", "border-bottom": "1px solid #d6def0", color: "#000", background: "#fff"} }, null, null, _coopwindow);
}
U.MD.O.W.Panel.disPlayUser(fileinfo); //获取协作人员
}
/**
* 初始化查看团队成员
*
* @param fileinfo {object} 文件信息
*/
U.MD.O.W.Panel.disPlayUser = function (fileinfo, el) {
el = el || $("#U_MD_O_H_body_left_invite_user")[0]; //获取团队成员初始化的位置
var _elchild = el.children[0] //获取元素的子元素;
el.innerHTML = ""//清空内容
$(el).append(_elchild);
if (fileinfo) {//判断是否有文件信息
var _userinfo = U.Json.select(US.friend.groupusers, { "GroupManageID": fileinfo.UserDirectoryEncrypt || fileinfo.GroupID }); //获取所有在群里的成员
if (_userinfo) {//判断是否拥有群成员
for (i = 0; i < _userinfo.length; i++) {//循环打印所有的群成员
U.MD.O.W.Panel.createUser(_userinfo[i], el);
}
}
}
}
U.MD.O.W.Panel.createUser = function (userinfo, el) {
el = el || $("#U_MD_O_H_body_left_invite_user")[0]; //获取团队成员初始化的位置
var _elparent = $$("div", { "className": "U_MD_O_H_body_left_invite_user_a", "onclick": U.UF.C.closure(function (userid) {
top.U.MD.U.V.ViewOtherUserInfo(userid);
}, [userinfo.UserId])
}, el); //好友头像父级元素
var _elcontant = $$("div", { "className": "U_MD_O_H_body_left_invite_user_a_user", "style": { "background": ""} }, _elparent); //好友头像元素
$$("img", { "onerror": U.MD.C.imgError, "src": top.U.MD.C.getHeadImage(userinfo.UserThumbnailImageHead) }, _elcontant); //好友头像图片
$$("div", { "className": "U_MD_O_H_body_left_invite_user_a_div", "innerHTML": userinfo.UserNickName }, _elparent); //好友名称
}
/**
* 判断是否是已经新建过 弹出添加成员 异步回调
*
* @param {element} Wrod信息数组
*/
U.MD.O.W.Panel.displayInsertUser = function () {
if (U.MD.O.W.Panel.IsSynergy()) {
var _fileinfo = U.MD.O.W["fileinfo"];
top.U.MD.F.J.selectFriendForm(function (groupid) {
var _filegroupid = _fileinfo.GroupID || _fileinfo.UserDirectoryEncrypt; //获取_filegroupid群id,判断是否是在自己的ftp下的文档
var _groupinfo = U.Json.select(US.friend.group, { "GroupManageID": _filegroupid })[0]; //群信息
var _needuser = top.U.MD.F.J.selectUserInfo.NeedUser; //选中好友集合
var _groupname = _groupinfo.GroupManageName; // 群名
var _groupdesc = _groupinfo.GroupManageDescript; //群描述
var _selectfriend = U.Json.select(US.friend.groupusers, { "GroupManageID": _filegroupid }); //选择的好友信息
//已经在群里的就不添加了
var i;
for (i = 0; i < _selectfriend.length; i++) {
U.Json.del(_needuser, { "UserId": _selectfriend[i].UserId }); //删除所有在群里的用户id
}
//创建及添加群处理
top.U.MD.F.J.determineCreateGroupAndAddGroupUser(_filegroupid, null, null, false, _groupname, _groupdesc, function (groupid, groupinfo) {
var i, _userids = "";
//U.MD.O.W.Panel.disPlayUser(_fileinfo);
for (i = 0; i < _needuser.length; i++) {//循环打印所有的群成员
_userids += _needuser[i].UserId + (i < _needuser.length - 1 ? "," : "");
U.MD.O.W.Panel.createUser(_needuser[i]);
}
U.MD.O.W.Panel.addUser(_userids);
});
}, null, _fileinfo); //调用打印函数
}
}
U.MD.O.W.Panel.addUser = function (userids) {
var _type = U.MD.O.W["fileinfo"].UserDirectoryExtendType == "un" ? "nav" : "word";
top.U.A.Request(US.SCOKET, ["addUser", _type, U.MD.O.W["fileinfo"].UserDirectoryID, userids, US.userInfo.UserId, top.US.pageId]);
}
U.MD.O.W.Panel.syncAddUser = function (userids, senduserid) {
userids = userids.split(",");
var i, _userinfo;
for (i = 0; i < userids.length; i++) {
_userinfo = U.Json.selectOne(US.friend.groupusers, { UserId: userids[i] });
if (!_userinfo) {
_userinfo = top.U.A.Request(US.CD, [US.DB, "UseStudio_Users", "GetUserinfoByUserId", userids[i]]).value[0];
}
U.MD.O.W.Panel.createUser(_userinfo);
}
}
//#endregion
//#region 分享文档链接
/**
* ----------------------------添加团队成员
*
* @param {object} 文件信息
* @param {string} 文件提交到哪个群的id
* @param {array} 用户id的数组
*/
//U.MD.O.W.Panel.insertUser = function (fileinfo, groupid) {
// // if (!fileinfo.UserId && !fileinfo.UserallDirectoryName) {
// // fileinfo.GroupId = fileinfo.UserDirectoryEncrypt = groupid;
// // var _groupuserid = U.Json.select(US.friend.group, { 'GroupManageID': groupid })[0].GroupManageUserID;
// // var _dirinfo, _dirid, _diskinfo = US.disk.Disks[US.userInfo.UserId];
// // if (_groupuserid == US.userInfo.UserId) {
// // _dirinfo = U.Json.select(_diskinfo.directoryOrFiles, { 'UserDirectoryName': "我的协同" })[0];
// // } else {
// // _dirinfo = U.Json.select(_diskinfo.directoryOrFiles, { 'UserDirectoryName': "他人邀请" })[0];
// // }
// // var _dirchild = top.$('#L' + _dirinfo.UserDirectoryID).Child();
// // !_dirchild[1] && _dirchild[0].onclick()
// // top.$('#L' + groupid).Child()[0].onclick();
// // } else if ((fileinfo.UserDirectoryEncrypt || fileinfo.GroupID) == US.userInfo.UserId) { //如果是新创建的文件,同时文件不在群里 就把文件拷贝到群里进行处理
// // var _userid = fileinfo.UserId,
// // _diskinfo = US.disk.Disks[US.userInfo.UserId],
// // _dirinfo = U.Json.select(_diskinfo.directoryOrFiles, { "UserDirectoryID": groupid }, 1)[0]; //当前目录的信息
// // var _pastecontent = US.disk.Disks[_userid].pasteDirOrFile = {
// // "type": "shear", //复制或者剪切 "copy" || "shear"
// // "UserDirectoryID": groupid, //在哪个目录复制或者剪切
// // "dirorfile": fileinfo, //复制的内容
// // "userid": _userid //用户id
// // }
// // top.U.A.Request(US.AUTH, ["CutAndPasteFiles", fileinfo.UserId, groupid, fileinfo.UserDirectoryID, groupid, groupid],
// // top.U.MD.DK.RE.asynPaste, ["", _dirinfo, groupid, _pastecontent, _diskinfo]
// // );
// // fileinfo.GroupId = fileinfo.UserDirectoryEncrypt = groupid;
// // }
// // U.MD.O.W.Panel.disPlayUser(fileinfo);
//}
/**
* 分享文档链接
*
* @param fileinfo {object} 文件信息
*/
U.MD.O.W.Panel.shareLink = function (fileinfo) {
var _template = U.MD.O.W.Panel.shareLinkTemplate(fileinfo); //生成窗体内容
new U.UF.UI.form("邀请协助链接", _template, { id: "U_MD_O_W_Panel_InviteForm", style: { cssText: "width:600px; height:450px;"} }); //创建窗体
}
/**
* 创建分享链接窗体内容模板
*
* @param {fileinfo} 文件信息
*/
U.MD.O.W.Panel.shareLinkTemplate = function (fileinfo) {
var _cBox = $$('div', { className: "U_MD_O_H_body_left_invite_form" }), //创建最外层元素
_shareLinkEl = $$('div', { className: "U_MD_O_H_body_left_invite_formShare" }, _cBox), //分享链接盒子元素
_QRCodeEl = $$('div', { className: "U_MD_O_H_body_left_invite_formQRCode" }, _cBox); //二维码元素
$$('p', { innerText: "通过链接邀请:", style: { cssText: "font-size:18px; font-weight: bold;"} }, _shareLinkEl) //文字提示
var _shareLinkInpBlock = $$('div', { className: "U_MD_O_H_body_left_invite_shareInpMargin" }, _shareLinkEl); //分享链接文本框
$$('p', { style: { cssText: "margin-top: 8px;" }, innerText: "将下面的邀请链接通过QQ或微信发送给需要邀请的人" }, _shareLinkInpBlock); //文字提示
var _fileType; //文档类型
switch (fileinfo.UserDirectoryExtendType.toLowerCase()) { //字符串转换
case 'uw':
_fileType = 'word'; break;
case 'ue':
_fileType = 'execl'; break;
case 'un':
_fileType = 'word'; break;
default:
_fileType = false; break;
}
var _shareLinkInpBlockShow = $$('input', { style: { cssText: "margin-top: 5px;" }, className: "U_MD_O_H_body_left_invite_shareInp", value: "/#" + _fileType + '/join/' + fileinfo.UserDirectoryID, disabled: "disabled" }, _shareLinkInpBlock), //输出
_shareLinkInpBlockBtn = $$('div', { style: { cssText: "margin-top: 5px;" }, className: "U_MD_O_H_body_left_invite_shareBtn", innerText: "复制", onclick: function () { //复制按钮
var _inp = $$('input', { value: _shareLinkInpBlockShow.value }, $('body')[0]); //创建复制文本框
_inp.select(); //选中
document.execCommand("Copy"); //复制
$(_inp).remove();
U.Alert('复制成功,赶紧分享给小伙伴吧!'); //提示
}
}, _shareLinkInpBlock)
$$('p', { innerText: "通过二维码邀请:", style: { cssText: "font-size:18px; font-weight: bold;"} }, _QRCodeEl); //文字
var _QRCodeImg = $$('div', { style: { cssText: "margin-left:40px;margin-top: 20px;position:absolute;"} }, _QRCodeEl);
$$('div', { innerHTML: "通过扫码,邀请好友
扫描二维码获取邀请函,转发给微信好友/群,
即可邀请他们加入你的文档", style: { cssText: "margin-left: 270px;margin-top:40px;line-height:30px;"} }, _QRCodeEl);
top.U.UF.QR.generate("150", "150", "black", "white", _shareLinkInpBlockShow.value, _QRCodeImg); //调用生成二维码函数
return _cBox; //返回最外层元素
}
//#endregion
//#region 热门模板
/**
* 创建历史记录窗体
*
* @param {element} 换页元素
*/
U.MD.O.W.Panel.LoadHotTemplates = function (fileinfo) {
var _UDTD, _el, _USM, _UW;
if (!$("#U_MD_O_H_body_left_template_hot")[0]) {
_UDTD = $("#U_MD_O_H_body_left")[0];
_USM = U.UF.EL.getElementInfo($("#U_MD_O_W_E_body")[0]);
_UW = _USM["OW"] + 50;
//热门模板提供
_el = $$("div", { "className": "U_MD_O_H_body_left_template_user", id: "U_MD_O_H_body_left_template_hot" });
//new U.UF.UI.form("