tags:

views:

201

answers:

1

I'm trying to fix a .hta that someone at my company created 3 or 4 years ago. Right now if you open a file that someone else already has open, you'll lose any work you've done on it and will have to manually do it over again. So I was thinking just checking to see if the file is already open and then either locking editing, or just making a popup saying "hey, if you try to save you're gonna be disappointed". Is there an easy way to check to see if the file is already open in javascript?

The code to open the file is...

function FileOpen( strSetup )
{
    if( ! strSetup )
    {
     strSetup = ShowDialog( "choose-setup", {"DialogTitle" : "Load Setup"} );
    }

    if( strSetup )
    {
     if( FileSystem.FileExists( App.Paths.Configs + "/" + strSetup + ".setup" ) )
     {
      var fFile = FileSystem.GetFile( App.Paths.Configs + "/" + strSetup + ".setup" );
      App.Config = LoadXMLDocument( fFile.Path );
      // SaveCurrentConfig();
      RefreshView( "setup-summary" );
     }
     else
     {
      alert( "Could not find setup '" + strSetup + "'" );
     }

    }
}

and the code for LoadXMLDocument is...

//-----------------------------------------------------------------------------
// FUNCTION : LoadXMLDocument - Loads an XML document
// params   : strPath - the path/file of the document to load
//          : bCritical- if set true, we die if the document doesn't load
// returns  : an XML dom object on success, false otherwise
//-----------------------------------------------------------------------------

function LoadXMLDocument( strPath, bCritical )
{
    var xmlDoc = new ActiveXObject( "Msxml2.DOMDocument.3.0" );
    xmlDoc.setProperty( "SelectionLanguage", "XPath" );
    if( ! FileSystem.FileExists( strPath ) )
    {
     Error( "'" + strPath + "' is not a valid file path" );
     if( bCritical ) Abort();
     return( false );
    }
    var fFile = FileSystem.GetFile( strPath );
    xmlDoc.load( fFile.Path );
    if( xmlDoc.documentElement == null )
    {
     Error( "Could not load XML document '" + fFile.Path + "'" );
     if( bCritical ) Abort();
     return( false );
    }
    return( xmlDoc );
}
+1  A: 

That's what revision control is all about. It's no different than other forms of the same issue that does not involve. hta files.

Diodeus