Startup script that make layer visible depending on docs filename

Learn / Forums / General InDesign Topics / Startup script that make layer visible depending on docs filename

Viewing 1 reply thread
  • Author
    Posts
    • #68922
      Jonas Ericsson
      Participant

      Hi,
      First: I’m a newbie when it comes to scripting.
      The Guru himself, Peter Kahrel helped me to write another script that has the name.search in it and I reused some of it here.

      I have started to wrote a startup script that set “visible = true” on a specific layer if the document starts with a specific filename. If the first layer doesn’t exist, try “xxx” in the first name.search.
      And if the first “name.search” does’nt match I want the script to test the next “name.search”, and the next…

      The problem I have is that only the first name.search “kicks” in.

      How to make the script check the other name.search-lines?

      #targetengine “session”

      main();
      function main(){
      var myEventListener = app.eventListeners.add(“afterOpen”, excuteScript);
      }

      function excuteScript(){
      var myD = app.documents[0];

      // if filename starts with ABA (and perhaps 1 more letter) and contains 8 numbers, 3 letters, 2 (or 3) numbers plus.indd
      if (myD.name.search(/^\ABA\w?-\d{8}(-\w\w\w)?-\d{2}\d?\.indd/i) == -1) return
      try{
      var mittLager = myD.layers.item(“AB_serier”);
      mittLager.visible = true;
      }
      catch (myError){
      var mittLager = myD.layers.item(“AB_kryss”);
      mittLager.visible = true;
      }

      // if filename starts with OOA (and perhaps 1 more letter) and contains 8 numbers, 3 letters, 2 (or 3) numbers plus.indd
      if (myD.name.search(/^\OOA\w?-\d{8}(-\w\w\w)?-\d{2}\d?\.indd/i) == -1) return
      try{
      var mittLager = myD.layers.item(“AM_OA_serier”);
      mittLager.visible = true;
      }
      catch (myError){
      var mittLager = myD.layers.item(“AM_OA_kryss”);
      mittLager.visible = true;
      }

      // if filename starts with OBA (and perhaps 1 more letter) and contains 8 numbers, 3 letters, 2 (or 3) numbers plus.indd
      if (myD.name.search(/^\OBA\w?-\d{8}(-\w\w\w)?-\d{2}\d?\.indd/i) == -1) return
      try{
      var mittLager = myD.layers.item(“AM_OB_serier”);
      mittLager.visible = true;
      }
      catch (myError){
      var mittLager = myD.layers.item(“AM_OB_kryss”);
      mittLager.visible = true;
      }

      }

    • #68923
      Jonas Ericsson
      Participant

      Forgott to change from swedish “mittLager” to “myLayer. Sorry

Viewing 1 reply thread
  • You must be logged in to reply to this topic.
>