Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/browser.html
===================================================================
diff -u -N -r4936 -r4961
--- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/browser.html (.../browser.html) (revision 4936)
+++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/browser.html (.../browser.html) (revision 4961)
@@ -73,6 +73,19 @@
return oXML.LoadUrl( sUrl ) ;
}
+oConnector.PostCommand = function( command, params, callBackFunction )
+{
+ var sUrl = this.ConnectorUrl + 'Command=' + command ;
+ sUrl += '&Type=' + this.ResourceType ;
+ sUrl += '&CurrentFolder=' + escape( this.CurrentFolder ) ;
+ var oXML = new FCKXml() ;
+ //alert(sUrl);
+ if ( callBackFunction )
+ oXML.PostUrl( sUrl, params, callBackFunction ) ; // Asynchronous load.
+ else
+ return oXML.PostUrl( sUrl, params ) ;
+}
+
var oIcons = new Object() ;
oIcons.AvailableIconsArray = [
Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php
===================================================================
diff -u -N -r4936 -r4961
--- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php (.../commands.php) (revision 4936)
+++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php (.../commands.php) (revision 4961)
@@ -472,4 +472,73 @@
echo '' ;
exit ;
}
+
+function DeleteConfirmedFiles($resourceType, $currentFolder, $aFiles)
+{ global $Config;
+ $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
+ foreach ($aFiles AS $k=>$v) {
+ @unlink($sServerDir.$v);
+ }
+
+}
+
+function DeleteFiles($resourceType, $currentFolder, $files = '', $confirm=0)
+{ global $Config ;
+ if ($files == '')
+ return;
+ //$files = rtrim("|",$files);
+ $aFiles=explode("|",$files);
+ if (count($aFiles) == 0)
+ return;
+ $conn = GetADODbConnection();
+ $aLangs = array();
+ $multilang = GetConfigValue('multilingual_mode');
+ $def_lang_prefix = GetConfigValue('default_lang_prefix');
+ if ($multilang)
+ {
+ $query="SELECT lang_prefix FROM lang ORDER BY lang_id";
+ $rs = $conn->Execute($query);
+ while ($rs && !$rs->EOF) {
+ $aLangs[] = $rs->fields['lang_prefix'];
+ $rs->MoveNext();
+ }
+ } else
+ $aLangs[] = $def_lang_prefix;
+ $sErrorNumber = 230;
+ if ($confirm == 1) {
+ DeleteConfirmedFiles($resourceType, $currentFolder, $aFiles);
+ echo '' ;
+ }
+ foreach ($aFiles AS $k=>$v) {
+ $add_sql = '';
+ if ($v == '')
+ continue;
+ $deleted_file = $Config['UserFilesPathNoBase'].$resourceType.$currentFolder.addslashes($v);
+ for($i=0; $i 0) {
+ $add_sql = rtrim($add_sql," OR");
+ $sql = "SELECT lb1.template_id, lb2.".$def_lang_prefix."_content FROM live_blocks AS lb1
+ LEFT JOIN live_blocks AS lb2 ON lb2.template_id = lb1.template_id AND lb2.block_num = 20
+ WHERE".$add_sql;
+ $rs = $conn->Execute($sql);
+ while ($rs && !$rs->EOF) {
+ $used = 1;
+ $page = $rs->fields[$def_lang_prefix.'_content'];
+ $page = @html_entity_decode($page,ENT_NOQUOTES,'UTF-8');
+ $page = @htmlspecialchars($page);
+ $ret_xml.= '' ;
+ $rs->MoveNext();
+ }
+ }
+ }
+ if ($ret_xml && !$confirm)
+ echo $ret_xml;
+ if (!$ret_xml && !$confirm) {
+ DeleteConfirmedFiles($resourceType, $currentFolder, $aFiles);
+ echo '' ;
+ }
+}
+
?>
Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html
===================================================================
diff -u -N -r4936 -r4961
--- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html (.../frmupload.html) (revision 4936)
+++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html (.../frmupload.html) (revision 4961)
@@ -118,6 +118,18 @@
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);
+ }
+ }
+}
+
@@ -137,7 +149,7 @@
-
+
Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/connector.php
===================================================================
diff -u -N -r4936 -r4961
--- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/connector.php (.../connector.php) (revision 4936)
+++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/connector.php (.../connector.php) (revision 4961)
@@ -110,6 +110,9 @@
case 'RenameFile':
RenameFile( $sResourceType, $sCurrentFolder, $aFilenames) ;
break;
+ case 'DeleteFiles':
+ DeleteFiles($sResourceType, $sCurrentFolder,$_REQUEST['files'],$_REQUEST['confirm']) ;
+ break;
}
CreateXmlFooter() ;
exit;
Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/js/fckxml.js
===================================================================
diff -u -N -r1415 -r4961
--- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/js/fckxml.js (.../fckxml.js) (revision 1415)
+++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/js/fckxml.js (.../fckxml.js) (revision 4961)
@@ -33,6 +33,46 @@
return new ActiveXObject("MsXml2.XmlHttp") ;
}
+FCKXml.prototype.PostUrl = function( urlToCall, variables, asyncFunctionPointer )
+{
+ var oFCKXml = this ;
+
+ var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ;
+
+ var oXmlHttp = this.GetHttpRequest() ;
+
+ oXmlHttp.open( "POST", urlToCall, true) ;
+
+ if ( bAsync )
+ {
+ oXmlHttp.onreadystatechange = function()
+ {
+ if ( oXmlHttp.readyState == 4 )
+ {
+ oFCKXml.DOMDocument = oXmlHttp.responseXML ;
+ if ( oXmlHttp.status == 200 )
+ asyncFunctionPointer( oFCKXml ) ;
+ else
+ alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;
+ }
+ }
+ }
+ oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+ oXmlHttp.send( variables ) ;
+
+ if ( ! bAsync )
+ {
+ if ( oXmlHttp.status == 200 )
+ this.DOMDocument = oXmlHttp.responseXML ;
+ else
+ {
+ alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;
+ }
+ }
+}
+
+
+
FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )
{
var oFCKXml = this ;
Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html
===================================================================
diff -u -N -r4936 -r4961
--- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html (.../frmresourceslist.html) (revision 4936)
+++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html (.../frmresourceslist.html) (revision 4961)
@@ -114,15 +114,37 @@
oCell.innerHTML = fileDate ;
}
+oListManager.AddEmptyRow = function()
+{
+ var oRow = this.Table.insertRow(-1) ;
+ var sIcon = oIcons.GetIcon( fileName ) ;
+ var oCell = oRow.insertCell(-1);
+ oCell.width = 25;
+ oCell.innerHTML = ' ';
+ 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 = 120;
+ oCell.innerHTML = ' ';
+}
function GetCheckedFileName(method)
{
+ var files = '';
checkboxes = document.getElementsByName('file_checkbox');
for (i in checkboxes) {
if (checkboxes[i].checked) {
if (method == 'first')
return checkboxes[i].value;
- files = files+checkboxes[i].value+'|';
+ if (method == 'cnt') {
+ files++;
+ } else
+ files = files+checkboxes[i].value+'|';
}
}
return files;
@@ -171,6 +193,37 @@
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' ) ;
@@ -204,6 +257,7 @@
function Refresh()
{
LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;
+ window.parent.frames['frmUpload'].SetElementVisibility("", "none");
}
function GetFoldersAndFilesCallBack( fckXml )
@@ -250,6 +304,7 @@
}
}
+ oListManager.AddEmptyRow();
UpdateDivSize();
}