Skip to main content
Participating Frequently
September 29, 2014
Question

Application Level - userInteractionLevel

  • September 29, 2014
  • 2 replies
  • 2157 views

Hi, currently I'm working with a few remote merge servers that are running CS5, they always get caught up on "missing font" dialogs, and we could care less... It's our prepress department that works on maintaining a clean font set. The servers are only combining documents and / or running data inserts.


I'm looking for a simple way to suppress the warning dialogs on these machines running ID.

app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;

seems to only set the (never) interact while that specific script is running... and cannot toggle between a more permanent change so the whole time InDesign is active to switch between  NEVER_INTERACT and INTERACT_WITH_ALL.

Has someone come across a plugin or a functional script that can accomplish this?

It could be fixed w/ font management on the server, or changing the script that does the merge, yet there is a long wait to get help from that department... and I was just looking for a quick fix...

Thank you very much for any insights!

This topic has been closed for replies.

2 replies

TᴀW
Legend
September 29, 2014

In any case, the app.scriptPreferences.userInteractionLevel is a

scriptEngine-based preference.

That is, each script engine has its own setting for this preference.

Because apart from that, the pref certainly does not change when the

script ends. In fact, setting it back to its previous value is something

that every script that changes it has to be careful to do.

id-extras.com | InDesign tools & scripts for typesetters, form designers, and translators
BrettAAuthor
Participating Frequently
September 30, 2014

Thanks for the reply Airel,

"what is the problem in setting that pref each time the script runs?"

It's our company access... remote servers build our documents and we VNC monitor about 10 different ones (which often during the day hang on warning dialogs). Getting access to the scripting and backend of the workflow, would be jumping through hoops and would likely not happen... per co-workers and my past experiences. Since we can VNC into them... I was wanting to stuff an "on application start" script, plugin, or some unkown option to me, etc... that suppress "ALL" warning dialogs permanently for InDesign. It would be (100%) totally fine if it ignored missing fonts and un-linked images, since our pre-press department has the fonts and directories to images properly setup. For example having to micro-manage these server with fonts to appease the "missing font" situation is troublesome, we are without font clients for our "Suitcase Server" on these machines and the auto-activation time "per" document would likely be another issue. Another single example would be the various versions of "Arial" floating around, some of our templates have one version, but even comparing deep level "properties" on the Arial font it somehow prefers a duplicate version that we have elsewhere. So it's troubleshooting every little issue and then having to mirror all the servers. A simple turn "off" warnings would be cake.

Although the simple script of "app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;" does not stick (non-permanent)

The following script works so, I've proved to myself that the "UserInteractionLevels.neverInteract" is only active during the script's runtime.

//DESCRIPTION: Open Doc with No Warnings

if (app.version == 5.5) {

  app.userInteractionLevel = UserInteractionLevels.neverInteract;

} else {

  app.scriptPreferences.userInteractionLevel = UserInteractionLevels.neverInteract;

}

var myFile = File.openDialog("Choose InDesign document to open");

var myErr = "";

if (myFile != null) {

  try {

    app.open(myFile);

  } catch (e) {

    myErr = e;

  }

}

if (app.version == 5.5) {

  app.userInteractionLevel = UserInteractionLevels.interactWithAll;

} else {

  app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

}

if (myErr != "") {

  alert(myErr);

}

TᴀW
Legend
September 29, 2014

I don't follow: If it is so that the Never Interact is only for the

duration of the script, what is the problem in setting that pref each

time the script runs?

id-extras.com | InDesign tools & scripts for typesetters, form designers, and translators