Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1160593
in-portal
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Sep 19, 10:03 AM
Size
22 KB
Mime Type
text/x-diff
Expires
Sun, Sep 21, 10:03 AM (2 h, 22 m)
Engine
blob
Format
Raw Data
Handle
750659
Attached To
rINP In-Portal
in-portal
View Options
Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html
===================================================================
--- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html (revision 4983)
+++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html (revision 4984)
@@ -1,158 +1,161 @@
<!--
* FCKeditor - The text editor for internet
* Copyright (C) 2003-2004 Frederico Caldeira Knabben
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://www.fckeditor.net/
*
* File Name: frmupload.html
* Page used to upload new files in the current folder.
*
* Version: 2.0 RC3
* Modified: 2004-11-29 16:04:32
*
* File Authors:
* Frederico Caldeira Knabben (fredck@fckeditor.net)
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link href="Browser.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="js/common.js"></script>
<script language="javascript">
function SetCurrentFolder( resourceType, folderPath )
{
var sUrl = oConnector.ConnectorUrl +'Command=FileUpload' ;
sUrl += '&Type=' + resourceType ;
sUrl += '&CurrentFolder=' + folderPath ;
document.getElementById('frmUpload').action = sUrl ;
}
function OnSubmit()
{
if ( document.getElementById('NewFile').value.length == 0 )
{
alert( 'Please select a file from your computer' ) ;
return false ;
}
// Set the interface elements.
document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ;
document.getElementById('btnUpload').disabled = true ;
return true ;
}
function outputErrorMsg(errorNumber, fileName) {
switch ( errorNumber )
{
case 0 :
window.parent.frames['frmResourcesList'].Refresh() ;
break ;
case 201 :
window.parent.frames['frmResourcesList'].Refresh() ;
alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
break ;
case 202 :
alert( 'Invalid file' ) ;
break ;
case 203 :
alert( 'Invalid file type for this foder' ) ;
break ;
case 204 :
alert( 'A file with the same name is already available' ) ;
break ;
default :
alert( 'Error on file upload. Error number: ' + errorNumber ) ;
break ;
}
}
function OnUploadCompleted( errorNumber, fileName )
{
// Reset the Upload Worker Frame.
window.parent.frames['frmUploadWorker'].location = 'about:blank' ;
// Reset the upload form (On IE we must do a little trick to avout problems).
if ( document.all )
document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ;
else
document.getElementById('frmUpload').reset() ;
// Reset the interface elements.
document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
document.getElementById('btnUpload').disabled = false ;
outputErrorMsg(errorNumber);
}
window.onload = function()
{
window.top.IsLoadedUpload = true ;
}
function SetElementVisibility(upload_visibility, del_rename_visibility) {
document.getElementById("upload").style.display = upload_visibility;
document.getElementById("del_rename").style.display = del_rename_visibility;
}
function SetButtonAvalability(button_name, avalability) {
- document.getElementById(button_name).disabled = !avalability;
+ //alert(button_name+', '+avalability);
+ //document.getElementById(button_name).disabled = !avalability;
if (avalability == false) {
- document.getElementById(button_name).style.color = 'grey';
+ document.getElementById(button_name).disabled = true;
+ document.getElementById(button_name).style.color = '#666666';
}
else {
- document.getElementById(button_name).style.color = '';
+ document.getElementById(button_name).disabled = false;
+ document.getElementById(button_name).style.color = '#000000';
}
}
function RenameFile()
{
filename = window.parent.frames['frmResourcesList'].GetCheckedFileName('first');
f=prompt('Rename file "'+filename+'"?',filename);
if (f) {
window.parent.frames['frmResourcesList'].RenameFile(filename,f);
}
}
function DeleteFiles()
{
cnt = window.parent.frames['frmResourcesList'].GetCheckedFileName('cnt');
if (cnt > 0) {
a = (cnt > 1) ? "Delete "+cnt+" selected files?": "Delete selected file?";
if (confirm(a)) {
window.parent.frames['frmResourcesList'].DeleteFiles(0);
}
}
}
</script>
</head>
<body bottomMargin="0" topMargin="0">
<form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">
<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td nowrap>
<div id="upload">
<span id="eUploadMessage">Upload a new file in this folder</span><br>
<table cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td width="100%"><input id="NewFile" name="NewFile" size="50" type="file"></td>
<td nowrap> <input id="btnUpload" type="submit" value="Upload"></td>
</tr>
</table>
</div>
<div id="del_rename" style="display : none">
<img src="images/s.gif" width="1" height="10" /><br />
- <button type="button" id="rename" style="font-size: 11px; font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana" onClick="RenameFile();">Rename</button>
- <button type="button" id="delete" style="font-size: 11px; font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana" onClick="DeleteFiles();">Delete</button>
+ <button type="button" id="rename" style="color:#000000; font-size: 11px; font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana" onClick="RenameFile();">Rename</button>
+ <button type="button" id="delete" style="color:#000000; font-size: 11px; font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana" onClick="DeleteFiles();">Delete</button>
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
Property changes on: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.8
\ No newline at end of property
+1.9
\ No newline at end of property
Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html
===================================================================
--- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html (revision 4983)
+++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html (revision 4984)
@@ -1,461 +1,483 @@
<!--
* FCKeditor - The text editor for internet
* Copyright (C) 2003-2004 Frederico Caldeira Knabben
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://www.fckeditor.net/
*
* File Name: frmresourceslist.html
* This page shows all resources available in a folder in the File Browser.
*
* Version: 2.0 RC3
* Modified: 2005-02-25 22:01:23
*
* File Authors:
* Frederico Caldeira Knabben (fredck@fckeditor.net)
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link href="Browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="js/common.js"></script>
<script language="javascript">
var oListManager = new Object() ;
var current_sort_order = '_asc';
var current_sort_by = 'name';
oListManager.Init = function()
{
this.Table = document.getElementById('tableFiles') ;
}
oListManager.Clear = function()
{
// Remove all other rows available.
while ( this.Table.rows.length > 0 )
this.Table.deleteRow(0) ;
}
function is_msie()
{
var browser = "";
browser = navigator.appName;
if (browser == 'Microsoft Internet Explorer')
return 1;
else
return 0;
}
oListManager.AddFolder = function( folderName, folderPath )
{
// Create the new row.
var oRow = this.Table.insertRow(-1) ;
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\');return false;">' ;
var oCell = oRow.insertCell(-1);
oCell.width = 16;
// Add the folder icon cell.
var oCell = oRow.insertCell(-1) ;
oCell.width = 16 ;
oCell.innerHTML = sLink + '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"></a>' ;
// Add the folder name cell.
oCell = oRow.insertCell(-1) ;
oCell.noWrap = true ;
oCell.colSpan = 4 ;
oCell.innerHTML = ' ' + sLink + folderName + '</a>' ;
}
oListManager.AddFile = function( fileName, fileUrl, fileSize, fileDate )
{
// Create the new row.
var oRow = this.Table.insertRow(-1) ;
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl + '\',\''+fileSize+'\'); return false;">' ;
// Get the file icon.
var sIcon = oIcons.GetIcon( fileName ) ;
// Add the checkbox cell
var oCell = oRow.insertCell(-1);
oCell.width = 25;
- oCell.innerHTML = '<input type="checkbox" name="file_checkbox" value='+fileName+' onclick="HandleCheckboxes()"/>';
+ oCell.innerHTML = '<input type="checkbox" name="file_checkbox" value='+fileName+' onclick="HandleCheckboxes();"/>';
// Add the file icon cell.
var oCell = oRow.insertCell(-1) ;
oCell.width = 16 ;
oCell.innerHTML = sLink + ' <img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' ;
// Add the file name cell.
oCell = oRow.insertCell(-1) ;
oCell.innerHTML = ' ' + sLink + '<span id=\'' + fileName + '\'oncontextmenu="ShowContextMenu(event);">' + fileName + '</span></a>' ;
// Add the file size cell.
oCell = oRow.insertCell(-1) ;
oCell.width = 50;
oCell.noWrap = true ;
oCell.align = 'right' ;
oCell.innerHTML = ' ' + fileSize + ' KB' ;
oCell = oRow.insertCell(-1) ;
oCell.width = 10;
oCell.noWrap = true ;
oCell.innerHTML = " " ;
//Add the file date cell.
oCell = oRow.insertCell(-1) ;
oCell.width = 120;
oCell.noWrap = true ;
oCell.innerHTML = fileDate ;
}
oListManager.AddEmptyRow = function()
{
var oRow = this.Table.insertRow(-1) ;
var oCell = oRow.insertCell(-1);
oCell.width = 25;
oCell.innerHTML = ' ';
oCell = oRow.insertCell(-1) ;
oCell.width = 16 ;
oCell.innerHTML = ' ';
oCell = oRow.insertCell(-1) ;
oCell.innerHTML = ' ';
oCell = oRow.insertCell(-1) ;
oCell.width = 50;
oCell.innerHTML = ' ';
oCell = oRow.insertCell(-1) ;
oCell.width = 10;
oCell.innerHTML = ' ';
oCell = oRow.insertCell(-1) ;
oCell.width = 120;
oCell.innerHTML = ' ';
}
function GetCheckedFileName(method)
{
var files = '';
checkboxes = document.getElementsByName('file_checkbox');
- for (i in checkboxes) {
+ for (var i = 0; i< checkboxes.length; i++) {
if (checkboxes[i].checked && checkboxes[i].value) {
if (method == 'first')
return checkboxes[i].value;
if (method == 'cnt') {
files++;
} else
files = files+checkboxes[i].value+'|';
}
}
return files;
}
+
+function show_props(obj, objName) {
+ var result1 = "";
+ var result2 = "";
+ var result3 = "";
+ var result4 = "";
+ var j = 0;
+ for (var i in obj) {
+ j++;
+ if (j <= 30)
+ result1 = result1 + objName + "." + i + " = " + obj[i] + " \n" ;
+ else if (j <= 60)
+ result2 = result2 + objName + "." + i + " = " + obj[i] + " \n" ;
+ else if (j <= 90)
+ result3 = result3 + objName + "." + i + " = " + obj[i] + " \n" ;
+ else if (j <= 120)
+ result4 = result4 + objName + "." + i + " = " + obj[i] + " \n" ;
+ }
+ alert(result1);
+ alert(result2);
+ alert(result3);
+ alert(result4);
+ }
+
+
function HandleCheckboxes() {
var checked_num = 0, i, count = 0;
checkboxes = document.getElementsByName('file_checkbox');
-
- for (i in checkboxes) {
- if (checkboxes[i].checked && checkboxes[i].value) {
+ for (var i = 0; i< checkboxes.length; i++)
+ {
+ if (checkboxes[i].checked && checkboxes[i].value)
checked_num++;
- }
}
+
if (checked_num == 0) {
document.getElementById("selector").checked = false;
}
if (checked_num > 0) {
window.parent.frames['frmUpload'].SetElementVisibility("none", "");
if (checked_num > 1) {
window.parent.frames['frmUpload'].SetButtonAvalability("rename", false);
}
else {
window.parent.frames['frmUpload'].SetButtonAvalability("rename", true);
}
}
else {
window.parent.frames['frmUpload'].SetElementVisibility("", "none");
}
}
function ShowContextMenu(event) {
if (event.target) {
var targ = event.target;
}
else if (event.srcElement) {
var targ = event.srcElement;
}
if (targ.nodeType == 3) {
targ = targ.parentNode; // defeat Safari bug
}
document.getElementById("context_menu").style.display = "";
document.getElementById("context_menu").style.top = event.clientY;
document.getElementById("context_menu").style.left = event.clientX;
id = targ.id;
document.getElementById("context_menu_file").value = id;
}
function HideContextMenu() {
document.getElementById("context_menu").style.display = "none";
}
function RenameFromContextMenu() {
file_name = document.getElementById("context_menu_file").value;
f=prompt('Rename file "'+file_name+'"?',file_name);
if (f) {
RenameFile(file_name,f);
}
}
function UncheckSelector() {
document.getElementById("selector").checked = false;
}
function ToggleSelectAll() {
checkboxes = document.getElementsByName('file_checkbox');
- var i;
- if (document.getElementById('selector').checked) {
- for (i in checkboxes) {
+ if (document.getElementById('selector').checked)
+ {
+ for (var i = 0; i< checkboxes.length; i++)
checkboxes[i].checked = true;
- }
- }
- else {
- for (i in checkboxes) {
+ } else {
+ for (var i = 0; i < checkboxes.length; i++)
checkboxes[i].checked = false;
- }
}
HandleCheckboxes();
}
function OpenFolder( folderPath )
{
// Load the resources list for this folder.
window.parent.frames['frmFolders'].LoadFolders( folderPath ) ;
}
function OpenFile( fileUrl, fileSize)
{
window.top.opener.SetUrl( fileUrl, '', '', '', fileSize);
window.close() ;
window.top.close() ;
window.top.opener.focus() ;
}
function RenameFile(old_name,new_name)
{
oConnector.SendCommand( 'RenameFile_'+old_name+'|'+new_name, null, RenameCallBack );
}
function DeleteFiles(confirm)
{
var files = GetCheckedFileName('All');
oConnector.PostCommand( 'DeleteFiles', 'files='+files+'&confirm='+confirm, DeleteCallBack );
}
function DeleteCallBack(fckXml)
{
var oNodes = fckXml.SelectNodes( 'Connector/Error' );
var msg = '';
if (oNodes.length > 0) {
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var iErrorNumber = parseInt( oNodes[i].attributes.getNamedItem('number').value ) ;
if (iErrorNumber == '100') {
Refresh();
return;
}
msg = msg + oNodes[i].attributes.getNamedItem('originalDescription').value+"\n" ;
}
if (oNodes.length > 1)
$base_msg = "Selected Files used in Your SMS "+"\n"+msg+"Delete All Selected Files";
if (oNodes.length == 1)
$base_msg = "Selected File used in Your SMS "+"\n"+msg+"Delete All Selected File?";
if (confirm($base_msg)) {
DeleteFiles(1);
}
}
}
function RenameCallBack(fckXml)
{
var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
switch ( iErrorNumber )
{
case 0 :
window.parent.frames['frmResourcesList'].Refresh() ;
break ;
case 203 :
alert( 'Invalid file type for this foder' ) ;
break ;
case 204 :
alert( 'A file with the same name is already available' ) ;
break ;
default :
alert( 'Error on file upload. Error number: ' + errorNumber ) ;
break ;
}
}
function LoadResources( resourceType, folderPath )
{
oListManager.Clear() ;
oConnector.ResourceType = resourceType ;
oConnector.CurrentFolder = folderPath
oConnector.SendCommand( 'GetFoldersAndFiles_'+current_sort_by+current_sort_order, null, GetFoldersAndFilesCallBack ) ;
}
function Refresh()
{
LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;
window.parent.frames['frmUpload'].SetElementVisibility("", "none");
}
function GetFoldersAndFilesCallBack( fckXml )
{
// Get the current folder path.
var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
var sCurrentFolderUrl = oNode.attributes.getNamedItem('url').value ;
if (current_sort_order == '_asc') {
// Add the Folders.
var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
oListManager.AddFolder( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
}
// Add the Files.
var oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFileName = oNodes[i].attributes.getNamedItem('name').value ;
var sFileSize = oNodes[i].attributes.getNamedItem('size').value ;
var sFileDate = oNodes[i].attributes.getNamedItem('date').value;
oListManager.AddFile( sFileName, sCurrentFolderUrl + sFileName, sFileSize, sFileDate) ;
}
} else {
// Add the Files.
var oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFileName = oNodes[i].attributes.getNamedItem('name').value ;
var sFileSize = oNodes[i].attributes.getNamedItem('size').value ;
var sFileDate = oNodes[i].attributes.getNamedItem('date').value;
oListManager.AddFile( sFileName, sCurrentFolderUrl + sFileName, sFileSize, sFileDate) ;
}
// Add the Folders.
var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
oListManager.AddFolder( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
}
}
oListManager.AddEmptyRow();
UpdateDivSize();
}
function UpdateDivSize()
{
table_height = document.getElementById('tableFiles').clientHeight;
if(is_msie())
window_height = document.body.clientHeight - 20;
else
window_height = window.outerHeight - 165;
if (document.getElementById('data_div')) {
document.getElementById('data_div').style.height = window_height;
if (window_height < table_height) {
document.getElementById('data_div').scroll = 'yes';
document.getElementById('sortFiles').style.width = document.getElementById('tableFiles').clientWidth;
} else {
document.getElementById('data_div').scroll = 'yes';
document.getElementById('sortFiles').style.width = document.getElementById('tableFiles').clientWidth;
}
}
}
window.onload = function()
{
oListManager.Init() ;
window.top.IsLoadedResourcesList = true ;
UncheckSelector();
}
function sortBy(sort_by)
{
if (sort_by == current_sort_by)
current_sort_order = (current_sort_order == '_asc')?'_desc':'_asc';
else {
document.getElementById('sort_'+current_sort_by).src = document.getElementById('_no').src;
current_sort_by = sort_by;
current_sort_order = '_asc';
}
document.getElementById('sort_'+current_sort_by).src = document.getElementById(current_sort_order).src;
//alert('GetFoldersAndFiles_'+current_sort_by+current_sort_order);
LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;
}
window.onresize = UpdateDivSize;
</script>
</head>
- <body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="3" rightMargin="10" onclick="HideContextMenu();" oncontextmenu="return false;">
+ <body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="3" rightMargin="10">
<div id="sort_div" style="padding: 0; border: none; overflow: hidden; width: 100%; position: relative;">
<table id="sortFiles" border="0" cellSpacing="1" cellPadding="0" width="100%" border="0" style="border-bottom:1px solid #000000; margin-bottom:0px; padding-bottom:0px;">
<tr>
<td width="25">
<input type="checkbox" id="selector" value="unchecked" onclick="ToggleSelectAll();" />
</td>
<td>
<table border="0" cellSpacing="0" cellPadding="0"border="0">
<tr>
<td><a href="javascript:sortBy('name');"><img id="sort_name" src="images/sort_asc.gif" alt="" border="0"></a></td>
<td><a href="javascript:sortBy('name');" class='order-link'> File Name</a></td>
</tr>
</table>
</td>
<td width="50" align="center">
<table border="0" cellSpacing="0" cellPadding="0"border="0">
<tr>
<td><a href="javascript:sortBy('size');"><img id="sort_size" src="images/sort_no.gif" alt="" border="0"></a></td>
<td><a href="javascript:sortBy('size');" class='order-link'> Size</a></td>
</tr>
</table>
</td>
<td width="10"> </td>
<td width="120">
<table border="0" cellSpacing="0" cellPadding="0"border="0">
<tr>
<td><a href="javascript:sortBy('date');"><img id="sort_date" src="images/sort_no.gif" alt="" border="0"></a></td>
<td><a href="javascript:sortBy('date');" class='order-link'> Date</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div id="data_div" style="padding: 0; border: none; overflow: auto; width: 100%; position: relative;">
<img src="images/s.gif" width="1" height="3"><br />
<table id="tableFiles" border="0" cellSpacing="1" cellPadding="0" width="100%" border="0" style="padding-top:0px;">
</table>
</div>
<div style="display:none">
<img id='_desc' src="images/sort_desc.gif" alt="" border="0">
<img id='_asc' src="images/sort_asc.gif" alt="" border="0">
<img id='_no' src="images/sort_no.gif" alt="" border="0">
</div>
<table id="context_menu" cellpadding="0" cellspacing="0" style="position: absolute; background-color: #FFFFFF; border: 1px solid #000000; display: none">
<tr>
<td align="left" style="font-size: 11px; font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana" onclick="RenameFromContextMenu();"> <a href="#" style="text-decoration: none; color: #000000">Rename</a> </td>
</tr>
<tr>
<td align="left" style="font-size: 11px; font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana">
<a href="#" style="text-decoration: none; color: #000000">Delete</a>
<input type="hidden" value="" id="context_menu_file">
</td>
</tr>
</table>
</body>
</html>
Property changes on: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.15
\ No newline at end of property
+1.16
\ No newline at end of property
Event Timeline
Log In to Comment