my function.js that display the home directory of the selected project.
function getDisplayPath(){
/*Below are variables declared for shortcut copntrol on iframe*/
var iframe = $("#idisplay").contents().find("span.data");
var href_src = $("#idisplay").contents().find("a#src_path");
var adirUp = $("#idisplay").contents().find("a#dirUp");
var dirUpImg = $("#idisplay").contents().find("a#dirUp img");
var displayContent = $("#idisplay").contents().find("a#displayContent");
var displayImg = $("#idisplay").contents().find("img#folder");
var fileList = $("#idisplay").contents().find("a#fileList");
var filesize = $("#idisplay").contents().find("span#filesize");
var filedate = $("#idisplay").contents().find("span#filedate");
var filenames = $("#idisplay").contents().find("span#filename");
var fileListIcon = $("#idisplay").contents().find("img#icon");
var dirUp = $("#idisplay").contents().find("div#dirUp");
var foldersdetail = $("#idisplay").contents().find("div#homedirs");
var subfolders = $("#idisplay").contents().find("div#homefolder");
var filesdetail = $("#idisplay").contents().find("div#homefiles");
var anken_id = $("select option:selected").val();
var hostname = "https://info.tmj.jp/dev2-sync/index.php/getpath/";
var datapage = hostname + anken_id;
$.getJSON( datapage, function( data ) {
var items = [];
var foldercount = [];
var folders = [];
var filedetails = [];
var filecount = [];
// var divId = [];
$.each( data, function( key, val ) {
items.push('<a>' + val.anken_src_path + '<br>');
foldercount.push(val.foldercnt);
filecount.push(val.filecnt);
// fileType.push(folderImage(val.imageSrc.folder));
// alert(val.imageSrc.folder);
for (var i = 0; i<foldercount; i++) {
// folders.push(val.folderDetail[i]);
folders.push(foldersDisplay(val.folderDetail[i], val.homefolderName[i]));
// divId.push(addDivId(val.newfolderName[i]));
};
for (var i = 0; i<filecount; i++) {
// alert(i);
// alert(val.fileDetail[i]);
filedetails.push(filesDisplay(val.fileDetail[i]));
};
});
if($(anken_id).change()){
$(iframe).empty();
$( "<a>", {
"class": "my-new-list",
html: items.join('')
}).appendTo(iframe).html();
$(foldersdetail).empty();
$(foldersdetail).appendEach(folders);
// $(foldersdetail).appendEach(divId);
$(filesdetail).empty();
$(filesdetail).appendEach(filedetails);
// var sublinkDiv = $(foldersdetail).find("div#sublink")
// for (var i = 0; i < sublinkDiv.length; i++) {
// // alert(sublinkDiv.length);
// return $(foldersdetail).find("div#sublink a").prepend(fileType);
// }
}
});
// JQUERY PLUGIN: I append each jQuery object (in array of
// jQuery objects) to the currently selected collection.
jQuery.fn.appendEach = function( arrayOfWrappers ){
// Map the array of jQuery objects to an array of
// raw DOM nodes.
var rawArray = jQuery.map(
arrayOfWrappers,
function( value, index ){
// Return the unwrapped version. This will return
// the underlying DOM nodes contained within each
// jQuery value.
return( value.get() );
}
);
// Add the raw DOM array to the current collection.
this.append( rawArray );
// Return this reference to maintain method chaining.
return( this );
};
function foldersDisplay(foldernames, newId) {
return (
// $("<div class='homefolder'>" + foldernames + "</div>")
$("<div id="+newId+">" + foldernames + "</div>")
);
}
function filesDisplay(filenames) {
return (
$( "<div>" + filenames + "</div>" )
);
}
// function folderImage(folderimg){
// return(
// $("<img src=" +folderimg+ ">")
// );
// }
}
my showcontent.js where I encounter the propblem. This displays all the subdirectories on my directories using recursive function.
$(function(){
$("#homedirs").delegate("#homefolder", "click", function(event){
event.preventDefault();
event.stopPropagation();
var location = $(this).attr('id');
var directory = $(this).find('img').attr('id');
var projectId = $(this).find('img').attr('class');
var mydivs = $("div a#homefolder");
var subHomeDir = $( this ).find('span').attr('id');
var homecheck1 = $(this).siblings().is('.contentFolders');
var homecheck2 = $(this).siblings().is('.contentFiles');
getmain(projectId, directory, mydivs, subHomeDir, homecheck1, homecheck2);
});
$("#homedirs").delegate(".contentFolders", "click", function(event){
var projectId = $('#homefolder').find('img').attr('class');
var contentdivs = $(".contentFolders");
var location = $(this).find('a').attr('id');
var nextSubDir = $(this).attr('id');
var parentDirectory = $(this).find('img').attr('id');
var refDirectory = $(this).children().attr('class');
var childDirectory = $(this).attr('id');
var filecheck1 = $(this).children().is('.contentFolders');
var filecheck2 = $(this).children().is('.contentFiles');
// $(document).ready(function(){
var filecheck3 = $(this).children().next().is('.contentFolders');
var filecheck4 = $(this).children().next().is('.contentFiles');
var filecheckFolderA = ($(this).children().next().attr('id'));
var filecheckFolderB = ($(this).children().next().attr('class'));
alert("CLASS EXIST: " +$(this).children().children().attr('class'));
// alert("HTML : " +$(this).html());
// alert("CHECKER: " +$(this).children().next().html());
// alert("FILECHECK 3 : " + $(this).children().next().attr('id'));
// alert("FILECHECK 4 : " + $(this).children().next().attr('class'));
if(!($(this).children().next().attr('class'))){
// if(!($(this).children().children().attr('class'))){
// alert("FILECHECK 3 : " + $(this).children().next().attr('id'));
// alert("FILECHECK 4 : " + $(this).children().next().attr('class'));
getsub(location, projectId, parentDirectory, childDirectory, nextSubDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB);
return false;
}
// });
return false;
});
function getmain (id, mainDirectory, mydivs, subHomeDir, homecheck1, homecheck2){
var dirname = mainDirectory;
var id = id;
var homeFolderDivs = mydivs;
getDirectoryList(null, id, dirname, homeFolderDivs, subHomeDir, homecheck1, homecheck2);
}
function getsub (locate, id, mainDirectory, subDirectory, nextSubDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB){
var dirname = mainDirectory;
var id = id;
getDirectoryList(locate, id, dirname, null, null, null, null, subDirectory, nextSubDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB);
}
function getDirectoryList(locate, id, mainDir, homeFolderDivs, subHomeDir, homecheck1, homecheck2, subDir, nextSubDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB){
var nextSubDir = nextSubDir;
var filecheck1 = filecheck1;
var filecheck2 = filecheck2;
var filecheckFolderA = filecheckFolderA;
var filecheckFolderB = filecheckFolderB;
var refDirectory = refDirectory;
var homeFolderDivs = homeFolderDivs;
if(locate){
var hostname = "https://info.tmj.jp/dev2-sync/index.php/getsub/";
var dirpage = $.trim(hostname+id+'?dir=/'+mainDir+subDir);
}else{
var hostname = "https://info.tmj.jp/dev2-sync/index.php/getsub/";
var dirpage = $.trim(hostname+id+'?dir=/'+mainDir);
}
// alert(dirpage);
$.getJSON( dirpage, function(data){
var directorycount = [];
var directories = [];
var filedetails = [];
var filecount = [];
var isCondir = [];
var dirNames = [];
$.each(data, function(key, val){
directorycount.push(val.foldercnt);
filecount.push(val.filecnt);
isCondir.push(val.dotdotdir);
for (var i = 0; i<directorycount; i++){
directories.push(foldersDisplay(val.folderDetail[i], val.homefolderName[i]));
dirNames.push(val.homefolderName[i]);
};
for (var i = 0; i<filecount; i++){
filedetails.push(filesDisplay(val.fileDetail[i]));
};
});
if (isCondir != "/") {
displaySubDirectories(directories, filedetails, directorycount, filecount, dirNames, nextSubDir, mainDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB)
}else{
displayHomeDirectories(directories, filedetails, homeFolderDivs, subHomeDir, homecheck1, homecheck2)
}
});
}
function displayHomeDirectories(directories, filedetails, homeFolderDivs, subHomeDir, homecheck1, homecheck2){
for (var i = 0; i < homeFolderDivs.length; i++){
var parentDir = ($(homeFolderDivs[i]).find('span').attr('id'));
if(subHomeDir === parentDir){
if((!homecheck1) && (!homecheck2)){
$('div a#homefolder')
.filter(function( index ){
return index === i;
}).after(filedetails)
.after(directories);
}
}
}
}
function displaySubDirectories(directories, filedetails, directorycount, filecount, dirNames, nextSubDir, mainDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB){
var contentdivs = $("div a#contentFolders").filter('.'+refDirectory);
if((!filecheckFolderA) && (!filecheckFolderB)){
alert("nextSubDir " + nextSubDir + " DIRECTORY COUNT IS: " + directorycount + " and FILE COUNT" + filecount);
if(directorycount == ""){
directorycount = 0;
}else if((filecount == "")){
filecount = 0;
}
var documentCounter = parseInt(directorycount) + parseFloat(filecount);
alert("Total DOCUMENT CUNT IS: " + documentCounter);
for (var i = 0; i<contentdivs.length; i++){
var parentDir = ($(contentdivs[i]).children().next().next().attr('id'));
if(nextSubDir === parentDir){
if((!filecheck1) && (!filecheck2)){
// $("div a#contentFolders").children('img').addClass("exist");
$("div a#contentFolders").filter('.'+refDirectory).eq(i).after(filedetails).after(directories);
return false;
}
}
}
}
}
function showhide(){
/*If the image is plus. When the sublink is clicked. Below function will change the plus image to minus*/
if($('.homefolder img#showhide').hasClass('plus')){
$('.homefolder img#showhide').removeClass('plus');
$('.homefolder img#showhide').addClass('minus');
}
/*Below image will toggel or hide and show the subdir linnk list.*/
$(".homefolder img").click(function(event){
event.preventDefault();
if($('.homefolder img#showhide').hasClass('minus')){
$('.homefolder img#showhide').removeClass('minus');
$('.homefolder img#showhide').addClass('plus');
// var mydivs = $("div.contentFolders");
// for (var i = 0; i < mydivs.length; i++){
// alert(i);
// alert(mydivs);
// };
// alert($('.contentFolders').children().children().contains('.app'));
// var spanid = $(this).parent().next().parent().attr('id').is(imgId).hide();
// var imgId = $(this).parent().parent().attr('id');
// alert("SPAN ID is:" + spanid + "& IMAGE ID is:" + imgId);
// alert("TEST:" + ($(spanid).next().attr('class')));
// if(spanid === imgId){
// alert("IMAGE ID is:" + imgId);
// // $('.contentFolders').hide();
// var imgId = '#'+imgId;
// $(this).parent().next().parent().attr('id').is(imgId).hide();
// };
// $('.contentFolders').hide();
// $('.contentFiles').hide();
}else {
$('.homefolder img#showhide').removeClass('plus');
$('.homefolder img#showhide').addClass('minus');
// $('.contentFolders').show();
// $('.contentFiles').show();
}
if($('.contentFolders img#showhide').hasClass('plus')){
$('.contentFolders img#showhide').removeClass('minus');
$('.contentFolders img#showhide').addClass('plus');
// $('.contentFolders').hide();
// $('.contentFiles').hide();
}else {
$('.contentFolders img#showhide').removeClass('minus');
$('.contentFolders img#showhide').addClass('plus');
// $('.contentFolders').show();
// $('.contentFiles').show();
}
});
}
jQuery.fn.appendEach = function( arrayOfWrappers ){
var rawArray = jQuery.map(
arrayOfWrappers,
function( value, index ){
return( value.get() );
});
this.append( rawArray );
return( this );
};
function foldersDisplay(directorynames, newId) {
return (
$( "<div class='contentFolders' id="+newId+">" + directorynames + "</div>" ).css({"margin-left":"20px"})
// $("<></input>")
);
}
function filesDisplay(filenames) {
return (
$( "<div class='contentFiles'>" + filenames + "</div>" ).css({"margin-left":"20px"})
);
}
return false;
});
Thanks once again,
Warly