/* @@@BUILDINFO@@@ VersionCueMain.jsx 1.0.0.1 3.0.0.72client963 3-February-2007 */ //------------------------------------------------------------------------------ // ADOBE SYSTEMS INCORPORATED // Copyright 2007 Adobe Systems Incorporated // All Rights Reserved // NOTICE: Adobe permits you to use, modify, and distribute // this file in accordance with the terms of the Adobe license // agreement accompanying it. If you have received this file // from a source other than Adobe, then your use, modification, // or distribution of it requires the prior written permission of Adobe. //------------------------------------------------------------------------------ // versioncue.debugLog( "Start executing VersionCueMain.jsx complete" ); #target bridge if ( BridgeTalk.appName == "bridge" ) { if (typeof versioncue == "undefined") { versioncue = new Object; versioncue.uri = "bridge:vc:intrinsic://localhost/session/"; // root URI for VC //This is the global handle to ExternalObject for versioncueSDK.dll versioncue.vcSDKHandle = null; versioncue.extensionPath = File ($.fileName).parent; } // Command Object: All VC commands needs to be stored here for consistent reference and use function cmd() { // Optimization for VAdapter: Map this into a hash/index to match the backend // There are currently 30 possible commands implemented here (and more stated in VCAdapterLib), a search/str compare would result in 30 x 30 } versioncue.cmd = new cmd(); // all real commands are appended with a "1", tools with "2" versioncue.cmd.alwaysEnabled = "***Always Enabled***"; // special command that is excluded from canEnable() logic versioncue.cmd.enableUponSelection = "***Enabled upon selection***"; // enabled if there is a thumbnail selected versioncue.cmd.welcome = versioncue.cmd.alwaysEnabled; // welcome commands are always enabled versioncue.cmd.bridgeDelete = "delete"; // command maps to Bride menu delete operation... different than all the other VC commands versioncue.cmd.checkin1 = "CheckIn"; versioncue.cmd.checkin2 = "CheckInTools"; versioncue.cmd.checkin4 = "CheckInCompact"; versioncue.cmd.checkout1 = "CheckOut"; versioncue.cmd.checkout2 = "CheckOutTools"; versioncue.cmd.checkout4 = "CheckOutCompact"; versioncue.cmd.createProject1 = "createProject"; versioncue.cmd.createProject2 = "createProjectTools"; versioncue.cmd.createProject3 = "createProjectFolders"; versioncue.cmd.connectTo1 = "connectTo"; versioncue.cmd.connectTo2 = "connectToTools"; versioncue.cmd.connectTo3 = "connectToFolders"; versioncue.cmd.disconnect1 = "disconnect"; versioncue.cmd.disconnect2 = "disconnectTools"; versioncue.cmd.disconnect3 = "disconnectFolders"; versioncue.cmd.editProperties1 = "editProperties"; versioncue.cmd.editProperties2 = "editPropertiesTools"; versioncue.cmd.editProperties3 = "editPropertiesFolders"; versioncue.cmd.expunge1 = "expunge"; versioncue.cmd.expunge2 = "expungeTools"; versioncue.cmd.getVersions1 = "getVersions"; versioncue.cmd.getVersions2 = "getVersionsTools"; versioncue.cmd.getVersions4 = "getVersionsCompact"; versioncue.cmd.ingest1 = "ingest"; versioncue.cmd.ingest2 = "ingestTools"; versioncue.cmd.ingest3 = "ingestFolders"; versioncue.cmd.ingest4 = "ingestCompact"; versioncue.cmd.logout1 = "logout"; versioncue.cmd.logout2 = "logoutTools"; versioncue.cmd.logout3 = "logoutFolders"; versioncue.cmd.promote1 = "promote"; versioncue.cmd.promote2 = "promoteTools"; versioncue.cmd.remove1 = "remove"; versioncue.cmd.remove2 = "removeTools"; versioncue.cmd.remove3 = "removeFolders"; versioncue.cmd.remove4 = "removeCompact"; versioncue.cmd.restore1 = "restore"; versioncue.cmd.restore2 = "restoreTools"; versioncue.cmd.revert1 = "revert"; versioncue.cmd.revert2 = "revertTools"; versioncue.cmd.revert4 = "revertCompact"; versioncue.cmd.shareProject1 = "shareProject"; versioncue.cmd.shareProject2 = "shareProjectTools"; versioncue.cmd.shareProject3 = "shareProjectFolders"; versioncue.cmd.smartDownload1 = "smartDownload"; versioncue.cmd.smartDownload2 = "smartDownloadTools"; versioncue.cmd.smartDownload3 = "smartDownloadFolders"; versioncue.cmd.smartDownload4 = "smartDownloadCompact"; versioncue.cmd.sync1 = "synchronize"; versioncue.cmd.sync2 = "synchronizeTools"; versioncue.cmd.sync3 = "synchronizeFolders"; versioncue.cmd.sync4 = "synchronizeCompact"; versioncue.cmd.viewTrash1 = "viewTrash"; versioncue.cmd.viewTrash2 = "viewTrashTools"; versioncue.cmd.viewTrash3 = "viewTrashFolders"; // PNG files // all series 1 ids are normal button states, series 2 are rollover states // PNG object... group for collection of all PNG files function png() { } versioncue.png = new png(); versioncue.png.checkout1 = "7016.png"; versioncue.png.checkout2 = "7017.png"; versioncue.png.checkin1 = "7027.png"; versioncue.png.checkin2 = "7034.png"; versioncue.png.connect1 = "7030.png"; versioncue.png.connect2 = "7022.png"; versioncue.png.delete1 = "7025.png"; versioncue.png.delete2 = "7026.png"; versioncue.png.inspector1 = "7032.png"; versioncue.png.inspector2 = "7033.png"; versioncue.png.newProject1 = "7018.png"; versioncue.png.newProject2 = "7019.png"; versioncue.png.revert1 = "7020.png"; versioncue.png.revert2 = "7035.png"; versioncue.png.sync1 = "7021.png"; versioncue.png.sync2 = "7031.png"; versioncue.png.upload1 = "7023.png"; // Not used currently versioncue.png.upload2 = "7024.png"; // no rollover icon yet available versioncue.png.version1 = "7028.png"; versioncue.png.version2 = "7029.png"; versioncue.png.welcome1 = "8007.png"; versioncue.png.welcome2 = "8007.png"; // rollover state the same as normal (special case) versioncue.png.viewTrash1 = "7036.png"; versioncue.png.viewTrash2 = "7037.png"; versioncue.png.searchNext1 = "7038.png"; versioncue.png.searchNext2 = "7040.png"; versioncue.png.searchPrevious1 = "7039.png"; versioncue.png.searchPrevious2 = "7041.png"; versioncue.png.promote1 = "7042.png"; versioncue.png.promote2 = "7043.png"; versioncue.png.undelete1 = "7044.png"; versioncue.png.undelete2 = "7045.png"; // No rollover icon yet available // versioncue.debugLog( "Command init complete" ); //---------------------------------------------------------------------------- // Load External library //---------------------------------------------------------------------------- versioncue.pngPath = versioncue.resourcesFolder.fsName + "/Images/"; // versioncue.debugLog( "versioncue.pngPath: " + versioncue.pngPath); // Enable to debug the location where VCAdapterLib is placed versioncue.getLibPath = function() { var path = versioncue.resourcesFolder.fsName + "/Plugins/VCAdapterLib"; return path; } //---------------------------------------------------------------------------- // Shut down VC //---------------------------------------------------------------------------- versioncue.isShutDownCalled = false; function VCShutDown() { versioncue.isShutDownCalled = true; app.eventHandlers.pop( { handler:vcEventHandler } ); app.eventHandlers.pop( { handler:versioncue.VCSelectionsChanged } ); delete vcHandler; delete VCExtensionModel; //Check if welcome screen is open & dont show again is checked. var vcFlashPlayer = VCStartPage.getVCFlashPlayer(); if(vcFlashPlayer != null) { if(vcFlashPlayer.invokePlayerFunction('IsDontShowAgainCallback')) { VCSession.setSettingsValue("Version_Cue_Welcome_Screen","DontShowAgain","1"); } } if( typeof VersionCueSDKLoader != "undefined" && typeof VersionCueSDKLoader == "object" ) { // If SDK is loaded by externalobject remove it or do nothing. VersionCueSDKLoader.unLoadSDK(); } versioncue.lib.terminate(); } //---------------------------------------------------------------------------- // process notifications //---------------------------------------------------------------------------- versioncue.processNotifications = function (vcHandler) { vcHandler.processNotifications(); return true; } //---------------------------------------------------------------------------- // add root version cue node to favorites //---------------------------------------------------------------------------- versioncue.addFavorite = function() { if (!app.favorites.contains(versioncue.uri)) { vcRoot = new Thumbnail(versioncue.uri); app.favorites.section = "standard"; app.favorites.insert(vcRoot); } // add the version cue node to the root of the folders app.addCustomRoot(versioncue.uri); } versioncue.getCurrentThumbnail = function() { currentDocument = app.document; if (currentDocument.selectionLength == 0) return currentDocument.thumbnail; else return currentDocument.selections[ 0 ]; } //---------------------------------------------------------------------------- // context menu enablement //-------------------------------------------------------------------------------- versioncue.canEnable = function(m) { try { var enable = vcModelPrototype.canEnable( m, app.document ); m.enabled = enable; } catch(error) { Window.alert(error); } } //---------------------------------------------------------------------------- // This method will execute a dynamic(custom) menu command //---------------------------------------------------------------------------- versioncue.executeDynamicMenu = function(m) { try { var doc = app.document; var success = vcModelPrototype.executeCustomMenu(m, doc); } catch(error) { Window.alert(error); } } //---------------------------------------------------------------------------- // This method will generate the custom menu //---------------------------------------------------------------------------- versioncue.generateCustomMenu = function(m, menuType) { try { //let us clear custom menu else it will keep on showing. vcModelPrototype.clearCustomMenu(); var array; if( menuType != undefined && menuType == "context" ) { array = vcModelPrototype.generateCustomContextMenu( app.document ); }else { array = vcModelPrototype.generateCustomToolsMenu( app.document ); } for( var i=0; i < array.length; i++ ) { versioncue.menu = array[i]; versioncue.menu.onSelect = versioncue.executeDynamicMenu; } } catch(error) { Window.alert(error); } } //---------------------------------------------------------------------------- // Alerts //---------------------------------------------------------------------------- versioncue.createRenameUI = function() { try { // Dialog resource definition using the ExtendScript auto layout. var dialogDef = "palette { orientation: 'column', alignChildren: 'center', text: 'Adobe Version Cue', \ info: Panel { orientation: 'column', alignChildren: 'center', \ text: 'Renaming Files...', \ alertGroup: Group { orientation: 'row', \ pb: Progressbar { alignment:'fill' , preferredSize: [250, 20]}, \ Cancel: Button { text: 'Cancel', properties:{name:'Cancel'} }, \ }, \ }, \ }"; versioncue.renameUIAlert = new Window(dialogDef); versioncue.renameUIAlert.info.alertGroup.Cancel.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Cancel=Cancel" ); var displayStr = '$$$/Bridge/VCAdapter/Batch_Rename_2=Renaming Files... (1)%'; versioncue.renameUIAlert.info.text = versioncue.getLocalizedString_n(displayStr, 0 ); versioncue.renameUIAlert.info.alertGroup.pb.value = 0; versioncue.renameUIAlert.layout.layout(true); // Function handling a click on the "OK" Button. versioncue.renameUIAlert.info.alertGroup.Cancel.onClick = function() { versioncue.renameUIAlert.close(0); } versioncue.renameUIAlert.center(); versioncue.renameUIAlert.show(); return; } catch(error) { Window.alert(error); } } versioncue.popRenameUI = function(percentageComplete) { try { var displayStr = '$$$/Bridge/VCAdapter/Batch_Rename_2=Renaming Files... (1)%'; versioncue.renameUIAlert.info.text = versioncue.getLocalizedString_n(displayStr, percentageComplete ); versioncue.renameUIAlert.info.alertGroup.pb.value = percentageComplete; versioncue.renameUIAlert.layout.layout(true); versioncue.renameUIAlert.show(); return; } catch(error) { Window.alert(error); } } versioncue.closeRenameUI = function() { try { versioncue.renameUIAlert.close(0); } catch(error) { Window.alert(error); } } versioncue.popScriptUIAlert = function(errorString) { try { // Dialog resource definition using the ExtendScript auto layout. var dialogDef = "dialog { orientation: 'column', alignChildren: 'center', text: 'Adobe Version Cue', \ info: Panel { orientation: 'column', alignChildren: 'center', \ text: 'Error Alert', \ alertGroup: Group { orientation: 'row', margins: 0, \ s: StaticText { text:'' } \ }, \ }, \ buttons: Group { orientation: 'row', \ ok: Button { text: 'OK', properties:{name:'ok'} }, \ } \ }"; /* Create a window with resource definition */ var scriptUIAlert = new Window(dialogDef); scriptUIAlert.info.alertGroup.s.text = errorString; scriptUIAlert.info.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Script_UI_Head=Error Alert" ); scriptUIAlert.buttons.ok.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Script_UI_Ok=OK" ); scriptUIAlert.layout.layout(true); // Function handling a click on the "OK" Button. scriptUIAlert.buttons.ok.onClick = function() { scriptUIAlert.close(0); } scriptUIAlert.center(); scriptUIAlert.show(); } catch(error) { Window.alert(error); } } versioncue.popHandleConflictFourOpsUI = function( fileName, parentName, isFile ) { try { versioncue.isApplyToAll = false; versioncue.buttonNumber = 0; // Dialog resource definition using the ExtendScript auto layout. var dialogDef = "dialog { orientation: 'column', alignChildren: 'center', text: 'Adobe Version Cue', \ info: Panel { orientation: 'column', alignChildren: 'center', \ text: 'Confirm File Replace', \ alertText: Group { orientation: 'row', margins: 0, \ s: StaticText { text:'' } \ }, \ }, \ buttons: Group { orientation: 'row', \ all: Checkbox { text: 'Apply to all?', properties:{name:'all'} }, \ firstOp: Button { text: 'Add as Version', properties:{name:'firstOp'} }, \ secondOp: Button { text: 'Replace', properties:{name:'secondOp'} }, \ thirdOp: Button { text: 'Skip', properties:{name:'thirdOp'} }, \ fourthOp: Button { text: 'Cancel', properties:{name:'fourthOp'} }, \ } \ }"; /* Create a window with resource definition */ var handleConflictUI = new Window(dialogDef); var displayStr = '$$$/Bridge/VCAdapter/Conflict_Copy_Alert=An item with the name "(1)" already exists in "(2)".'; handleConflictUI.info.alertText.s.text = versioncue.getLocalizedString_n(displayStr, fileName, parentName ); //support for localization if( isFile ) { handleConflictUI.info.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Head=Confirm File Action" ); handleConflictUI.buttons.firstOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Version=Add as Version" ); } else { //it is a folder handleConflictUI.info.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Folder_Head=Confirm Folder Action" ); handleConflictUI.buttons.firstOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Resolve=Auto Resolve" ); } handleConflictUI.buttons.all.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Checkbox=Apply to all?" ); handleConflictUI.buttons.secondOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Replace=Replace" ); handleConflictUI.buttons.thirdOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Skip=Skip" ); handleConflictUI.buttons.fourthOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Cancel=Cancel" ); handleConflictUI.layout.layout(true); // Function handling a click on the "OK" Button. handleConflictUI.buttons.secondOp.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; versioncue.buttonNumber = 1; handleConflictUI.close(0); } // Function handling a click on the "OK" Button. handleConflictUI.buttons.thirdOp.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; versioncue.buttonNumber = 2; handleConflictUI.close(0); } // Function handling a click on the "OK" Button. handleConflictUI.buttons.fourthOp.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; versioncue.buttonNumber = 3; handleConflictUI.close(0); } // Function handling a click on the "OK" Button. handleConflictUI.buttons.firstOp.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; if( isFile ) { versioncue.buttonNumber = 5; } else { versioncue.buttonNumber = 6; } handleConflictUI.close(0); } handleConflictUI.center(); handleConflictUI.show(); return; } catch(error) { Window.alert(error); } } versioncue.popHandleConflictThreeOpsUI = function( fileName, parentName, isFile, isMove ) { try { versioncue.isApplyToAll = false; versioncue.buttonNumber = 0; // Dialog resource definition using the ExtendScript auto layout. var dialogDef = "dialog { orientation: 'column', alignChildren: 'center', text: 'Adobe Version Cue', \ info: Panel { orientation: 'column', alignChildren: 'center', \ text: 'Confirm File Replace', \ alertText: Group { orientation: 'row', margins: 0, \ s: StaticText { text:'' } \ }, \ }, \ buttons: Group { orientation: 'row', \ all: Checkbox { text: 'Apply to all?', properties:{name:'all'} }, \ firstOp: Button { text: 'Replace', properties:{name:'firstOp'} }, \ secondOp: Button { text: 'Skip', properties:{name:'secondOp'} }, \ thirdOp: Button { text: 'Cancel', properties:{name:'thirdOp'} }, \ } \ }"; /* Create a window with resource definition */ var handleConflictUI = new Window(dialogDef); var displayStr = '$$$/Bridge/VCAdapter/Conflict_Move_Alert=An item with the name "(1)" already exists in "(2)".'; handleConflictUI.info.alertText.s.text = versioncue.getLocalizedString_n(displayStr, fileName, parentName ); //support for localization if( isFile ) { handleConflictUI.info.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Head=Confirm File Action" ); } else { handleConflictUI.info.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Folder_Head=Confirm Folder Action" ); } handleConflictUI.buttons.all.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Checkbox=Apply to all?" ); if( isMove && isFile ) { handleConflictUI.buttons.firstOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Replace=Replace" ); handleConflictUI.buttons.secondOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Skip=Skip" ); } else if( isFile ) { handleConflictUI.buttons.firstOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Version=Add as Version" ); handleConflictUI.buttons.secondOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Replace=Replace" ); } else { handleConflictUI.buttons.firstOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Copy_Resolve=Auto Resolve" ); handleConflictUI.buttons.secondOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Replace=Replace" ); } handleConflictUI.buttons.thirdOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Cancel=Cancel" ); handleConflictUI.layout.layout(true); // Function handling a click on the "OK" Button. handleConflictUI.buttons.firstOp.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; if( isMove && isFile ) { versioncue.buttonNumber = 1; } else if( isFile ) { versioncue.buttonNumber = 5; } else { versioncue.buttonNumber = 6; } handleConflictUI.close(0); } // Function handling a click on the "OK" Button. handleConflictUI.buttons.secondOp.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; if( isMove && isFile ) { versioncue.buttonNumber = 2; handleConflictUI.close(0); } else if( isMove ) { // a folder versioncue.buttonNumber = 1; handleConflictUI.close(0); } else { versioncue.buttonNumber = 1; handleConflictUI.close(0); } } // Function handling a click on the "OK" Button. handleConflictUI.buttons.thirdOp.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; versioncue.buttonNumber = 3; handleConflictUI.close(0); } handleConflictUI.center(); handleConflictUI.show(); } catch(error) { Window.alert(error); } } versioncue.popHandleConflictTwoOpsUI = function( fileName, parentName, isFile ) { try { versioncue.isApplyToAll = false; versioncue.buttonNumber = 0; // Dialog resource definition using the ExtendScript auto layout. var dialogDef = "dialog { orientation: 'column', alignChildren: 'center', text: 'Adobe Version Cue', \ info: Panel { orientation: 'column', alignChildren: 'center', \ text: 'Confirm File Replace', \ alertText: Group { orientation: 'row', margins: 0, \ s: StaticText { text:'' } \ }, \ }, \ buttons: Group { orientation: 'row', \ firstOp: Button { text: 'Replace', properties:{name:'firstOp'} }, \ secondOp: Button { text: 'Skip', properties:{name:'secondOp'} }, \ } \ }"; /* Create a window with resource definition */ var handleConflictTwoOpsUI = new Window(dialogDef); var displayStr = '$$$/Bridge/VCAdapter/Conflict_Move_Alert=An item with the name "(1)" already exists in "(2)".'; handleConflictTwoOpsUI.info.alertText.s.text = versioncue.getLocalizedString_n(displayStr, fileName, parentName ); //support for localization if( isFile ) { handleConflictTwoOpsUI.info.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Head=Confirm File Action" ); } else { handleConflictTwoOpsUI.info.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Folder_Head=Confirm Folder Action" ); } handleConflictTwoOpsUI.buttons.firstOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Replace=Replace" ); handleConflictTwoOpsUI.buttons.secondOp.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Move_Cancel=Cancel" ); handleConflictTwoOpsUI.layout.layout(true); handleConflictTwoOpsUI.buttons.firstOp.onClick = function() { versioncue.buttonNumber = 1; handleConflictTwoOpsUI.close(0); } // Function handling a click on the "OK" Button. handleConflictTwoOpsUI.buttons.secondOp.onClick = function() { versioncue.buttonNumber = 3; handleConflictTwoOpsUI.close(0); } handleConflictTwoOpsUI.center(); handleConflictTwoOpsUI.show(); } catch(error) { Window.alert(error); } } versioncue.popHandleConflictSyncUI = function( fileName ) { try { versioncue.isApplyToAll = false; versioncue.buttonNumber = 0; // Dialog resource definition using the ExtendScript auto layout. var dialogDef = "dialog { orientation: 'column', alignChildren: 'center', text: 'Adobe Version Cue', \ info: Panel { orientation: 'column', alignChildren: 'center', \ text: 'Confirm File Check In', \ alertText: Group { orientation: 'row', margins: 0, \ s: StaticText { text:'' } \ }, \ }, \ buttons: Group { orientation: 'row', \ all: Checkbox { text: 'Apply to all?', properties:{name:'all'} }, \ checkin: Button { text: 'Check In', properties:{name:'checkin'} }, \ skip: Button { text: 'Skip', properties:{name:'skip'} }, \ cancel: Button { text: 'Cancel', properties:{name:'cancel'} }, \ } \ }"; /* Create a window with resource definition */ var handleConflictUI = new Window(dialogDef); var displayStr = '$$$/Bridge/VCAdapter/Conflict_Sync_Alert=Item "(1)" needs to be checked In before this operation.'; handleConflictUI.info.alertText.s.text = versioncue.getLocalizedString_n(displayStr, fileName); //support for localization handleConflictUI.info.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Sync_Head=Confirm File Check In" ); handleConflictUI.buttons.all.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Sync_Checkbox=Apply to all?" ); handleConflictUI.buttons.checkin.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Sync_CheckIn=Check In" ); handleConflictUI.buttons.skip.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Sync_Skip=Skip" ); handleConflictUI.buttons.cancel.text = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Conflict_Sync_Cancel=Cancel" ); handleConflictUI.layout.layout(true); // Function handling a click on the "OK" Button. handleConflictUI.buttons.checkin.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; versioncue.buttonNumber = 4; handleConflictUI.close(0); } // Function handling a click on the "OK" Button. handleConflictUI.buttons.skip.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; versioncue.buttonNumber = 2; handleConflictUI.close(0); } // Function handling a click on the "OK" Button. handleConflictUI.buttons.cancel.onClick = function() { versioncue.isApplyToAll = handleConflictUI.buttons.all.value; versioncue.buttonNumber = 3; handleConflictUI.close(0); } handleConflictUI.center(); handleConflictUI.show(); } catch(error) { Window.alert(error); } } // versioncue.debugLog( "Conflict setup complete" ); //---------------------------------------------------------------------------- // Pivot Panels //---------------------------------------------------------------------------- versioncue.viewSpecialNode = function(aThumb, nodeType) { try { newThumb = vcModelPrototype.getSpecialNode(aThumb, nodeType); app.document.thumbnail = newThumb; } catch(error) { Window.alert(error); } } versioncue.viewTrash = function(aThumb) { try { versioncue.viewSpecialNode(aThumb, 'trash'); } catch(error) { Window.alert(error); } } versioncue.viewVersions = function(aThumb) { try { versioncue.viewSpecialNode(aThumb, 'versions'); } catch(error) { Window.alert(error); } } // some key value pairs we can throw into various panelettes versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_Filename=Filename"); var infoNamePai = [versioncue.displayName + ": ", "[[core.immediate.name]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_Modified=Modified"); var infoDatePair = [versioncue.displayName + ": ", "[[VersionCue.common.modDateText]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_IsOnline=Is Online"); var infoIsOnlinePair = [versioncue.displayName + ": ", "[[VersionCue.common.isServerOnline]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_Version=Version"); var infoVersionPair = [versioncue.displayName + ": ", "[[VersionCue.common.version]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_Location=Location"); var infoLocationPair = [versioncue.displayName + ": ", "[[VersionCue.common.location]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_SizeText=Disk Size"); var infoDiskUsagePair = [versioncue.displayName + ": ", "[[VersionCue.common.sizeText]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_IsShared=Is Shared"); var infoIsSharedPair = [versioncue.displayName + ": ", "[[VersionCue.common.isShared]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_Comment=Comment"); var infoCommentPair = [versioncue.displayName + ": ", "[[VersionCue.common.comment]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_Status=Status"); var infoStatusPair = [versioncue.displayName + ": ", "[[VersionCue.common.statusText]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_SavedBy=Saved By"); var infoSavedByPair = [versioncue.displayName + ": ", "[[VersionCue.common.versionSavedByName]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_OnServer=On Server"); var infoServerNamePair = [versioncue.displayName + ": ", "[[VersionCue.common.serverName]]"]; versioncue.displayName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Displayname_InProject=In Project"); var infoProjectNamePair = [versioncue.displayName + ": ", "[[VersionCue.common.projectName]]"]; /////////////////////////////////////////////////////////////////////////////// // Server pivot panel versioncue.createServerPivotPanel = function() { var isVisible = false; var isWide = false; var sortPos = 1; // The PivotPanel and all the Panelette Constructors first two arguments are Strings // The first string provides an "identifier" for the panel. This is the string which // will appear in the Preverences panel where users can turn Pivot panels on or off. // The second string is what appears in the title bar of the window and can contain // infoset and JavaScript markup; the markup allows the title shown to change // when the users selecton changes. var panelName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Panelette_Server_Name=Version Cue Server Panel"); var vcWorkspacePanel = new PivotPanel(panelName, "[[core.immediate.name]]", isVisible, isWide, sortPos ); // The panel has three panelettes // panelette shows information // about the server selected var serverInfoPairs = [infoIsOnlinePair,infoVersionPair,infoLocationPair]; versioncue.paneletteTitle = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteTitle_ServerInfo=Server Info"); var vcServerInfoPanelette = new TextPanelette("Server Info", versioncue.paneletteTitle, "[[this]]", serverInfoPairs ); vcWorkspacePanel.registerPanelette(vcServerInfoPanelette); // panelette shows the projects on the server. // This information comes from the children infoset // of the node representing the server. var projectsRef = "[[core.children.children]]"; // the projects are children of the server // You have to pass an array of string arrays with a length of 2 // to the IconListPanelette to make info appear in columns, but the first // string in each pair has no effect on what shows up on screen. var pairA = ["Hello World","[[core.immediate.name]]"]; var columnText = [pairA]; // or... ,pairB,pairC]; if you want to show more info. versioncue.paneletteTitle = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteTitle_ProjectsOn=Projects On"); versioncue.paneletteTitle += " [[core.immediate.name]]"; var vcProjectsListPanelette = new IconListPanelette( "Projects Panelette", versioncue.paneletteTitle, projectsRef, columnText ); vcWorkspacePanel.registerPanelette( vcProjectsListPanelette ); // panelette shows tasks. Tasks are implemented as 'hotlinks' // that execute some JavaScript when the user clicks on them. versioncue.paneletteCommand = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteCommand_CreateNewProject=Create New Project"); versioncue.paneletteCreateNewProjectPair = ["", "[[" + versioncue.paneletteCommand + "][javascript://versioncue.createProject();]]"]; versioncue.paneletteCommand = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteCommand_EditProperties=Edit Properties"); versioncue.paneletteEditPropertiesPair = ["", "[[" + versioncue.paneletteCommand + "][javascript://versioncue.editProperties();]]"]; versioncue.paneletteCommand = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteCommand_Disconnect=Disconnect from this Server"); versioncue.paneletteDisconnectPair = ["", "[[" + versioncue.paneletteCommand + "][javascript://versioncue.disconnect();]]"]; var tasksKeyValuePairs = [ versioncue.paneletteCreateNewProjectPair, versioncue.paneletteEditPropertiesPair, versioncue.paneletteDisconnectPair ]; versioncue.paneletteTitle = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteTitle_ServerTasks=Server Tasks"); var vcWorkspaceTasksPanelette = new TextPanelette("Version Cue Server Tasks", versioncue.paneletteTitle, "[[this]]", tasksKeyValuePairs); vcWorkspacePanel.registerPanelette( vcWorkspaceTasksPanelette ); // A callback function to control whether or not the panel is shown. vcWorkspacePanel.hidePanelForThumbnail = function( aThumbnail ) { if( aThumbnail.VersionCue != undefined && aThumbnail.VersionCue.common.isServer ) { return false; } return true; }; // Add the PivotPanel to the app app.registerPivotPanel( vcWorkspacePanel ); } // end Workspace Panel stuff /////////////////////////////////////////////////////////////////////////////// // Project Panel versioncue.createProjectPivotPanel = function() { var isVisible = false; var isWide = false; var sortPos = 2; var panelName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Panelette_Project_Name=Version Cue Project Panel"); var vcProjectPanel = new PivotPanel(panelName, "[[core.immediate.name]]", isVisible, isWide, sortPos ); var infoKeyValuePairs = [infoCommentPair, infoStatusPair, infoIsSharedPair, infoServerNamePair, infoLocationPair ]; versioncue.paneletteTitle = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteTitle_ProjectInfo=Project Info"); var projectInfoPanelette = new TextPanelette("Version Cue Project Info", versioncue.paneletteTitle, "[[this]]", infoKeyValuePairs ); vcProjectPanel.registerPanelette( projectInfoPanelette ); // The second panelette shows tasks // specifically hotlinks that run some ExtendScript versioncue.paneletteCommand = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteCommand_SynchronizeProject=Synchronize Project Files"); versioncue.paneletteSynchronizePair = ["", "[[" + versioncue.paneletteCommand + "][javascript://versioncue.synchronize();]]"]; versioncue.paneletteCommand = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteCommand_AddFiles=Add Files"); versioncue.paneletteAddFilesPair = ["", "[[" + versioncue.paneletteCommand + "][javascript://versioncue.ingest();]]"]; versioncue.paneletteCommand = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteCommand_EditProperties=Edit Properties"); versioncue.paneletteEditPropertiesPair = ["", "[[" + versioncue.paneletteCommand + "][javascript://versioncue.editProperties();]]"]; versioncue.paneletteCommand = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteCommand_ViewTrash=View Project Trash"); versioncue.paneletteViewTrashPair = ["", "[[" + versioncue.paneletteCommand + "][javascript://versioncue.viewTrash(pivotThumbnail);]]"]; versioncue.paneletteCommand = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteCommand_RemoveProject=Disconnect from this Project"); versioncue.paneletteRemoveProjectPair = ["", "[[" + versioncue.paneletteCommand + "][javascript://versioncue.disconnect();]]"]; var tasksKeyValuePairs = [ versioncue.paneletteSynchronizePair, versioncue.paneletteAddFilesPair, versioncue.paneletteEditPropertiesPair, versioncue.paneletteViewTrashPair, versioncue.paneletteRemoveProjectPair ]; versioncue.paneletteTitle = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteTitle_ProjectTasks=Project Tasks"); var vcProjectTasksPanelette = new TextPanelette("Version Cue Project Tasks", versioncue.paneletteTitle, "[[this]]", tasksKeyValuePairs); vcProjectPanel.registerPanelette( vcProjectTasksPanelette ); // A callback function to control whether or not the panel is shown. vcProjectPanel.hidePanelForThumbnail = function( aThumbnail ) { if( aThumbnail.VersionCue != undefined && aThumbnail.VersionCue.common.isProject ) { return false; } return true; }; // Add the PivotPanel to the app app.registerPivotPanel( vcProjectPanel ); } // end Project Panel stuff /////////////////////////////////////////////////////////////////////////////// // Asset Panel versioncue.createAssetPivotPanel = function() { var isVisible = false; var isWide = false; var sortPos = 3; var panelName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Panelette_Asset_Name=Version Cue Asset Panel"); var vcAssetPanel = new PivotPanel(panelName, "[[core.immediate.name]]", isVisible, isWide, sortPos ); // Panelette to show asset details var infoKeyValuePairs = [infoStatusPair, infoVersionPair, infoSavedByPair, infoDiskUsagePair, infoDatePair, infoProjectNamePair, infoServerNamePair, infoCommentPair]; versioncue.paneletteTitle = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteTitle_AssetInfo=Asset Info"); var vcAssetDetails = new TextPanelette("Version Cue Asset Details", versioncue.paneletteTitle, "[[this]]", infoKeyValuePairs ); vcAssetPanel.registerPanelette( vcAssetDetails ); // A callback function to control whether or not the panel is shown. vcAssetPanel.hidePanelForThumbnail = function( aThumbnail ) { if( aThumbnail.VersionCue != undefined && aThumbnail.VersionCue.common.isAsset ) { return false; } return true; }; // Add the PivotPanel to the app app.registerPivotPanel( vcAssetPanel ); } // end Asset Details Panel stuff /////////////////////////////////////////////////////////////////////////////// // Versions Panel versioncue.createVersionsPivotPanel = function() { var isVisible = false; var isWide = false; var sortPos = 4; var panelName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Panelette_Versions_Name=Version Cue Versions Panel"); var vcVersionsPanel = new PivotPanel(panelName, "[[core.immediate.name]]", isVisible, isWide, sortPos ); var infosetRef = "[[VersionCue.versions.versionsContainer]]"; var infoKeyValuePairs = [infoVersionPair, infoDatePair, infoSavedByPair, infoCommentPair]; versioncue.paneletteTitle = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteTitle_Versions=Versions"); var vcVersionsPanelette = new ThumbnailPanelette( "Version Cue Versions Thumbnails", versioncue.paneletteTitle, infosetRef, infoKeyValuePairs, "right" ); vcVersionsPanel.registerPanelette( vcVersionsPanelette ); // A callback function to control whether or not the panel is shown. vcVersionsPanel.hidePanelForThumbnail = function( aThumbnail ) { if( aThumbnail.VersionCue != undefined && aThumbnail.VersionCue.common.isFile ) { return false; } return true; }; // Add the PivotPanel to the app app.registerPivotPanel( vcVersionsPanel ); } // end Versions Details Panel stuff /////////////////////////////////////////////////////////////////////////////// // Custom Metadata Panel versioncue.createCustomMetadaPivotPanel = function() { var isVisible = false; var isWide = false; var sortPos = 5; var panelName = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/Panelette_Custom_Metadata_Name=Version Cue Custom Metadata Panel"); var vcCustomMetadaPanel = new PivotPanel(panelName, "[[core.immediate.name]]", isVisible, isWide, sortPos ); // Panelette to show custom metadata var metaKeyValuePairs = [ ["[[VersionCue.customMetadataPivot.name1]]", "[[VersionCue.customMetadataPivot.value1]]"], ["[[VersionCue.customMetadataPivot.name2]]", "[[VersionCue.customMetadataPivot.value2]]"], ["[[VersionCue.customMetadataPivot.name3]]", "[[VersionCue.customMetadataPivot.value3]]"], ["[[VersionCue.customMetadataPivot.name4]]", "[[VersionCue.customMetadataPivot.value4]]"], ]; versioncue.paneletteTitle = versioncue.getLocalizedString( "$$$/Bridge/VCAdapter/PaneletteTitle_CustomProperties=Custom Properties"); var qeAssetCustomMetadata = new TextPanelette("DAM Properties", versioncue.paneletteTitle, "[[this]]", metaKeyValuePairs ); vcCustomMetadaPanel.registerPanelette( qeAssetCustomMetadata ); // A callback function to control whether or not the panel is shown. vcCustomMetadaPanel.hidePanelForThumbnail = function( aThumbnail ) { if( aThumbnail.VersionCue != undefined && aThumbnail.VersionCue.common.isFile ) { return false; } return true; }; // Add the PivotPanel to the app app.registerPivotPanel( vcCustomMetadaPanel ); //let us off it by default in preferences vcCustomMetadaPanel.displayInInspector = false; vcModelPrototype.registerCustomMetadataPivotPanel( vcCustomMetadaPanel ); } // end Asset Details Panel stuff // Locations which script DOM cannot access (STUB for now) versioncue.locationAllowed = function ( name ) { var names = [ "My Computer", "Computer", "Bridge Center", "Version Cue", "Collections", "Adobe Stock Photos" ]; for( var i=0; i