mirror of
https://github.com/jorgevasquezp/wc_helper.git
synced 2026-08-16 15:31:02 +00:00
Created function to consolidate comps, initial implementation ready, but I intend to perform more exhaustive checks to compare the comps before replacing.
This commit is contained in:
+338
-50
@@ -24,22 +24,24 @@
|
||||
var fourthButton = "<< test >>";
|
||||
var win = (thisObj instanceof Panel)? thisObj : new Window('palette', windowTitle);
|
||||
win.spacing = 0;
|
||||
win.margins = 4;
|
||||
win.margins = 1;
|
||||
var myArtistGroup = win.add ("group");
|
||||
artistNameLabel= myArtistGroup.add("statictext");
|
||||
artistName= myArtistGroup.add("statictext");
|
||||
artistRoleLabel= myArtistGroup.add("statictext");
|
||||
artistRole= myArtistGroup.add("dropdownlist",undefined,["Offline","Finishing"])
|
||||
artistRole.selection = 0;
|
||||
var artistNameLabel= myArtistGroup.add("statictext");
|
||||
win.artistName= myArtistGroup.add("statictext");
|
||||
var artistRoleLabel= myArtistGroup.add("statictext");
|
||||
win.artistRole= myArtistGroup.add("dropdownlist",undefined,["Offline","Finishing"])
|
||||
win.artistRole.selection = 0;
|
||||
artistNameLabel.text = "Artist:";
|
||||
artistRoleLabel.text = "Role:";
|
||||
//****//
|
||||
|
||||
artistName.text = system.callSystem("whoami");
|
||||
win.artistName.text = system.callSystem("whoami");
|
||||
var myButtonGroup = win.add ("group");
|
||||
myButtonGroup.spacing = 4;
|
||||
myButtonGroup.margins = 0;
|
||||
myButtonGroup.orientation = "row";
|
||||
win.checkbox1 = myButtonGroup.add( "checkbox", undefined, "Dupli:")
|
||||
win.checkbox1.value = true;
|
||||
win.button1 = myButtonGroup.add ("button", undefined, firstButton);
|
||||
win.button2 = myButtonGroup.add ("button", undefined, secondButton);
|
||||
win.button3 = myButtonGroup.add ("button", undefined, thirdButton);
|
||||
@@ -48,17 +50,19 @@
|
||||
myButtonGroup.alignChildren = "center";
|
||||
|
||||
win.button1.onClick = function(){
|
||||
versionUpSelectedComps(1);
|
||||
btnPlus1();
|
||||
//versionUpSelectedComps(1);
|
||||
}
|
||||
win.button2.onClick = function(){
|
||||
versionUpSelectedComps(0);
|
||||
btnOwn();
|
||||
}
|
||||
win.button3.onClick = function(){
|
||||
renderSelectedToProjectPath();
|
||||
btnRender();
|
||||
}
|
||||
|
||||
win.button4.onClick = function(){
|
||||
test();
|
||||
btnTest();
|
||||
//alert( getItemByName( getTodayString() ));
|
||||
}
|
||||
|
||||
win.layout.layout(true);
|
||||
@@ -76,12 +80,12 @@
|
||||
}
|
||||
|
||||
/* General functions */
|
||||
function pad(n,i){ //pad n with ceroes up to i places.
|
||||
w.pad = function ( n, i ){ //pad n with zeroes up to i places.
|
||||
if (String(n).length>=i){
|
||||
return String(n)
|
||||
}else{
|
||||
dif = i- (String(n)).length;
|
||||
padding = "";
|
||||
var dif = i- (String(n)).length;
|
||||
var padding = "";
|
||||
for (p=0;p<dif;p++){
|
||||
padding = padding+"0"
|
||||
}
|
||||
@@ -106,12 +110,14 @@
|
||||
return offlineRevCode.match(regex)[0];
|
||||
}
|
||||
function getTodayString(){
|
||||
|
||||
dt = new Date();
|
||||
y = String(dt.getFullYear()).substring(2,4);
|
||||
m = pad(dt.getMonth()+1,2);
|
||||
d = pad(dt.getDate(),2);
|
||||
alert("m:"+m+"d:"+d+"y:"+y);
|
||||
todayString = String(m)+"_"+String(d)+"_"+String(y);
|
||||
|
||||
var day = w.pad(dt.getDate(),2); //day of month
|
||||
var month = w.pad(dt.getMonth()+1,2); //monnth 1-12
|
||||
var year = w.pad(dt.getFullYear().toString().substr(2,4),2); //last 2 digits of year
|
||||
|
||||
todayString = String(month)+"_"+String(day)+"_"+String(year);
|
||||
|
||||
return todayString
|
||||
}
|
||||
@@ -128,6 +134,20 @@
|
||||
|
||||
return walkBranch
|
||||
}
|
||||
function getItemByName( name ){
|
||||
|
||||
var items = app.project.items;
|
||||
var myItem = null;
|
||||
|
||||
for ( var i = 1 ; i <= items.length ; i ++ ){
|
||||
|
||||
var currentItem = items[i];
|
||||
if ( currentItem.name == name ){
|
||||
myItem = currentItem;
|
||||
};
|
||||
}
|
||||
return myItem;
|
||||
}
|
||||
/* Project Specific functions */
|
||||
function getOfflineRevCode( myComp ){
|
||||
|
||||
@@ -138,7 +158,7 @@
|
||||
}
|
||||
function getFinishingRevCode( myComp ){
|
||||
|
||||
var regex = /[0-9]{2}[a-z]{2}FIN/g; //Maixmum rev number 99
|
||||
var regex = /[0-9]{2}[a-z]{2}[FINCHK]{3}/g; //Maixmum rev number 99
|
||||
var offlineRevCode = myComp.name.match(regex)[0];
|
||||
return offlineRevCode;
|
||||
}
|
||||
@@ -159,7 +179,7 @@
|
||||
function getArtistInitials(){
|
||||
|
||||
//mac only for now ?
|
||||
var userName = artistName.text;
|
||||
var userName = w.artistName.text;
|
||||
|
||||
//coder's exceptionalism
|
||||
if ( userName = "jperez" ){
|
||||
@@ -181,11 +201,12 @@
|
||||
|
||||
}
|
||||
function versionUpComp( myComp, inc ){
|
||||
|
||||
if ( artistRole.selection.index == 0 ){
|
||||
role = w.artistRole;
|
||||
|
||||
if ( role.selection.index == 0 ){
|
||||
//offline
|
||||
var revCode = getOfflineRevCode( myComp );
|
||||
}else if ( artistRole.selection.index == 1 ){
|
||||
}else if ( role.selection.index == 1 ){
|
||||
//finishing
|
||||
var revCode = getFinishingRevCode( myComp );
|
||||
}
|
||||
@@ -197,10 +218,12 @@
|
||||
//var oldArtistInitials = offlineRevCode.substring(2,5);
|
||||
|
||||
var newArtistInitials = getArtistInitials();
|
||||
if ( artistRole.selection.index == 1 ){
|
||||
role = w.artistRole;
|
||||
|
||||
if ( role.selection.index == 1 ){
|
||||
newArtistInitials = newArtistInitials+"FIN"
|
||||
}
|
||||
myComp.name = splitName[0]+pad(ver+inc,2)+newArtistInitials+splitName[1] ;
|
||||
myComp.name = splitName[0]+w.pad(ver+inc,2)+newArtistInitials+splitName[1] ;
|
||||
}
|
||||
function getOutputBasePath(){
|
||||
|
||||
@@ -314,7 +337,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
function test(){
|
||||
function versiounUpTodaySelectedComps( inc ){
|
||||
var my_item = getSelectedProjectItems()[0];
|
||||
|
||||
var t = getItemTrunk(my_item);
|
||||
@@ -323,39 +346,304 @@
|
||||
|
||||
var next_n // for folder creation
|
||||
var new_folder;
|
||||
|
||||
var date_pos
|
||||
//create new folder under date folder's parent.
|
||||
for ( var i = 0 ; i < t.length ; i ++ )
|
||||
{
|
||||
|
||||
var date_search = t[i].name.search(date_re);
|
||||
|
||||
if ( date_search == 0 )
|
||||
{
|
||||
new_folder = t[i].parentFolder.items.addFolder( getTodayString() )
|
||||
var date_pos = i;
|
||||
var date_string = getTodayString();
|
||||
//Check if a dated folder already exists.
|
||||
new_folder = getItemByName( date_string );
|
||||
if ( new_folder == null ){
|
||||
new_folder = t[i].parentFolder.items.addFolder( date_string )
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// for (var i = next_n-1 ; i >= 0 ; i -- ){
|
||||
// //alert( t[i+1].name + "/" + t[i].name )
|
||||
// //alert( new_folder.name );
|
||||
// if(i == next_n - 1){
|
||||
// t[i] = new_folder;
|
||||
// }
|
||||
// alert(t[i].name)
|
||||
// t[i+1].items.addFolder(t[i].name);
|
||||
// // var next_folder;
|
||||
// // if(i == next_n - 1){
|
||||
// // next_folder = new_folder.items.addFolder( t[i].name );
|
||||
// // }else{
|
||||
// // next_folder = next_folder.parentFolder
|
||||
// // }
|
||||
//alert(date_search);
|
||||
//create same branch structure as trunk under new date folder.
|
||||
var next_folder = new_folder;
|
||||
for ( var i = date_pos-1 ; i >= 0 ; i -- )
|
||||
{
|
||||
|
||||
// // t[i-1].items.addFolder( t[i].name );
|
||||
next_folder = next_folder.items.addFolder(t[i].name);
|
||||
|
||||
|
||||
|
||||
// //t[i+1].items.addFolder( t[i].name );
|
||||
// }
|
||||
}
|
||||
new_comp = my_item.duplicate();
|
||||
new_comp.name = my_item.name;
|
||||
versionUpComp( new_comp, inc );
|
||||
new_comp.parentFolder = next_folder;
|
||||
//my_item.selected = false;
|
||||
//app.project.activeItem = new_comp;
|
||||
new_comp.selected = true;
|
||||
}
|
||||
|
||||
/* UI Buttons */
|
||||
function btnPlus1(){
|
||||
var dupli = w.checkbox1.value == true;
|
||||
if ( dupli ){
|
||||
versiounUpTodaySelectedComps( 1 );
|
||||
}else{
|
||||
versionUpSelectedComps( 1 );
|
||||
}
|
||||
}
|
||||
function btnOwn(){
|
||||
var dupli = w.checkbox1.value == true;
|
||||
if ( dupli ){
|
||||
versiounUpTodaySelectedComps( 0 );
|
||||
}else{
|
||||
versionUpSelectedComps( 0 );
|
||||
}
|
||||
}
|
||||
|
||||
function btnRender(){
|
||||
renderSelectedToProjectPath();
|
||||
}
|
||||
|
||||
function btnTest(){
|
||||
CompHerder = new CompHerder();
|
||||
CompHerder.activate();
|
||||
//alert("Nothing to test right now.")
|
||||
}
|
||||
|
||||
////
|
||||
|
||||
|
||||
|
||||
|
||||
function CompHerder()
|
||||
{
|
||||
// this.info =
|
||||
// {
|
||||
// name : "CompHerder",
|
||||
// version : 0.1,
|
||||
// stage : "development",
|
||||
// description : "Tool to manage project items.",
|
||||
// url : "yorchnet.com"
|
||||
// };
|
||||
// this.appearence =
|
||||
// {
|
||||
// buttonHeight : 30,
|
||||
// buttonWidth : 126
|
||||
// };
|
||||
// this.resources =
|
||||
// {
|
||||
// icon : new File('yNet.png'),
|
||||
// };
|
||||
this.methods =
|
||||
{
|
||||
pad : function ( n , pad ) {
|
||||
zeros = "";
|
||||
for ( i = 0 ; i < pad ; i ++ )
|
||||
{
|
||||
zeros+="0";
|
||||
}
|
||||
n = String(n);
|
||||
padded = zeros.substr( 0, pad - n.length ) + String(n) ;
|
||||
return padded
|
||||
},
|
||||
replace: function( items , string , newString ){
|
||||
for ( i = 0 ; i < items.length ; i ++ ){
|
||||
var item = items[i];
|
||||
item.name = item.name.replace( string , newString );
|
||||
}
|
||||
return true;
|
||||
},
|
||||
getSelectedProjectItems: function (){
|
||||
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);
|
||||
}
|
||||
}
|
||||
//items = items.concat( app.project.activeItem.selectedItems );
|
||||
return items;
|
||||
},
|
||||
suffix: function ( items , suffix ){
|
||||
for ( i = 0 ; i < items.length ; i ++ ){
|
||||
var item = items[i];
|
||||
if ( item.name.search( suffix ) != (item.name.length - suffix.length) ){
|
||||
item.name+= "_"+suffix;
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
},
|
||||
prefix : function( items , prefix ){
|
||||
for ( i = 0 ; i < items.length ; i ++ )
|
||||
{
|
||||
var item = items[i];
|
||||
if ( item.name.search( prefix ) != 0 ){
|
||||
item.name = prefix + "_" + item.name;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
rename: function ( items , new_name ){
|
||||
for ( i = 0 ; i < items.length ; i ++ ){
|
||||
var item = items[i];
|
||||
item.name = new_name + "_" + i;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
this.init = function init()
|
||||
{
|
||||
|
||||
// this.btnLauyout =
|
||||
// "button\
|
||||
// {\
|
||||
// preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
// text:'" + this.info.name + "',\
|
||||
// helpTip:'" + this.info.description + "'\
|
||||
// }";
|
||||
|
||||
// this. res =
|
||||
// "window\
|
||||
// {\
|
||||
// type:'palette',\
|
||||
// text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||||
// info: Group \
|
||||
// {\
|
||||
// alignment:['center','bottom'],\
|
||||
// icon: Image \
|
||||
// {\
|
||||
// icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||||
// preferredSize: [15, 18]\
|
||||
// },\
|
||||
// website: StaticText\
|
||||
// {\
|
||||
// text:'" + this.info.url + "',\
|
||||
// alignment:['fill','center']\
|
||||
// },\
|
||||
// }\
|
||||
// }";
|
||||
}
|
||||
this.createUI = function createUI( )
|
||||
{
|
||||
var myUI = this;
|
||||
var res =
|
||||
"window { \
|
||||
text: 'CompHerder',\
|
||||
alignment: ['fill','fill'], \
|
||||
alignChildren: ['center','top'], \
|
||||
orientation: 'column', \
|
||||
resizeable: 'true',\
|
||||
tabs: Panel {\
|
||||
type: 'tabbedpanel',\
|
||||
alignment: ['fill','fill'], \
|
||||
alignChildren: ['center','top'], \
|
||||
search_tab: Panel {\
|
||||
type: 'tab',\
|
||||
text: 'Search & Replace',\
|
||||
orientation: 'column', \
|
||||
alignChildren: ['center','top'], \
|
||||
searchGrp: Group {\
|
||||
alignment: ['fill','fill'], \
|
||||
alignChildren: ['center','top'], \
|
||||
orientation: 'column', \
|
||||
searchString: EditText {text:'SEARCH FOR TEXT',alignment: ['fill','center']}, \
|
||||
},\
|
||||
replaceGrp: Group {\
|
||||
alignment: ['fill','fill'], \
|
||||
alignChildren: ['center','center'], \
|
||||
orientation: 'column', \
|
||||
replaceString: EditText {text:'REPLACE WITH TEXT',alignment: ['fill','center']}, \
|
||||
}\
|
||||
doItBtn: Button {text: 'Replace in selected Comps', alignment: ['center','center']} , \
|
||||
}\
|
||||
suprefix: Panel {\
|
||||
type: 'tab',\
|
||||
text: 'Suffix / Prefix',\
|
||||
orientation: 'column', \
|
||||
suprefixGrp: Group {\
|
||||
alignment: ['fill','fill'], \
|
||||
alignChildren: ['left','center'], \
|
||||
orientation: 'column', \
|
||||
pre:Group {\
|
||||
alignment: ['fill','fill'], \
|
||||
alignChildren: ['left','center'], \
|
||||
orientation: 'row', \
|
||||
prefixString: EditText {text:'PREFIX',alignment: ['fill','center']}, \
|
||||
prefixBtn: Button {text: 'Preffix'} , \
|
||||
},\
|
||||
su:Group{\
|
||||
alignment: ['fill','fill'], \
|
||||
alignChildren: ['left','center'], \
|
||||
orientation: 'row', \
|
||||
sufixString: EditText {text:'SUFIX',alignment: ['fill','center']}, \
|
||||
sufixBtn: Button {text: 'Sufix'} , \
|
||||
}\
|
||||
},\
|
||||
},\
|
||||
rename_tab: Panel {\
|
||||
type: 'tab',\
|
||||
text: 'Rename',\
|
||||
renameGrp: Group {\
|
||||
alignment: ['fill','fill'], \
|
||||
alignChildren: ['left','center'], \
|
||||
orientation: 'row', \
|
||||
renameString: EditText {text:'NEW NAME',alignment: ['fill','center']}, \
|
||||
renameBtn: Button {text: 'Rename'} ,\
|
||||
}\
|
||||
}\
|
||||
},\
|
||||
}";
|
||||
|
||||
myUI.window = new Window( res );
|
||||
myUI.window.layout.layout(true);
|
||||
|
||||
myUI.window.show();
|
||||
|
||||
myUI.window.layout.onResizing = myUI.window.layout.onResize = function () { myUI.layout.resize();}
|
||||
|
||||
//EVENT HANDLERS
|
||||
myUI.window.tabs.search_tab.doItBtn.onClick = function(){
|
||||
var search_str = myUI.window.tabs.search_tab.searchGrp.searchString.text;
|
||||
var replace_str = myUI.window.tabs.search_tab.replaceGrp.replaceString.text;
|
||||
myUI.methods.replace( myUI.methods.getSelectedProjectItems() , search_str , replace_str );
|
||||
};
|
||||
|
||||
myUI.window.tabs.suprefix.suprefixGrp.pre.prefixBtn.onClick = function(){
|
||||
var pre = myUI.window.tabs.suprefix.suprefixGrp.pre.prefixString.text;
|
||||
myUI.methods.prefix( myUI.methods.getSelectedProjectItems() , pre );
|
||||
};
|
||||
|
||||
myUI.window.tabs.suprefix.suprefixGrp.su.sufixBtn.onClick = function(){
|
||||
var su = myUI.window.tabs.suprefix.suprefixGrp.su.sufixString.text;
|
||||
myUI.methods.suffix( myUI.methods.getSelectedProjectItems() , su );
|
||||
};
|
||||
|
||||
myUI.window.tabs.rename_tab.renameGrp.renameBtn.onClick = function(){
|
||||
var new_name = myUI.window.tabs.rename_tab.renameGrp.renameString.text;
|
||||
myUI.methods.rename( myUI.methods.getSelectedProjectItems() , new_name );
|
||||
};
|
||||
|
||||
return(this);
|
||||
}
|
||||
this.replaceInSelectedItems = function(){
|
||||
var search_string = "GFX";
|
||||
var replace_string = "VFX";
|
||||
}
|
||||
|
||||
this.activate = function activate()
|
||||
{
|
||||
w = this.createUI();
|
||||
}
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
////
|
||||
|
||||
})(this);
|
||||
|
||||
Reference in New Issue
Block a user