PageRenderTime 57ms CodeModel.GetById 27ms RepoModel.GetById 0ms app.codeStats 0ms

/war-core/src/main/webapp/wysiwyg/jsp/FCKeditor/editor/filemanager/browser/mcpuk/frmresourceslist.html

https://github.com/pteyssandier/Silverpeas-Core
HTML | 382 lines | 300 code | 65 blank | 17 comment | 0 complexity | 1df5c0cd0833206604a1b8a827299a27 MD5 | raw file
  1. <!--
  2. * FCKeditor - The text editor for internet
  3. * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  4. *
  5. * Licensed under the terms of the GNU Lesser General Public License:
  6. * http://www.opensource.org/licenses/lgpl-license.php
  7. *
  8. * For further information visit:
  9. * http://www.fckeditor.net/
  10. *
  11. * File Name: frmresourceslist.html
  12. * This page shows all resources available in a folder in the File Browser.
  13. *
  14. * File Authors:
  15. * Frederico Caldeira Knabben (fredck@fckeditor.net)
  16. * Grant French (grant@mcpuk.net)
  17. -->
  18. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  19. <html>
  20. <head>
  21. <link href="browser.css" type="text/css" rel="stylesheet">
  22. <script type="text/javascript" src="js/fckxml.js"></script>
  23. <script type="text/javascript" src="js/common.js"></script>
  24. <script language="javascript">
  25. var oListManager = new Object() ;
  26. oListManager.Init = function()
  27. {
  28. this.Table = document.getElementById('tableFiles') ;
  29. }
  30. oListManager.Clear = function()
  31. {
  32. // Remove all other rows available.
  33. while ( this.Table.rows.length > 0 )
  34. this.Table.deleteRow(0) ;
  35. }
  36. oListManager.AddFolder = function( folderName, folderPath )
  37. {
  38. var docWidth=document.body.clientWidth;
  39. if (docWidth==null) docWidth=document.body.scrollWidth;
  40. var maxCols=docWidth/120;
  41. maxCols--;
  42. var rows=this.Table.getElementsByTagName('tr');
  43. if (rows.length!=0) {
  44. var lastRow = rows[(rows.length-1)];
  45. var cells = lastRow.getElementsByTagName('td');
  46. var lastRow_Cols = cells.length;
  47. if (lastRow_Cols>=maxCols) {
  48. lastRow = this.Table.insertRow(-1);
  49. lastRow.className="Frame_tb";
  50. }
  51. } else {
  52. var lastRow = this.Table.insertRow(-1);
  53. lastRow.className="Frame_tb";
  54. }
  55. // Build the link to view the folder.
  56. var sLink = '<a href="#" onclick="OpenFolder(\'' + escape(folderPath) + '\');return false;">' ;
  57. var dLink = '<a href="#" onclick="DeleteFolder(\'' + escape(folderName) + '\');return false;">' ;
  58. var rLink = '<a href="#" onclick="RenameFolder(\'' + escape(folderName) + '\');return false;">' ;
  59. // Add the file icon cell.
  60. var oCell = lastRow.insertCell(-1) ;
  61. oCell.vAlign="top";
  62. oCell.width = 96 ;
  63. oCell.innerHTML = sLink + '<img alt="' + folderName + '" src="images/Folder96.jpg" width="96" height="96" border="0"><br />' + folderName + '</a><br />';
  64. oCell.innerHTML += dLink + '<img border="0" src="images/delete.gif" width="16" height="16" alt="Delete Folder" title="Delete Folder"></a>&nbsp;';
  65. oCell.innerHTML += rLink + '<img border="0" src="images/edit.gif" width="16" height="16" alt="Rename Folder" title="Rename Folder"></a>' ;
  66. oCell.noWrap = true ;
  67. oCell.align = 'center' ;
  68. }
  69. oListManager.AddFile = function ( fileName, fileUrl, fileSize, imageEditable )
  70. {
  71. var docWidth=document.body.clientWidth;
  72. if (docWidth==null) docWidth=document.body.scrollWidth;
  73. var maxCols=docWidth/120;
  74. maxCols--;
  75. var rows=this.Table.getElementsByTagName('tr');
  76. if (rows.length!=0) {
  77. var lastRow = rows[(rows.length-1)];
  78. var cells = lastRow.getElementsByTagName('td');
  79. var lastRow_Cols = cells.length;
  80. if (lastRow_Cols>=maxCols) {
  81. var lastRow = this.Table.insertRow(-1);
  82. lastRow.className="Frame_tb";
  83. }
  84. } else {
  85. var lastRow = this.Table.insertRow(-1);
  86. lastRow.className="Frame_tb";
  87. }
  88. // Build the link to view the file.
  89. var sLink = '<a href="#" title="Size: ' + fileSize + 'kb" onclick="OpenFile(\'' + escape(fileUrl) + '\');return false;">' ;
  90. var dLink = '<a href="#" title="Delete file" onclick="DeleteFile(\'' + escape(fileName) + '\');return false;">' ;
  91. var eLink = '<a href="#" title="Rename file" onclick="RenameFile(\'' + escape(fileName) + '\');return false;">' ;
  92. var eImageLink = '<a href="#" title="Edit Image" onclick="EditImage(\'' + escape(fileName) + '\',\'' + escape(fileUrl) + '\');return false;">' ;
  93. // Add the file icon cell.
  94. var oCell = lastRow.insertCell(-1) ;
  95. oCell.vAlign="top";
  96. oCell.width = 96 ;
  97. oCell.innerHTML = sLink +
  98. '<img alt="' + fileName + '" src="' +
  99. oConnector.ConnectorUrl +
  100. '?Command=Thumbnail&Type=' +
  101. oConnector.ResourceType +
  102. '&CurrentFolder=' +
  103. oConnector.CurrentFolder +
  104. '&FileName=' + escape(fileName) +
  105. '&ExtraParams=' + oConnector.ExtraParams +
  106. '" width="96" height="96" border="0"><br />' +
  107. fileName + '</a><br />';
  108. oCell.innerHTML += dLink + '<img border="0" src="images/delete.gif" width="16" height="16" alt="Delete File" title="Delete File"></a>&nbsp;';
  109. oCell.innerHTML += eLink + '<img border="0" src="images/edit.gif" width="16" height="16" alt="Edit/Rename File" title="Rename File"></a>' ;
  110. if (imageEditable==1) {
  111. oCell.innerHTML += eImageLink + '<img border="0" src="images/editImage.gif" width="16" height="16" alt="Edit Image" title="Edit Image"></a>' ;
  112. }
  113. oCell.noWrap = true ;
  114. oCell.align = 'center' ;
  115. }
  116. oListManager.PackRow = function ()
  117. {
  118. var docWidth=document.body.clientWidth;
  119. if (docWidth==null) docWidth=document.body.scrollWidth;
  120. var maxCols=docWidth/120;
  121. maxCols--;
  122. var rows=this.Table.getElementsByTagName('tr');
  123. if (rows.length!=0) {
  124. var lastRow = rows[(rows.length-1)];
  125. var cells = lastRow.getElementsByTagName('td');
  126. var lastRow_Cols = cells.length;
  127. if (lastRow_Cols<maxCols) {
  128. for (i=lastRow_Cols;i<maxCols;i++) {
  129. var oCell = lastRow.insertCell(-1);
  130. oCell.width=96;
  131. oCell.innerHTML = '&nbsp;';
  132. oCell.noWrap=true;
  133. oCell.align='center';
  134. }
  135. }
  136. }
  137. }
  138. function OpenFolder( folderPath )
  139. {
  140. // Load the resources list for this folder.
  141. window.parent.frames['frmFolders'].LoadFolders( folderPath ) ;
  142. }
  143. function OpenFile( fileUrl )
  144. {
  145. fileUrl=unescape(fileUrl);
  146. window.top.opener.SetUrl( fileUrl ) ;
  147. window.top.close() ;
  148. window.top.opener.focus() ;
  149. }
  150. function DeleteFile( fileName, fileUrl )
  151. {
  152. if (confirm('Are you sure you wish to delete ' + unescape(fileName) + '?')) {
  153. oConnector.SendCommand( 'DeleteFile', "FileName=" + fileName, DeleteFileCallBack ) ;
  154. }
  155. }
  156. function DeleteFolder( folderName )
  157. {
  158. if (confirm('Are you sure you wish to delete ' + unescape(folderName) + ' and all files in it?')) {
  159. oConnector.SendCommand( 'DeleteFolder', "FolderName=" + folderName, DeleteFolderCallBack ) ;
  160. }
  161. }
  162. function RenameFile( fileName, fileUrl )
  163. {
  164. var promptMsg='Please enter the new name for ' + unescape(fileName) + ':';
  165. var newName=prompt(promptMsg,unescape(fileName));
  166. if ((newName!=null)&&(newName!='')&&(newName!=fileName)) {
  167. oConnector.SendCommand( 'RenameFile', "FileName=" + fileName + "&NewName=" + escape( newName ), RenameFileCallBack ) ;
  168. }
  169. }
  170. function EditImage( fileName, fileUrl )
  171. {
  172. window.location.href="frmimageeditor.html?Connector=" + oConnector.ConnectorUrl +
  173. "&Type=" + oConnector.ResourceType +
  174. "&CurrentFolder=" + oConnector.CurrentFolder +
  175. "&FileName=" + fileName +
  176. "&FileURL=" + fileUrl;
  177. }
  178. function RenameFolder( folderName )
  179. {
  180. var promptMsg='Please enter the new name for ' + unescape(folderName) + ':';
  181. var newName=prompt(promptMsg,unescape(folderName));
  182. if ((newName!=null)&&(newName!='')&&(newName!=unescape(folderName))) {
  183. oConnector.SendCommand( 'RenameFolder', "FolderName=" + folderName + "&NewName=" + escape ( newName ), RenameFolderCallBack ) ;
  184. }
  185. }
  186. function LoadResources( resourceType, folderPath )
  187. {
  188. oListManager.Clear() ;
  189. oConnector.ResourceType = resourceType ;
  190. oConnector.CurrentFolder = folderPath
  191. oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack ) ;
  192. }
  193. function Refresh()
  194. {
  195. LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;
  196. }
  197. function GetFoldersAndFilesCallBack( fckXml )
  198. {
  199. // Get the current folder path.
  200. var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
  201. var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
  202. var sCurrentFolderUrl = oNode.attributes.getNamedItem('url').value ;
  203. // Add the Folders.
  204. var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
  205. if (oNodes!=null) {
  206. for ( var i = 0 ; i < oNodes.length ; i++ )
  207. {
  208. var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
  209. oListManager.AddFolder( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
  210. }
  211. }
  212. // Add the Files.
  213. var oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
  214. if (oNodes!=null) {
  215. for ( var i = 0 ; i < oNodes.length ; i++ )
  216. {
  217. var sFileName = oNodes[i].attributes.getNamedItem('name').value ;
  218. var sFileSize = oNodes[i].attributes.getNamedItem('size').value ;
  219. var iEditable = oNodes[i].attributes.getNamedItem('editable') ;
  220. if (iEditable!=null) {
  221. iEditable = iEditable.value;
  222. } else {
  223. iEditable = 0;
  224. }
  225. oListManager.AddFile( sFileName, sCurrentFolderUrl + sFileName, sFileSize, iEditable ) ;
  226. }
  227. }
  228. oListManager.PackRow();
  229. }
  230. function DeleteFileCallBack ( fckXml )
  231. {
  232. var oNodes = fckXml.SelectNodes( 'Connector/Error' );
  233. if (oNodes!=null && oNodes.length>0) {
  234. var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
  235. switch (errNo) {
  236. case 0 :
  237. break;
  238. case 302 :
  239. alert('Failed to delete file.');
  240. break;
  241. default:
  242. alert('DFi: Invalid XML response from connector..');
  243. }
  244. } else {
  245. alert('DFi: Invalid XML response from connector.');
  246. }
  247. Refresh();
  248. }
  249. function DeleteFolderCallBack ( fckXml )
  250. {
  251. var oNodes = fckXml.SelectNodes( 'Connector/Error' );
  252. if (oNodes!=null && oNodes.length>0) {
  253. var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
  254. switch (errNo) {
  255. case 0 :
  256. break;
  257. case 402 :
  258. alert('Failed to delete folder.');
  259. break;
  260. default:
  261. alert('DFo: Invalid XML response from connector..');
  262. }
  263. } else {
  264. alert('DFo: Invalid XML response from connector.');
  265. }
  266. Refresh();
  267. }
  268. function RenameFileCallBack ( fckXml )
  269. {
  270. var oNodes = fckXml.SelectNodes( 'Connector/Error' );
  271. if (oNodes!=null && oNodes.length>0) {
  272. var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
  273. switch (errNo) {
  274. case 0 :
  275. break;
  276. case 502 :
  277. alert('Failed to rename file.');
  278. break;
  279. default:
  280. alert('RFi: Invalid XML response from connector..');
  281. }
  282. } else {
  283. alert('RFi: Invalid XML response from connector.');
  284. }
  285. Refresh();
  286. }
  287. function RenameFolderCallBack ( fckXml )
  288. {
  289. var oNodes = fckXml.SelectNodes( 'Connector/Error' );
  290. if (oNodes!=null && oNodes.length>0) {
  291. var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
  292. switch (errNo) {
  293. case 0 :
  294. break;
  295. case 602 :
  296. alert('Failed to rename folder.');
  297. break;
  298. default:
  299. alert('RFo: Invalid XML response from connector..');
  300. }
  301. } else {
  302. alert('RFo: Invalid XML response from connector.');
  303. }
  304. Refresh();
  305. }
  306. window.onload = function()
  307. {
  308. oListManager.Init() ;
  309. window.top.IsLoadedResourcesList = true ;
  310. }
  311. </script>
  312. </head>
  313. <body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
  314. <table id="tableFiles" cellSpacing="4" cellPadding="5" width="100%" border="0">
  315. </table>
  316. </body>
  317. </html>