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(); }