Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


Kelsenellenelvian

Languages, Themes, Manuals & Mods

Recommended Posts

function PauseInstaller(){	if (!UserPaused)	{		UserPaused=true;		WriteRegKey("HKEY_CURRENT_USER\\Software\\WPI\\UserPaused",1,"REG_DWORD");		document.getElementById("Pause").innerHTML=getText(btnResume);		document.getElementById("AbortButton").disabled=true;		return;	}	else	{		UserPaused=false;		WriteRegKey("HKEY_CURRENT_USER\\Software\\WPI\\UserPaused",0,"REG_DWORD");		document.getElementById("Pause").innerHTML=getText(btnPause);		document.getElementById("AbortButton").disabled=false;	}}

Regards

I don't think you need that "return", do you? If you don't need one in the "else" you shouldn't need it in the "if" either, unless there is something else in the function that you are not showing.

Cheers and Regards

Works like this!

Gives error if we add return in the "else" using the button "Abort" (dhtmlxwindows.js error). And if there is no return in the "if" the button "Pause" doesn't work!

Regards

Share this post


Link to post
Share on other sites

OK Weird logic, but by all means stay with what works.

It does seem especially weird to me that any change in "PauseInstaller()" can cause a "dhtmlxwindows.js" error, since "PauseInstaller()" is not mentioned in "dhtmlxwindows.js".

Out of curiosity, could you please try this, both with and without the "return;" and see if it works?

function PauseInstaller(){	if (UserPaused)	{		WriteRegKey("HKEY_CURRENT_USER\\Software\\WPI\\UserPaused",0,"REG_DWORD");		document.getElementById("Pause").innerHTML=getText(btnPause);	}	else	{		WriteRegKey("HKEY_CURRENT_USER\\Software\\WPI\\UserPaused",1,"REG_DWORD");		document.getElementById("Pause").innerHTML=getText(btnResume);	}	UserPaused=!UserPaused;	document.getElementById("AbortButton").disabled=UserPaused; 	return;}

You know how I am about always wanting the code to be as minimal and logical as possible. :) I think it makes it easier to debug.

And, I hate to be a noob about hta javascript, but in Installer.hta, why are there so many '<script type="text/javascript"> ... </script>' blocks? Why isn't all the javascript code collected all in one place and surrounded by a single set of '<script type="text/javascript"> ... </script>' ? Is there some kind of advantage of doing it the way it was done that I'm not aware of?

Cheers and Regards

Share this post


Link to post
Share on other sites

OK Weird logic, but by all means stay with what works.

It does seem especially weird to me that any change in "PauseInstaller()" can cause a "dhtmlxwindows.js" error, since "PauseInstaller()" is not mentioned in "dhtmlxwindows.js".

Out of curiosity, could you please try this, both with and without the "return;" and see if it works?

function PauseInstaller(){	if (UserPaused)	{		WriteRegKey("HKEY_CURRENT_USER\\Software\\WPI\\UserPaused",0,"REG_DWORD");		document.getElementById("Pause").innerHTML=getText(btnPause);	}	else	{		WriteRegKey("HKEY_CURRENT_USER\\Software\\WPI\\UserPaused",1,"REG_DWORD");		document.getElementById("Pause").innerHTML=getText(btnResume);	}	UserPaused=!UserPaused;	document.getElementById("AbortButton").disabled=UserPaused; 	return;}

You know how I am about always wanting the code to be as minimal and logical as possible. :) I think it makes it easier to debug.

And, I hate to be a noob about hta javascript, but in Installer.hta, why are there so many '<script type="text/javascript"> ... </script>' blocks? Why isn't all the javascript code collected all in one place and surrounded by a single set of '<script type="text/javascript"> ... </script>' ? Is there some kind of advantage of doing it the way it was done that I'm not aware of?

Cheers and Regards

Thanks bphlpt

Works but need more time to install programs!

Regards

Edited by myselfidem

Share this post


Link to post
Share on other sites

Works ...

Did you try both with and without the "return;"?

And what did you mean by:

... but need more time to install programs!

Sorry to be a pest.

Cheers and Regards

Share this post


Link to post
Share on other sites

Changes needed to have an old ConfigFile updated for WPI 8.7.2:

Inside WPI.hta

Change from line 475:

var ver;	ver=GetConfigVersion();	while (ver>-1)	{		if (ver<720)		{			if (confirm(configFile+"\n\n"+getText(txtUpdateConfig)))			{				UpdateWizard1();				RefreshWPI();			}			else			{				alert("You should remove config.js from the WPIScripts folder\nbefore continuing.  Then run WPI again.");				self.close();			}			break;		}		else if (ver<770)		{			NeedUpdateWizard=2;			break;		}		else if (ver<800)		{			break;		}		else if (ver<870)		{		if (confirm(configFile+"\n\n"+getText(txtUpdateConfig3)))			{				UpdateWizard1();				RefreshWPI();			}			break;			}		else			break;	}	document.write('<script type="text/javascript" src="'+configFile+'" application="yes"></' + 'script>');

Inside updatewizard.js

Change the line 47 to:

tf.WriteLine("// WPI Config 8.0.0+");

Add on line 452:

case "bit64" :configList[pn - 2].bit64 = val;break;

Change on line 603:

tf.WriteLine("// WPI Config 8.7.0+");

Inside configwizard.js, from line 2805, add:

        else if (val>800 && val<870)	{	if (Alert("",getText(txtUpdateConfig3),getText(lblOK)+"|"+getText(lblCancel),"",5,0,0,0))	{	UpdateWizard1();	RefreshWPI();	}

From line 2918, add:

        case "bit64":	configList[pn-2].bit64=val;	break;

Change line 3105, to:

tf.WriteLine("// WPI Config 8.7.0");

Inside lang_en.js, add:

txtUpdateConfig3[lang]	= ['This is an old config file (before v8.7.0).\n\nWould like it to be updated?\n\nMake a backup copy first.'];

Inside globals_lang.js, add:

txtUpdateConfig3 = [],

Now works fine (and old bit64[pn]=['no']; or bit64[pn]=['yes']; are removed).

The old ConfigFile will be saved as config-orig.js inside the folder UserFiles.

Regards

*Edit: post updated

Edited by myselfidem

Share this post


Link to post
Share on other sites

Me again. :) LOL

AFAIK, this:

	var ver=GetConfigVersion();	if (ver<0) {/* Do Nothing */;}	else if (ver<720)	{		if (confirm(configFile+"\n\n"+getText(txtUpdateConfig)))		{			UpdateWizard1();			RefreshWPI();		}		else		{			alert("You should remove config.js from the WPIScripts folder\nbefore continuing.  Then run WPI again.");			self.close();		}	}	else if (ver<770) {NeedUpdateWizard=2;}	else if (ver<800) {/* Do Nothing */;}	else if (ver<870)	{		if (confirm(configFile+"\n\n"+getText(txtUpdateConfig3)))		{			UpdateWizard1();			RefreshWPI();		}	}	else {/* Do Nothing */;}	document.write('<script type="text/javascript" src="'+configFile+'" application="yes"></' + 'script>');

should give the same result as this:

	var ver;	ver=GetConfigVersion();	while (ver>-1)	{		if (ver<720)		{			if (confirm(configFile+"\n\n"+getText(txtUpdateConfig)))			{				UpdateWizard1();				RefreshWPI();			}			else			{				alert("You should remove config.js from the WPIScripts folder\nbefore continuing.  Then run WPI again.");				self.close();			}			break;		}		else if (ver<770)		{			NeedUpdateWizard=2;			break;		}		else if (ver<800)		{			break;		}		else if (ver<870)		{			if (confirm(configFile+"\n\n"+getText(txtUpdateConfig3)))			{				UpdateWizard1();				RefreshWPI();			}			break;			}		else			break;	}	document.write('<script type="text/javascript" src="'+configFile+'" application="yes"></' + 'script>');

But I realize that some of the "improvements" I suggest are a matter of "style".

Cheers and Regards

Share this post


Link to post
Share on other sites

I made the same "improvement" for WPI.hta ?? :yes:

Regards

Edited by myselfidem

Share this post


Link to post
Share on other sites

Works ...

Did you try both with and without the "return;"?

And what did you mean by:

... but need more time to install programs!

Sorry to be a pest.

Cheers and Regards

Yers, bphlpt.. I made all these tests!

The only one working fine is the first one I given.

Regards

Share this post


Link to post
Share on other sites

I made the same "improvement" for WPI.hta ?? :yes:

Sorry. My post wasn't very clear. I was trying to say that the first code was better, ie get rid of the "while" and all the "break" statements. I don't think they are necessary. So this should be the updated file:

	var ver=GetConfigVersion();	if (ver<0) {/* Do Nothing */;}	else if (ver<720)	{		if (confirm(configFile+"\n\n"+getText(txtUpdateConfig)))		{			UpdateWizard1();			RefreshWPI();		}		else		{			alert("You should remove config.js from the WPIScripts folder\nbefore continuing.  Then run WPI again.");			self.close();		}	}	else if (ver<770) {NeedUpdateWizard=2;}	else if (ver<800) {/* Do Nothing */;}	else if (ver<870)	{		if (confirm(configFile+"\n\n"+getText(txtUpdateConfig3)))		{			UpdateWizard3();			RefreshWPI();		}	}	else {/* Do Nothing */;}	document.write('<script type="text/javascript" src="'+configFile+'" application="yes"></' + 'script>');

Cheers and Regards

Share this post


Link to post
Share on other sites

Yes, your code works fine!! :)

Thanks bphlpt for your kind help and regards

*Edit: post updated

Edited by myselfidem

Share this post


Link to post
Share on other sites

LOL I'll let myselfidem do that since he does more testing than I do so has a better feel for what actually works. :)

Sorry I got in the way and made it harder for you to follow, Kel.

Cheers and Regards

Share this post


Link to post
Share on other sites

Yes, it's really OK Kels!

Summary:

Change inside Installer.hta:

function PauseInstaller(){	if (!UserPaused)	{		UserPaused=true;		WriteRegKey("HKEY_CURRENT_USER\\Software\\WPI\\UserPaused",1,"REG_DWORD");		document.getElementById("Pause").innerHTML=getText(btnResume);		document.getElementById("AbortButton").disabled=true;				return;	}	else	{		UserPaused=false;		WriteRegKey("HKEY_CURRENT_USER\\Software\\WPI\\UserPaused",0,"REG_DWORD");		document.getElementById("Pause").innerHTML=getText(btnPause);		document.getElementById("AbortButton").disabled=false;	}}</script>

Change inside WPI.hta:

script type="text/javascript">	var ver;	ver=GetConfigVersion();	while (ver>-1)	{		if (ver<720)		{			if (confirm(configFile+"\n\n"+getText(txtUpdateConfig)))			{				UpdateWizard1();				RefreshWPI();			}			else			{				alert("You should remove config.js from the WPIScripts folder\nbefore continuing.  Then run WPI again.");				self.close();			}			break;		}		else if (ver<770)		{		    if (confirm(configFile+"\n\n"+getText(txtUpdateConfig2)))	            {	                NeedUpdateWizard=2;	            }	            break;	        }  	        else if (ver<800)		{		    break;		}	        else if (ver<870)	        {		    if (confirm(configFile+"\n\n"+getText(txtUpdateConfig3)))		    {			UpdateWizard1();			RefreshWPI();		    }		    break;		}	        else	            break;    }	document.write('<script type="text/javascript" src="'+configFile+'" application="yes"></' + 'script>');

Inside configwizard.js, add from on line 2804:

        }	else if (val>800 && val<870)	{	if (Alert("",getText(txtUpdateConfig3),getText(lblOK)+"|"+getText(lblCancel),"",5,0,0,0))	{	UpdateWizard1();	RefreshWPI();	}

Add from line 2918:

case "bit64":	configList[pn-2].bit64=val;	break;

Change the line 3105 to:

tf.WriteLine("// WPI Config 8.7.0");

Inside lang_en.js, add line 1031:

txtUpdateConfig3[lang]		    = ['This is an old config file (before v8.7.0).\n\nWould like it to be updated?\n\nMake a backup copy first.'];

Inside globals_lang.js, add:

var txtUpdateConfig3 = [],

Many changes inside (Thanks to check if it's OK):

function UpdateCommand(cmd)

Inside jscript.js, revert back and add (from line 44):

function TimedWaitForProgram(ImageName,HowLong){ 	position="jscript.js";	whatfunc="TimedWaitForProgram()";	var Elapsed=3;	Pause(3,0);	while (Elapsed<=HowLong*60)	{		var oExec = WshShell.Exec('tasklist.exe');		while (oExec.Status == 0)			Pause(0,100);		var Output = oExec.StdOut.ReadAll() + oExec.StdErr.ReadAll();		if (Output.search(ImageName)==-1)			return;		Pause(3,0);		Elapsed += 3;	}}

Inside installer.js, change from line 1074 to:

document.getElementById("InstallItem").innerHTML = getText(lblViewing)+" " + cmd;            cmd = '"'+ReplacePath("%programfiles%\\Internet Explorer\\iexplore.exe")+'"' + cmd;

From line 1395 (downloading files improvement)::

if (FileExists(windir+"\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"))   {     cmdLine = 'Powershell -NoProfile Import-Module BitsTransfer -cmdlet Start-BitsTransfer; Start-BitsTransfer -Source ' + URL + ' -Destination "$env:temp\\'+Filename+'" -TransferType Download';     fsoCmd = true;     }     else     {     cmdLine = '"'+wpipath+'\\Tools\\BitsAdmin.exe" /transfer WPI /download /priority high ' + URL + ' "%TEMP%\\'+Filename+'"';     fsoCmd = true;     }      if (AlwaysShowOutputWindow || ShowDownloadOutput)   fsoCmd = false;   ReturnCode = WshShell.Run(ReplacePath(cmdLine), fsoCmd ? 0 : 1, true);   if (ReturnCode == 0)   WriteLogLine(cmdName + ' ' + getText(InstallDownloadSuccess) + ' (' + getText(ReturnedCode) + ' ' + ReturnCode + '): ' + URL);   else   WriteLogLine(cmdName + ' ' + getText(InstallDownloadFail) + ' (' + getText(ReturnedCode) + ' ' + ReturnCode + '): ' + URL);   UpdateInstallList(("div" + i + "_" + j + "_" + FailNum), "");   cmd = ReplacePath('"%TEMP%\\'+Filename+'"' + Args) || ReplacePath('"$env:temp\\'+Filename+'"' + Args);   return cmd;}

timers.js working:

function ins_iTimer()  // this doesn't work correctly at midnight...{   position="timers.js";   whatfunc="ins_iTimer()";   var now=new Date();   var nowSecs=(now.getHours()*60*60) + (now.getMinutes()*60) + now.getSeconds();   var elapsedSecs=nowSecs - ins_startSecs;    var hours=Math.floor(elapsedSecs/3600);   elapsedSecs=elapsedSecs - (hours*3600);   var minutes=Math.floor(elapsedSecs/60);   var seconds=elapsedSecs - (minutes*60);   var txt=((hours < 10) ? "0" : "") + hours + ((minutes < 10) ? ":0" : ":") + minutes + ((seconds < 10) ? ":0" : ":") + seconds;   document.getElementById("TimerDisplay").innerHTML=txt;      var timerID=setTimeout("ins_iTimer()",1000);  // Update display}

All tested and works fine!

Thanks bphlpt for your help.

New lang_fr.js (attached).

Regards

*Edit: I think we can revert back inside networkwizard.js an change the line 2121 to:

tf.WriteLine("// WPI Network Options 8.0.0");

*EDIT 2: After all the day making tests I see we must revert like my updated post, because the first codes suggested can gives themes errors.

When we use an old file number config.js 7.0.0

Now, after many tests I think it's OK. No need to jump to 7.0.0 to 7.2.0+ and 8.7.0+

Regards

*Edit: post updated

lang_fr.rar

Edited by myselfidem

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...