Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 5 of 5
  1. #1
    New to the CF scene
    Join Date
    Dec 2012
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Easy programming problem

    Okay, so I'vebeen having a problem with a string of code that I use to place the time and date into photoshop and illustrator.

    It's a pretty simple fix, i'm sure, but I cant figure it out. I have many many files that have a time, date, and designer initials stamp on them. I use this bit of Javascript as a fast way of updating the files.

    Here's the problem:

    On a new string of text, where I just use the JS on a brand new text box, it works fine. It's got the initials I have embedded into the script, in this case, 'EM'.

    The problem is when I am using an existing timestamp that I am saving over. If it says "10/08/2010 9:44PM, XX", and I put my script on it to change it to my initials and the current date/time, it wont change the initials. It will update the time and date correctly and replace them, but the initials on the end will not change to 'EM', instead they will stay the way they are, using the initials that were there previously.

    This might seem like a stupid thing to use code for, because its pretty easy to just edit the text box, but unfortunately there are so many different designers and so many files, that it actually is faster and guarantees less error to have the script fix it correctly when its done.

    ANY IDEAS? Thanks in advance!



    [CODE]
    var format_preset = "({DATE}, {TIME})EM";


    var MSG_unsetmark = WR+"This object is marked as actual date'n'time, do you want to remove the mark?";
    var MSG_setmark = WR+"Do you want to mark the selected textobject as actual date'n'time?";
    var MSG_askformat = WR+"Do you want to mark the textobject as actual date'n'time? Formats:\n{DATE}, {TIME}, {FILE}, {FILEPATH} und {FILENAME}:"
    var MSG_editformat = WR+" Edit date'n'time (empty = remove). Formats:\n{DATE}, {TIME}, {FILE}, {FILEPATH} und {FILENAME}:"
    var MSG_notexto = WR+"No textobject!";
    var MSG_selectedmany = "To mark as actual date'n'time, you have to select only one textobject. If you want to update the date'n'time-objects, there must be no object selected.";
    var MSG_nodocs = WR+"You have no open document."
    var Timeformat = 12;
    var TimeSep = ":";
    var AM = " am";
    var PM = " pm";
    var Dateformat = "mm/dd/yyyy";
    var Initials= "EM";
    }

    var error=0;

    if (documents.length<1) {
    error++;
    alert(MSG_nodocs)
    }

    if (error < 1) {
    date_n_time();
    }

    function TodayDate()
    {
    var Today = new Date();
    var Day = Today.getDate();
    var Month = Today.getMonth() + 1;
    var Year = Today.getYear();
    var PreMon = ((Month < 10) ? "0" : "");
    var PreDay = ((Day < 10) ? "0" : "");
    if(Year < 999) Year += 1900;

    var theDate = Dateformat.replace(/dd/,PreDay+Day);
    theDate = theDate.replace(/mm/,PreMon+Month);
    theDate = theDate.replace(/d/,Day);
    theDate = theDate.replace(/m/,Month);
    theDate = theDate.replace(/yyyy/,Year);
    theDate = theDate.replace(/yy/,Year.toString().substr(2,2));

    return theDate;
    }
    ///////////

    //////////////

    function TodayTime()
    {
    var Today = new Date();
    var Hours = Today.getHours();
    var Minutes = Today.getMinutes();
    var Suffix = "EM";
    if (Timeformat == 12) {
    if (Hours >= 12 ) {
    Suffix = PM;
    } else {
    Suffix = AM;
    }
    if (Hours >= 13) {
    Hours = Hours - 12;
    }
    if (Hours < 1) {
    Hours = Hours + 12;
    }
    }
    var PreHour = ((Hours < 10) ? "0" : "");
    var PreMin = ((Minutes < 10) ? "0" : "");
    return PreHour+Hours+TimeSep+PreMin+Minutes+Suffix;
    }

    function DateUpdate(Name) {
    var docpath = activeDocument.path.fsName;
    var docname = activeDocument.name;
    if (docpath.slice(2,3) == "//") {
    docsep = "//";
    } else {
    docsep = "";
    }
    var content = Name.slice(11);
    var content = content.replace(/\{FILE\}/,docpath+docsep+docname);
    var content = content.replace(/\{FILEPATH\}/,docpath);
    var content = content.replace(/\{FILENAME\}/,docname);
    var content = content.replace(/\{DATE\}/,TodayDate());
    var content = content.replace(/\{TIME\}/,TodayTime());
    return content;
    }

    function date_n_time()
    {
    if (selection.length == 1) {
    if (selection[0].typename == "TextArtItem" || selection[0].typename == "TextFrame") {
    if (selection[0].name.slice(0,11) == "actualDate:") {
    dateformat = selection[0].name.slice(11);
    Check = false;
    if (AIversion == "10") {
    Check = confirm( MSG_unsetmark );
    } else {
    dateformat = prompt(MSG_editformat, dateformat);
    }
    if(dateformat != "" && Check) {
    selection[0].contents = selection[0].name.slice(11);
    selection[0].name="EM";
    selection[0].selected = false;
    }
    if(dateformat == "" && !Check) {
    selection[0].name="EM";
    selection[0].selected = false;
    }
    if(dateformat && dateformat !="" && !Check) {
    selection[0].name="actualDate:"+dateformat;
    selection[0].contents = DateUpdate(selection[0].name);
    }
    } else {
    dateformat = selection[0].contents;
    if(dateformat.search(/\{DATE\}/) == -1 && dateformat.search(/\{TIME\}/) == -1 && dateformat.search(/\{FILE[A-Z]*\}/) == -1) dateformat = format_preset;
    Check = false;
    if (AIversion == "10") {
    Check = confirm( MSG_setmark );
    } else {
    dateformat = prompt(MSG_askformat, dateformat);
    }
    if (dateformat || Check) {
    selection[0].name="actualDate:"+dateformat;
    selection[0].contents = DateUpdate(selection[0].name);
    selection[0].selected = false;
    }
    }
    } else {
    alert ( MSG_notexto );
    }
    } else if (selection.length > 1) {
    alert ( MSG_selectedmany );
    } else {
    if (AIversion == "10") {
    var textArtItems = activeDocument.textArtItems;
    for (var i = 0 ; i < textArtItems.length; i++)
    {
    if (textArtItems[i].name.slice(0,11) == "actualDate:") {
    textArtItems[i].selected = true;
    textArtItems[i].contents = DateUpdate(textArtItems[i].name);
    }
    }
    } else {
    var textFrames = activeDocument.textFrames;
    for (var i = 0 ; i < textFrames.length; i++)
    {
    if (textFrames[i].name.slice(0,11) == "actualDate:") {
    textFrames[i].selected = true;
    textFrames[i].contents = DateUpdate(textFrames[i].name);
    }
    }
    }
    }
    }
    [CODE]

  • #2
    New to the CF scene
    Join Date
    Dec 2012
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts
    really? nothing? bueller?

  • #3
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,996
    Thanks
    79
    Thanked 4,433 Times in 4,398 Posts
    I dunno about anybody else, but I have no idea what you are talking about.

    You talk about replacing "10/08/2010 9:44PM, XX" with (I *PRESUME*?) "12/07/2012 3:33PM, EM".

    But I see no place where you even attempt to do that.

    The closest I see is here:
    Code:
    return PreHour+Hours+TimeSep+PreMin+Minutes+Suffix;
    But that produces something like "07:23EM" (no comma, to be specific).

    How are we supposed to figure out WHICH PART of all that code you are actually *USING* when you do the date/time update???

    Also, I dunno about anybody else here, but I have never used JavaScript with PhotoShop or Illustrator.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • #4
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,996
    Thanks
    79
    Thanked 4,433 Times in 4,398 Posts
    And I see this chunk of code:
    Code:
        ...
        var Dateformat = "mm/dd/yyyy";
        var Initials= "EM";
    }
    but (a) it's not valid code, because it ends with } but you don't show the matching {
    and (b) you never use the variable Initials any place else in the code.

    Why create the variable if you don't use it?
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • #5
    Senior Coder
    Join Date
    Apr 2011
    Location
    London, England
    Posts
    2,120
    Thanks
    15
    Thanked 354 Times in 353 Posts
    I would prefer that the code is in CODE tags and properly indented - I struggle to read it otherwise. (You need to close it with [/ CODE] (without the space).) And try and indicate where the problem is, rather than just supplying a mass of code.
    "I'm here to save your life. But if I'm going to do that, I'll need total uninanonynymity." Me Myself & Irene.
    Validate your HTML and CSS


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •