netdisk_left.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:13k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html; charset=utf-8"%>
  2. <%@ page import="com.redmoon.oa.person.*" %>
  3. <%@ page import="com.redmoon.oa.netdisk.*" %>
  4. <%@ page import="cn.js.fan.util.*" %>
  5. <%@ page import="cn.js.fan.web.*" %>
  6. <jsp:useBean id="privilege" scope="page" class="com.redmoon.oa.pvg.Privilege"/>
  7. <%
  8. String root_code = ParamUtil.get(request, "root_code");
  9. if (root_code.equals("")) {
  10. // root_code = "root";
  11. root_code = privilege.getUser(request);
  12. }  
  13. %>
  14. <html>
  15. <head>
  16. <LINK href="common.css" type=text/css rel=stylesheet>
  17. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  18. <title>目录</title>
  19. <style>
  20. <!--
  21. /* Context menu Script- © Dynamic Drive (www.dynamicdrive.com) Last updated: 01/08/22
  22. For full source code and Terms Of Use, visit http://www.dynamicdrive.com */
  23. body {
  24. margin-left: 0px;
  25. margin-right: 0px;
  26. margin-bottom: 0px;
  27. overflow: auto;
  28. }
  29. .skin0 {
  30. padding-top:2px;
  31. cursor:default;
  32. font:menutext;
  33. position:absolute;
  34. text-align:left;
  35. font-family: "宋体";
  36. font-size: 9pt;
  37. width:80px;              /*宽度,可以根据实际的菜单项目名称的长度进行适当地调整*/
  38. background-color:menu;    /*菜单的背景颜色方案,这里选择了系统默认的菜单颜色*/
  39. border:1 solid buttonface;
  40. visibility:hidden;        /*初始时,设置为不可见*/
  41. border:2 outset buttonhighlight;
  42. }
  43. /*定义菜单条的显示样式*/
  44. .menuitems {
  45. padding:2px 1px 2px 10px;
  46. }
  47. -->
  48. </style>
  49. <script>
  50. function findObj(theObj, theDoc)
  51. {
  52.   var p, i, foundObj;
  53.   
  54.   if(!theDoc) theDoc = document;
  55.   if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  56.   {
  57.     theDoc = parent.frames[theObj.substring(p+1)].document;
  58.     theObj = theObj.substring(0,p);
  59.   }
  60.   if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  61.   for (i=0; !foundObj && i < theDoc.forms.length; i++) 
  62.     foundObj = theDoc.forms[i][theObj];
  63.   for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
  64.     foundObj = findObj(theObj,theDoc.layers[i].document);
  65.   if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  66.   
  67.   return foundObj;
  68. }
  69. function ShowChild(imgobj, name)
  70. {
  71. var tableobj = findObj("childof"+name);
  72. if (tableobj.style.display=="none")
  73. {
  74. tableobj.style.display = "";
  75. if (imgobj.src.indexOf("i_puls-root-1.gif")!=-1)
  76. imgobj.src = "images/i_puls-root.gif";
  77. if (imgobj.src.indexOf("i_plus-1-1.gif")!=-1)
  78. imgobj.src = "images/i_plus2-2.gif";
  79. if (imgobj.src.indexOf("i_plus-1.gif")!=-1)
  80. imgobj.src = "images/i_plus2-1.gif";
  81. }
  82. else
  83. {
  84. tableobj.style.display = "none";
  85. if (imgobj.src.indexOf("i_puls-root.gif")!=-1)
  86. imgobj.src = "images/i_puls-root-1.gif";
  87. if (imgobj.src.indexOf("i_plus2-2.gif")!=-1)
  88. imgobj.src = "images/i_plus-1-1.gif";
  89. if (imgobj.src.indexOf("i_plus2-1.gif")!=-1)
  90. imgobj.src = "images/i_plus-1.gif";
  91. }
  92. }
  93. var curDirCode = "";
  94. var curDirName = "";
  95. var curLeftClickDirCodeOld = "";
  96. var curLeftClickDirCode = "";
  97. var oldsrc = "";
  98. function onMouseUp(dirCode, dirName) {
  99. if (event.button==1) {
  100. // 点击左键时切换folder图片
  101. curLeftClickDirCode = dirCode;
  102. if (curLeftClickDirCodeOld!=curLeftClickDirCode) {
  103. var curImgObj = findObj("img" + curLeftClickDirCode);
  104. var oldImgObj = findObj("img" + curLeftClickDirCodeOld);
  105. if (oldImgObj!=null) {
  106. oldImgObj.src = oldsrc; // "images/folder_01.gif";
  107. }
  108. oldsrc = curImgObj.src;
  109. if (curImgObj.src.indexOf("images/folder_share.gif")==-1)
  110. curImgObj.src = "images/folder_open.gif";
  111. else
  112. curImgObj.src = "images/folder_share_open.gif";
  113. curLeftClickDirCodeOld = curLeftClickDirCode;
  114. }
  115. }
  116. if (event.button==2) {
  117. curDirCode = dirCode;
  118. curDirName = dirName;
  119. }
  120. }
  121. var spanInnerHTML = "";
  122. function changeName() {
  123. if (curDirCode!="") {
  124. // alert(curDirCode);
  125. spanObj = findObj("span" + curDirCode);
  126. spanInnerHTML = spanObj.innerHTML;
  127. spanObj.innerHTML = "<input name='newName' class=singleboarder size=10 value='" + curDirName + "' onblur="doChange('" + curDirCode + "',this,'" + curDirName + "'," + spanObj.name + ")" onKeyDown="if (event.keyCode==13) this.blur()">";
  128. newName.focus();
  129. newName.select();
  130. }
  131. }
  132. function doChange(dirCode, newName, oldName, spanObj) {
  133. if (newName.value=="") {
  134. alert("目录名称不能为空!");
  135. return;
  136. }
  137. if (newName.value!=oldName) {
  138. form10.op.value = "changeName";
  139. form10.dirCode.value = dirCode;
  140. form10.newName.value = newName.value;
  141. form10.root_code.value = "<%=root_code%>";
  142. form10.submit();
  143. // 下句发过去会有中文问题
  144. // window.location.href="?op=changeName&dirCode=" + dirCode + "&newName=" + newName + "&root_code=<%=StrUtil.UrlEncode(root_code)%>";
  145. // alert(window.location.href);
  146. }
  147. else {
  148. spanObj.innerHTML = spanInnerHTML;
  149. }
  150. curDirCode = "";
  151. }
  152. function share() {
  153. if (curDirCode!="")
  154. window.parent.mainFileFrame.location.href = "dir_priv_m.jsp?dirCode=" + curDirCode;
  155. curDirCode = "";
  156. }
  157. function del() {
  158. if (curDirCode!="") {
  159. if (confirm("您确定要删除文件夹“" + curDirName + "”吗?"))
  160. window.location.href="?op=del&dirCode=" + curDirCode + "&root_code=<%=StrUtil.UrlEncode(root_code)%>";
  161. curDirCode = "";
  162. }
  163. }
  164. function create() {
  165. if (curDirCode!="") {
  166. window.location.href="?op=AddChild&type=<%=Leaf.TYPE_DOCUMENT%>&parent_code=" + curDirCode + "&root_code=<%=StrUtil.UrlEncode(root_code)%>&code=<%=Leaf.getAutoCode()%>&name=<%=StrUtil.UrlEncode("新建文件夹")%>";
  167. curDirCode = "";
  168. }
  169. }
  170. function search() {
  171. window.location.href = "netdisk_search.jsp?dirCode=" + curDirCode;
  172. }
  173. function move(towhere) {
  174. if (curDirCode!="") {
  175. window.location.href = "?op=move&direction=" + towhere + "&root_code=<%=StrUtil.UrlEncode(root_code)%>&code=" + curDirCode;
  176. curDirCode = "";
  177. }
  178. }
  179. </script>
  180. </head>
  181. <body onLoad="window_onload()">
  182. <table width="100%"  border="0" style="background-image:url(images/bg_left.jpg); background-repeat:no-repeat">
  183. <%
  184. String priv = "read";
  185. if (!privilege.isUserPrivValid(request,priv))
  186. {
  187. out.print(SkinUtil.makeErrMsg(request, SkinUtil.LoadString(request, "pvg_invalid")));
  188. return;
  189. }
  190. String op = ParamUtil.get(request, "op");
  191. if (op.equals("changeName")) {
  192. String newName = ParamUtil.get(request, "newName");
  193. String dirCode = ParamUtil.get(request, "dirCode");
  194. Directory dir = new Directory();
  195. Leaf lf = dir.getLeaf(dirCode);
  196. lf.setName(newName);
  197. lf.update();
  198. }
  199. if (op.equals("del")) {
  200. String delcode = ParamUtil.get(request, "dirCode");
  201. UserMgr um = new UserMgr();
  202. UserDb ud = um.getUserDb(privilege.getUser(request));
  203. if (delcode.equals("" + ud.getName())) {
  204. out.print(StrUtil.Alert("根目录不能被删除"));
  205. }
  206. else {
  207. Directory dir = new Directory();
  208. Leaf lf = dir.getLeaf(delcode);
  209. if (lf!=null) { // 防止反复刷新
  210. try {
  211. dir.del(delcode);
  212. }
  213. catch (ErrMsgException e) {
  214. out.print(StrUtil.Alert(e.getMessage()));
  215. }
  216. }
  217. }
  218. }
  219. if (op.equals("AddChild")) {
  220. boolean re = false;
  221. Directory dir = new Directory();
  222. try {
  223. re = dir.AddChild(request);
  224. if (re) {
  225. response.sendRedirect("netdisk_left.jsp?root_code=" + StrUtil.UrlEncode(root_code));
  226. return;
  227. }
  228. }
  229. catch (ErrMsgException e) {
  230. out.print(StrUtil.Alert(e.getMessage()));
  231. }
  232. if (!re) {
  233. out.print(StrUtil.Alert("添加节点失败,请检查编码是否重复!"));
  234. }
  235. }
  236. if (op.equals("move")) {
  237. Directory dir = new Directory();
  238. try {
  239. dir.move(request);
  240. if (true) {
  241. response.sendRedirect("netdisk_left.jsp?root_code=" + StrUtil.UrlEncode(root_code));
  242. return;
  243. }
  244. }
  245. catch (ErrMsgException e) {
  246. out.print(StrUtil.Alert(e.getMessage()));
  247. }
  248. }
  249. %>
  250.   <tr>
  251.     <td height="73"><table width="100%" border="0" cellpadding="0" cellspacing="0">
  252.         <tr>
  253.           <td height="40" style="FILTER: glow(color=ffffff)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><font color="#0099FF">网络硬盘</font></strong></td>
  254.         </tr>
  255.         <tr>
  256.           <td>
  257.   <!--<a href="dir_frame.jsp" target="_parent">管理视图</a>
  258.           &nbsp;&nbsp;<a href="netdisk_dir_share.jsp?userName=<%=StrUtil.UrlEncode(privilege.getUser(request))%>">我的共享</a>-->&nbsp;<img src="images/network.gif" width="16" height="16" align="absbottom">&nbsp;<a href="netdisk_neighbor_frame.jsp" target="_parent">网络邻居</a>&nbsp;&nbsp;<img src="images/public_share.gif" width="16" height="16" align="absmiddle">&nbsp;<a href="netdisk_public_share_frame.jsp" target="_parent">公共共享</a></td>
  259.         </tr>
  260.     </table></td>
  261.   </tr>
  262. </table>
  263. <table width="100%"  border="0">
  264.   <tr>
  265.     <td width="5" align="left">&nbsp;</td>
  266.   <td align="left"><%
  267. Directory dir = new Directory();
  268. Leaf leaf = dir.getLeaf(root_code);
  269. DirectoryView tv = new DirectoryView(leaf);
  270. tv.ListSimple(out, "mainFileFrame", "dir_list.jsp", "op=editarticle", "", "" ); // "tbg1", "tbg1sel");
  271. %></td>
  272.   </tr>
  273. </table>
  274. <table width="100%" border="0" cellpadding="0" cellspacing="0">
  275. <form name=form10 action="?">
  276. <tr><td>&nbsp;
  277. <input name="op" type="hidden">
  278. <input name="dirCode" type="hidden">
  279. <input name="newName" type="hidden">
  280. <input name="root_code" type="hidden">
  281. </td></tr>
  282. </form>
  283. </table>
  284. <div id="ie5menu" class="skin0" onMouseover="highlightie5(event)" onMouseout="lowlightie5(event)" onClick="jumptoie5(event)" display:none>
  285. <div class="menuitems" url="javascript:changeName()">重命名</div>
  286. <div class="menuitems" url="javascript:share()">共享</div>
  287. <div class="menuitems" url="javascript:del()">删除</div>
  288. <div class="menuitems" url="javascript:create()">新建目录</div>
  289. <div class="menuitems" url="javascript:move('up')">上移</div>
  290. <div class="menuitems" url="javascript:move('down')">下移</div>
  291. <div class="menuitems" url="javascript:search()">搜索</div>
  292. <hr>
  293. <div class="menuitems" url="netdisk_left.jsp?root_code=<%=StrUtil.UrlEncode(root_code)%>">刷新</div>
  294. </div>
  295. <script language="JavaScript1.2">
  296. //set this variable to 1 if you wish the URLs of the highlighted menu to be displayed in the status bar
  297. var display_url=0
  298. var ie5=document.all&&document.getElementById
  299. var ns6=document.getElementById&&!document.all
  300. if (ie5||ns6)
  301. var menuobj=document.getElementById("ie5menu")
  302. function showmenuie5(e){
  303. if (curDirCode=="")
  304. return;
  305. //Find out how close the mouse is to the corner of the window
  306. var rightedge=ie5? document.body.clientWidth-event.clientX : window.innerWidth-e.clientX
  307. var bottomedge=ie5? document.body.clientHeight-event.clientY : window.innerHeight-e.clientY
  308. //if the horizontal distance isn't enough to accomodate the width of the context menu
  309. if (rightedge<menuobj.offsetWidth)
  310. //move the horizontal position of the menu to the left by it's width
  311. menuobj.style.left=ie5? document.body.scrollLeft+event.clientX-menuobj.offsetWidth : window.pageXOffset+e.clientX-menuobj.offsetWidth
  312. else
  313. //position the horizontal position of the menu where the mouse was clicked
  314. menuobj.style.left=ie5? document.body.scrollLeft+event.clientX : window.pageXOffset+e.clientX
  315. //same concept with the vertical position
  316. if (bottomedge<menuobj.offsetHeight)
  317. menuobj.style.top=ie5? document.body.scrollTop+event.clientY-menuobj.offsetHeight : window.pageYOffset+e.clientY-menuobj.offsetHeight
  318. else
  319. menuobj.style.top=ie5? document.body.scrollTop+event.clientY : window.pageYOffset+e.clientY
  320. menuobj.style.visibility="visible"
  321. return false
  322. }
  323. function hidemenuie5(e){
  324. menuobj.style.visibility="hidden"
  325. }
  326. function highlightie5(e){
  327. var firingobj=ie5? event.srcElement : e.target
  328. if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
  329. if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode //up one node
  330. firingobj.style.backgroundColor="highlight"
  331. firingobj.style.color="white"
  332. if (display_url==1)
  333. window.status=event.srcElement.url
  334. }
  335. }
  336. function lowlightie5(e){
  337. var firingobj=ie5? event.srcElement : e.target
  338. if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
  339. if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode //up one node
  340. firingobj.style.backgroundColor=""
  341. firingobj.style.color="black"
  342. window.status=''
  343. }
  344. }
  345. function jumptoie5(e){
  346. var firingobj=ie5? event.srcElement : e.target
  347. if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
  348. if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode
  349. if (firingobj.getAttribute("target"))
  350. window.open(firingobj.getAttribute("url"),firingobj.getAttribute("target"))
  351. else
  352. window.location=firingobj.getAttribute("url")
  353. }
  354. }
  355. if (ie5||ns6){
  356. menuobj.style.display=''
  357. document.oncontextmenu=showmenuie5
  358. document.onclick=hidemenuie5
  359. }
  360. function handlerOnClick() {
  361. var obj = window.event.srcElement;
  362. alert(obj.type);
  363. }
  364. function window_onload() {
  365. // window.document.body.onclick = handlerOnClick;
  366. }
  367. </script>
  368. </body>
  369. </html>