@ -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 ( ) ;
/ / v e r s i o n U p S e l e c t e d C o m p s ( 1 ) ;
}
win . button2 . onClick = function ( ) {
versionUpSelectedComps( 0 ) ;
btnOwn( ) ;
}
win . button3 . onClick = function ( ) {
renderSelectedToProjectPath ( ) ;
btnRender ( ) ;
}
win . button4 . onClick = function ( ) {
test ( ) ;
btnTest ( ) ;
/ / a l e r t ( g e t I t e m B y N a m e ( g e t T o d a y S t r i n g ( ) ) ) ;
}
win . layout . layout ( true ) ;
@ -76,12 +80,12 @@
}
/* General functions */
function pad ( n , i ) { / / p a d n w i t h c e r o e s u p t o i p l a c e s .
w . pad = function ( n , i ) { / / p a d n w i t h z e r o e s u p t o i p l a c e s .
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 ) ; / / d a y o f m o n t h
var month = w . pad ( dt . getMonth ( ) + 1 , 2 ) ; / / m o n n t h 1 - 1 2
var year = w . pad ( dt . getFullYear ( ) . toString ( ) . substr ( 2 , 4 ) , 2 ) ; / / l a s t 2 d i g i t s o f y e a r
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; / / M a i x m u m r e v n u m b e r 9 9
var regex = /[0-9]{2}[a-z]{2} [ FINCHK]{3} /g; / / M a i x m u m r e v n u m b e r 9 9
var offlineRevCode = myComp . name . match ( regex ) [ 0 ] ;
return offlineRevCode ;
}
@ -159,7 +179,7 @@
function getArtistInitials ( ) {
/ / m a c o n l y f o r n o w ?
var userName = artistName. text ;
var userName = w. artistName. text ;
/ / c o d e r ' s e x c e p t i o n a l i s m
if ( userName = "jperez" ) {
@ -181,11 +201,12 @@
}
function versionUpComp ( myComp , inc ) {
if ( artistRole . selection . index == 0 ) {
role = w . artistRole ;
if ( role . selection . index == 0 ) {
/ / o f f l i n e
var revCode = getOfflineRevCode ( myComp ) ;
} else if ( a rtistR ole. selection . index == 1 ) {
} else if ( role. selection . index == 1 ) {
/ / f i n i s h i n g
var revCode = getFinishingRevCode ( myComp ) ;
}
@ -197,10 +218,12 @@
/ / v a r o l d A r t i s t I n i t i a l s = o f f l i n e R e v C o d e . s u b s t r i n g ( 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 versiounUpTodaySelec tedComp s( inc ) {
var my _item = getSelectedProjectItems ( ) [ 0 ] ;
var t = getItemTrunk ( my _item ) ;
@ -323,39 +346,304 @@
var next _n / / f o r f o l d e r c r e a t i o n
var new _folder ;
var date _pos
/ / c r e a t e n e w f o l d e r u n d e r d a t e f o l d e r ' s p a r e n t .
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 ( ) ;
/ / C h e c k i f a d a t e d f o l d e r a l r e a d y e x i s t s .
new _folder = getItemByName ( date _string ) ;
if ( new _folder == null ) {
new _folder = t [ i ] . parentFolder . items . addFolder ( date _string )
}
} ;
}
/ / f o r ( v a r i = n e x t _ n - 1 ; i > = 0 ; i - - ) {
/ / / / a l e r t ( t [ i + 1 ] . n a m e + " / " + t [ i ] . n a m e )
/ / / / a l e r t ( n e w _ f o l d e r . n a m e ) ;
/ / i f ( i = = n e x t _ n - 1 ) {
/ / t [ i ] = n e w _ f o l d e r ;
/ / }
/ / a l e r t ( t [ i ] . n a m e )
/ / t [ i + 1 ] . i t e m s . a d d F o l d e r ( t [ i ] . n a m e ) ;
/ / / / v a r n e x t _ f o l d e r ;
/ / / / i f ( i = = n e x t _ n - 1 ) {
/ / / / n e x t _ f o l d e r = n e w _ f o l d e r . i t e m s . a d d F o l d e r ( t [ i ] . n a m e ) ;
/ / / / } e l s e {
/ / / / n e x t _ f o l d e r = n e x t _ f o l d e r . p a r e n t F o l d e r
/ / / / }
/ / / / t [ i - 1 ] . i t e m s . a d d F o l d e r ( t [ i ] . n a m e ) ;
/ / a l e r t ( d a t e _ s e a r c h ) ;
/ / c r e a t e s a m e b r a n c h s t r u c t u r e a s t r u n k u n d e r n e w d a t e f o l d e r .
var next _folder = new _folder ;
for ( var i = date _pos - 1 ; i >= 0 ; i -- )
{
next _folder = next _folder . items . addFolder ( t [ i ] . name ) ;
/ / / / t [ i + 1 ] . i t e m s . a d d F o l d e r ( t [ i ] . n a m e ) ;
/ / }
}
new _comp = my _item . duplicate ( ) ;
new _comp . name = my _item . name ;
versionUpComp ( new _comp , inc ) ;
new _comp . parentFolder = next _folder ;
/ / m y _ i t e m . s e l e c t e d = f a l s e ;
/ / a p p . p r o j e c t . a c t i v e I t e m = n e w _ c o m p ;
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 ( ) ;
/ / a l e r t ( " N o t h i n g t o t e s t r i g h t n o w . " )
}
/ / / /
function CompHerder ( )
{
/ / t h i s . i n f o =
/ / {
/ / n a m e : " C o m p H e r d e r " ,
/ / v e r s i o n : 0 . 1 ,
/ / s t a g e : " d e v e l o p m e n t " ,
/ / d e s c r i p t i o n : " T o o l t o m a n a g e p r o j e c t i t e m s . " ,
/ / u r l : " y o r c h n e t . c o m "
/ / } ;
/ / t h i s . a p p e a r e n c e =
/ / {
/ / b u t t o n H e i g h t : 3 0 ,
/ / b u t t o n W i d t h : 1 2 6
/ / } ;
/ / t h i s . r e s o u r c e s =
/ / {
/ / i c o n : n e w F i l e ( ' y N e t . p n g ' ) ,
/ / } ;
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 ) ;
}
}
/ / i t e m s = i t e m s . c o n c a t ( a p p . p r o j e c t . a c t i v e I t e m . s e l e c t e d I t e m s ) ;
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 ( )
{
/ / t h i s . b t n L a u y o u t =
/ / " b u t t o n \
/ / { \
/ / p r e f e r r e d S i z e : [ ' " + t h i s . a p p e a r e n c e . b u t t o n W i d t h + " ' , ' " + t h i s . a p p e a r e n c e . b u t t o n H e i g h t + " ' ] , \
/ / t e x t : ' " + t h i s . i n f o . n a m e + " ' , \
/ / h e l p T i p : ' " + t h i s . i n f o . d e s c r i p t i o n + " ' \
/ / } " ;
/ / t h i s . r e s =
/ / " w i n d o w \
/ / { \
/ / t y p e : ' p a l e t t e ' , \
/ / t e x t : ' " + t h i s . i n f o . n a m e + ' ' + t h i s . i n f o . v e r + ' ' + t h i s . i n f o . s t a g e + " ' , \
/ / i n f o : G r o u p \
/ / { \
/ / a l i g n m e n t : [ ' c e n t e r ' , ' b o t t o m ' ] , \
/ / i c o n : I m a g e \
/ / { \
/ / i c o n : ' " + t h i s . r e s o u r c e s . i c o n . p a t h + ' / ' + t h i s . r e s o u r c e s . i c o n . n a m e + " ' , \
/ / p r e f e r r e d S i z e : [ 1 5 , 1 8 ] \
/ / } , \
/ / w e b s i t e : S t a t i c T e x t \
/ / { \
/ / t e x t : ' " + t h i s . i n f o . u r l + " ' , \
/ / a l i g n m e n t : [ ' f i l l ' , ' c e n t e r ' ] \
/ / } , \
/ / } \
/ / } " ;
}
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 ( ) ; }
/ / E V E N T H A N D L E R S
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 ) ;