You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.6 KiB
78 lines
1.6 KiB
/*
|
|
function isInArray( array, value ){
|
|
result = false
|
|
for ( var i = 0 ; i < array.length ; i ++ ){
|
|
if ( array[i] == value ){
|
|
result = true
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
*/
|
|
|
|
function getSelectedProjectItems (){
|
|
var items = [];
|
|
var p = app.project;
|
|
for ( var i = 1 ; i <= p.numItems ; i ++ ){
|
|
var item = p.item(i);
|
|
if ( item.selected ){
|
|
items.push(item);
|
|
}
|
|
}
|
|
return items;
|
|
}
|
|
function getAllItems( folderItem ){
|
|
|
|
var items = [];
|
|
var folders = [];
|
|
|
|
for ( var i = 1 ; i <= folderItem.numItems ; i ++ ){
|
|
var item = folderItem.item(i);
|
|
|
|
if ( (item.typeName != "Folder") ){
|
|
//if ( (isInArray( items ,item )) == false ){
|
|
items.push( item );
|
|
//}
|
|
}else{
|
|
var new_items = getAllItems(item);
|
|
for ( var j = 0 ; j < new_items.length ; j ++ ){
|
|
new_item = new_items[j];
|
|
//if ( (isInArray ( new_item )) == false ){
|
|
items.push ( new_item );
|
|
//}
|
|
}
|
|
}
|
|
}
|
|
return items
|
|
}
|
|
function flatten( items, root ){
|
|
app.beginUndoGroup("Flatten Selected Folder Contents")
|
|
for ( var i = 0; i < items.length ; i ++){
|
|
item = items[i];
|
|
item.parentFolder = root;
|
|
}
|
|
app.endUndoGroup()
|
|
purgeEmptyFolders();
|
|
return
|
|
}
|
|
function purgeEmptyFolders(){
|
|
app.beginUndoGroup("Purge Empty Folders")
|
|
var emptyFolders = [];
|
|
|
|
var p = app.project;
|
|
for ( var i = p.numItems ; i >= 1 ; i -- ){
|
|
item = p.item(i);
|
|
if ( item.typeName == "Folder" ){
|
|
if ( item.numItems <= 0 ){
|
|
item.remove();
|
|
}
|
|
}
|
|
}
|
|
|
|
app.endUndoGroup()
|
|
}
|
|
|
|
|
|
flatten( getAllItems( getSelectedProjectItems()[0] ) , getSelectedProjectItems()[0] );
|
|
alert("You're welcome ;-) ");
|