//=============================================================================
//filelist
var pagelistparent;
var pageselectedids=new Array();
var clipboardselectedids=new Array();
var pageclipboardmode;
var filelistMode;
var selectedVersions=new Array();
loadedPageData=new Array;//for load/save comparison
function listPages(elementId,data,singleClick,doubleClick){
var Html='
';
var FolderList='';
var FileList='';
var fileExt='';
var deletedItemsHTML='';
var temptitle='';
if(pagelistparent!=0){
Html+='- parent
\n';
}
for (var row in data){
if(data[row].path!="/"){var dbleClick=doubleClick;}else{var dbleClick="void";}//stop home page having subfolders
if(data[row] && data[row].path && (data[row].path=='/deleted-files/' || data[row].path=='/images/' || data[row].path=='/downloads/' || data[row].path=='/system/')){
temptitle=data[row].path.replace(/[^-a-z 0-9_]+/ig,'');
deletedItemsHTML+='- '+(temptitle.charAt(0).toUpperCase() + temptitle.slice(1))+'
\n';
}else
if(data[row] && data[row].path){
var classString="";
var styleString="";
var lang="";
if(data[row].lang){
lang=" "+data[row].lang;
}
//if not page get file name
if(!data[row].title){
var urlinfo=xtractFile(data[row].path);
data[row].title=urlinfo.file;
var fileExts;
if(fileExts=urlinfo.file.match(/\.([a-z]{3}).?\/?/)){
fileExt=fileExts[1];
classString+="duocmslistfile_"+fileExt+" ";
}else{
classString+="duocmsFolder"+lang+" ";
fileExt='';
}
}else{
classString+="duocmsFolder"+lang+" ";
}
if(data[row].publish=="0"){classString+="unpublished ";}
for(var i=0;i'+data[row].title+'\n';
if(fileExt){
FileList+=fileHtml;
}else{
FolderList+=fileHtml;
}
var lastrow=row;
}
}
Html+=FolderList+FileList+deletedItemsHTML;
if(lastrow && pathAddressBar){
document.getElementById(pathAddressBar).value=pathParent(data[lastrow].path);
}
Html+="
";
document.getElementById(elementId).innerHTML=Html;
if($("#pp_path").length>0){
$("#mmUploadFileListing").sortable({update: fileListSorted});
}
}
function fileListSorted(event,ui){
var list=event.target;
var items=list.getElementsByTagName("LI");
var idlist='';
for(var i=0;i0){
//clear all previously selected items stored in array
var elem;
for(i=0;i1){//only try and join selected items if more than one is selected
//get all files in list
var listHolder=document.getElementById('mmUploadFileListing');
var list=listHolder.childNodes;
var elemid;
var startHighlight=false;
var totalSelected=pageselectedids.length;
//get highest and lowest selected item
for(var i=0;i1){
startHighlight=true;
totalSelected--;
}else if(elemid==pageselectedids[j]){
startHighlight=false;
newpageselectedids.push(elemid);
list[i].className=list[i].className.replace(/[ ]?active/,'');//remove active, so we don't get it twice
list[i].className+=' active';//then add it again
}
}
if(startHighlight){
newpageselectedids.push(elemid);
list[i].className=list[i].className.replace(/[ ]?active/,'');//remove active, so we don't get it twice
list[i].className+=' active';//then add it again
}
}
}
pageselectedids=newpageselectedids;
}
}else{
pageselectedids=new Array;
pageselectedids[0]=id;
item.className+=" active";
}
}
function loadPageDataRaw(id){
var myConn = new XHConn();
if (myConn){
document.getElementById('statusbar').innerHTML="Loading Page Data";
var Data=advfielddata;//assign last loaded field data to Data variable
var fields="";
for (var Row in Data){//loop through and when you find appropriate id populate form
if(Data[Row]['parent']==0){
fields+=Data[Row]['fieldName']+",";
}
}
fields=fields.substr(0,(fields.length-1));//remove last comma
//var fields="duocms_structure.*,duocms_pages.*";
var where="structure.id="+id+" limit 1";
var savingData="fields="+escape(fields)+"&where="+escape(where)+"&structure_id="+id;
myConn.connect("/duocms/data/getsmall/", "POST", savingData, loadPageData_res);
}
}
function loadPageData_res(data){
//parent.document.write(data.responseText);
//alert(data.responseText);
var data=eval('('+data.responseText+')');
if(data.error){alert(data.error);return;}
var info=data.info[0];
for (var table in info){
for (var field in info[table]){
fieldid="advprop_"+table+"_"+field;
if(document.getElementById(fieldid)){
var formelem=document.getElementById(fieldid);
setFormValueByNode(formelem,info[table][field]);
loadedPageData[fieldid]=document.getElementById(fieldid).value;//record for later comparison at save
}
if(document.getElementById("advOpbox_"+table+"_"+field)){
var tickboxarea=document.getElementById("advOpbox_"+table+"_"+field);
var tickboxes=tickboxarea.getElementsByTagName('LABEL');
var tickopt='';
var tickboxinputs=tickboxarea.getElementsByTagName('INPUT');
//clear tickboxes first
for(i=0;i0){
if(document.getElementById('genprop_structure_publish')){
document.getElementById('genprop_structure_publish').checked=document.getElementById('advprop_pages_lang_publish').checked;
}
}
if(document.getElementById('securityForm')){
document.getElementById('securityForm').reset();
}
if(data.info.security){
if(data.info.security.read){
for(i=0;i"+data.info.versions[i].when+" - "+data.info.versions[i].title+" - "+data.info.versions[i].email+"";
}
}
vers_html+="";
document.getElementById('versionlist').innerHTML=vers_html;
objectListen(document.getElementById('versionlist'),"mousedown",versionSelect);
$("#versionlist ul").sortable({update: versionListSorted});//allow reordering of verions jquery
}
document.getElementById('statusbar').innerHTML="";
}
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// Version Functions
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
function versionListSorted(event,ui){
var list=event.target;
var items=list.getElementsByTagName("LI");
var idlist='';
for(var i=0;iunpublish');
}else{
$('#pp_version').append('');
}
}
function versionPublishSelected(pub){
var versions=selectedVersions.join(',');
savingData="&versionids="+versions;
var myConn = new XHConn();
if (myConn){
myConn.connect("/duocms/pages/versionpublish/"+pub+"/", "POST", savingData,versionsPublish_res);
}
}
function versionsPublish_res(data){
loadPageDataRaw(pageselectedids[0]);
}
function versionHighlightSelected(){
var items=document.getElementById('versionlist').childNodes[0].childNodes;
var itemId;
var j;
for(var i=0;i0){
document.getElementById('advprop_structure_path').value=document.getElementById('advprop_pages_title').value;
}
//get all contents
var savingData=buildPOSTOptimised('advForm');
//savingData+="&duocms_pages|id="+pageData.duocms_pages.id.value;
//alert (savingData);
var securityData=buildPOSTOptimised('securityForm');
if(securityData){
savingData+="&"+securityData;
}
myConn.connect("/duocms/data/set/", "POST", savingData, savePageData_res);
}
}
}
function savePageData_res(data){
//parent.document.getElementById('duocmsContent').contentWindow.document.write(""+data.responseText+"
");
data=eval('('+data.responseText+')');
if(data.error){alert(data.error);return;}
//saved!!
loadPageList(pagelistparent);
loadPageDataRaw(pageselectedids[0]);
document.getElementById('statusbar').innerHTML="";
}
function addStucture(){
var myConn = new XHConn();
if (myConn && pagelistparent){
document.getElementById('statusbar').innerHTML="Adding File";
myConn.connect("/duocms/data/addStructure/"+escape(pagelistparent)+"/1/", "POST", "", addStucture_res);
}
}
function translatePage(lang){
var myConn = new XHConn();
if (myConn && pageselectedids.length>0){
document.getElementById('statusbar').innerHTML="Translating Page";
var info="&ids="+array2CSV(pageselectedids);
myConn.connect("/duocms/files/translate/"+lang+"/", "POST", info, translatePage_res);
}else{
alert('please select which pages to translate');
}
}
function translatePage_res(data){
loadPageList(pagelistparent);
loadPageDataRaw(pageselectedids[0]);
}
function addPage(){
var myConn = new XHConn();
if (myConn && parent){
myConn.connect("/duocms/data/addStructure/"+escape(pagelistparent)+"/1/", "POST", "", addPage_res);
}
}
function addPage_res(data){
var data=eval('('+data.responseText+')');
if (data.error){alert (data.error);return;}
//parent.window.location.reload();
var myConn = new XHConn();
if(myConn && data.info){
var savingData="structure|id="+data.info;
savingData+="&pages|title="+escape('new page');
savingData+="&pages|html="+escape('New Page
');
myConn.connect("/duocms/data/set/", "POST", savingData, addStucture_res);
}else{
alert('there was an error creating a new page');
}
}
function addFile(){
var myConn = new XHConn();
if (myConn && pagelistparent){
document.getElementById('fileupload').action="/duocms/data/addStructure/"+escape(pagelistparent)+"/1/";
myConn.connect("/duocms/data/addStructure/"+escape(pagelistparent)+"/1/", "POST", "", addStucture_res);
}
}
function addStucture_res(data){
//alert(data.responseText);
var data=eval('('+data.responseText+')');
if (data.error){alert (data.error);return}
document.getElementById('statusbar').innerHTML="";
loadPageList(pagelistparent);
}
function deleteStucture(){
var myConn = new XHConn();
if (myConn && pageselectedids.length>0 && confirm('Are you sure you want to delete the selected files and all their subdirectories?')){
document.getElementById('statusbar').innerHTML="Deleting Files";
var info="&ids="+array2CSV(pageselectedids);
myConn.connect("/duocms/files/delete/", "POST", info, deleteStucture_res);
}
}
function restoreStucture(){
var myConn = new XHConn();
if (myConn && pageselectedids.length>0){
document.getElementById('statusbar').innerHTML="Restoring Files";
var info="&ids="+array2CSV(pageselectedids);
myConn.connect("/duocms/files/restore/", "POST", info, pasteStructure_res);
}
}
function permDeleteStucture(){
var myConn = new XHConn();
if (myConn && pageselectedids.length>0 && confirm('Are you sure you want to delete the selected files and all their subdirectories?\nThis cannot be undone')){
document.getElementById('statusbar').innerHTML="Deleting Files";
var info="&ids="+array2CSV(pageselectedids);
myConn.connect("/duocms/files/permdelete/", "POST", info, pasteStructure_res);
}
}
function clipboardStucture(mode){
//mode = cut or copy
pageclipboardmode=mode;
if(clipboardselectedids.length>0){//remove old cut icons
var elem;
for(var i=0;i0){//add new cut or copy icons
for(var i=0;i0){
document.getElementById('statusbar').innerHTML="Pasting Files";
var info="&ids="+array2CSV(clipboardselectedids);
var url=pagelistparent+"/"+pageclipboardmode;
myConn.connect("/duocms/files/move/"+url, "POST", info, pasteStructure_res);
}
}
function pasteStructure_res(data){
var data=eval('('+data.responseText+')');
if (data.error){alert (data.error);return;}
document.getElementById('statusbar').innerHTML="";
if(pageclipboardmode=="cut"){
clipboardselectedids=new Array();
}
loadPageList(pagelistparent);
}
function deleteStucture_res(data){
var data=eval('('+data.responseText+')');
if (data.error){alert (data.error);return;}
document.getElementById('statusbar').innerHTML="";
loadPageList(pagelistparent);
if(document.getElementById('advForm')){
document.getElementById('advForm').reset();
document.getElementById('genPPForm').reset();
}
}
function reorderStructure(direction){
if(pageselectedids.length>0){
document.getElementById('statusbar').innerHTML="Reordering File "+direction;
var myConn = new XHConn();
if (myConn){
//can't use json encod because php decode doesn't always work, csv will have to do
var info="&ids="+array2CSV(pageselectedids);
myConn.connect("/duocms/files/reorder/"+direction+"/", "POST", info, reorderStructure_res);
}
}else{
alert('please select a page to reorder');
}
}
function reorderStructure_res(data){
var data=eval('('+data.responseText+')');
if (data.error){alert (data.error);return;}
loadPageList(pagelistparent);
document.getElementById('statusbar').innerHTML="";
}
function array2CSV(inputArray){
var csv="";
for(i=0;i5){
holder.innerHTML='';
if(item){item.className="branchPlus";}
}else{
var item=document.getElementById(treeName+'TreeId'+parent);
if(item){item.className="branchMinus";}
var myConn = new XHConn();
if (myConn){
myConn.connect("/duocms/files/listFiles/"+parent+"/"+treeName+"/", "POST", "", res_loadSiteTreeBranch);
}
}
}
function res_loadSiteTreeBranch(data){
//alert(data.responseText);
var data=eval('('+data.responseText+')');
var treeName=data.info.treeName;
if(!treeName){var treeName='file';}
if(data && data.error){
alert(data.error);
return;
}
if(data && data.info){
var holder=document.getElementById(treeName+'TreeParent'+data.info.parent);
var treeHTML='';
for (var Row in data.info){
var branchTitle= data.info[Row]['title'];
if(!branchTitle && data.info[Row]['path']){
branchTitle=xtractFile(data.info[Row]['path']).file;
}
if(branchTitle){
if(data.info[Row]['children']!="0"){
treeHTML+=''+branchTitle+'';
}else{
treeHTML+=''+branchTitle+'';
}
}
}
holder.innerHTML=holder.innerHTML+treeHTML;
}
}
function setLinkLine(path,id){
setFormValue(te_linkline,path);
if(te_linkline=='imgprops_link'){//update link on image on change
te_applyImageProps();
}
if(document.getElementById('rsspathid')){
document.getElementById('rsspathid').value=id;
}
}