Merge pull request #1646 from victorsl/BUG-0000

BUG 0000 "Safe upgrade for JavaScript files" SOLVED
This commit is contained in:
julceslauhub
2013-04-26 11:51:14 -07:00
17 changed files with 415 additions and 295 deletions

View File

@@ -138,46 +138,6 @@ class PmBootstrap extends Bootstrap
}
}
public function loadLeimud()
{
$oHeadPublisher = headPublisher::getSingleton();
// Defining the maborak js file, this file is the concat of many js files and here we are including all of them.
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/maborak.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'common/core/common.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'common/core/effects.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'common/core/webResource.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'dveditor/core/dveditor.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'tinymce/jscripts/tiny_mce/tiny_mce.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'common/tree/tree.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'json/core/json.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'form/core/form.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'form/core/pagedTable.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'grid/core/grid.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.panel.js' , true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.validator.js', true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.app.js' , true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.rpc.js' , true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.fx.js' , true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.drag.js' , true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.drop.js' , true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.dom.js' , true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.abbr.js' , true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.dashboard.js', true );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'widgets/js-calendar/js-calendar.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'widgets/suggest/bsn.AutoSuggest_2.1.3.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'widgets/tooltip/pmtooltip.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'thirdparty/krumo/krumo.js' );
$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'widgets/calendar/pmcalendar.js' , true );
$oHeadPublisher->addMaborakFile(PATH_CORE . 'js' . PATH_SEP . 'cases/core/cases.js' , true );
$oHeadPublisher->addMaborakFile(PATH_CORE . 'js' . PATH_SEP . 'cases/core/cases_Step.js', true );
$oHeadPublisher->addMaborakFile(PATH_CORE . 'js' . PATH_SEP . 'processmap/core/processmap.js', true );
$oHeadPublisher->addMaborakFile(PATH_CORE . 'js' . PATH_SEP . 'appFolder/core/appFolderList.js', true );
$oHeadPublisher->addMaborakFile(PATH_THIRDPARTY . 'htmlarea/editor.js', true );
//$oHeadPublisher->addMaborakFile(PATH_GULLIVER_HOME . 'js' . PATH_SEP . "widgets/jscalendar/lang/calendar-" . SYS_LANG . ".js");
}
public function dispatchResource()
{
$realPath = $this->matchRoute['path'];

View File

@@ -0,0 +1,21 @@
<?php
CLI::taskName("browser-cache-files-upgrade");
CLI::taskDescription(<<<EOT
Safe upgrade for files cached by the browser
This command should be run after any upgrade/modification of files cached by the browser.
EOT
);
CLI::taskRun(runBrowserCacheFiles);
function runBrowserCacheFiles($command, $args)
{
CLI::logging("Safe upgrade for files cached by the browser\n");
G::browserCacheFilesSetUid();
CLI::logging("Upgrade successful\n");
}

View File

@@ -85,6 +85,13 @@ function minify_javascript($command, $args)
}
}
//Safe upgrade for JavaScript files
CLI::logging("\nSafe upgrade for files cached by the browser\n\n");
G::browserCacheFilesSetUid();
//Done
CLI::logging("BUILD-JS DONE\n");
}

View File

@@ -119,12 +119,6 @@ function run_upgrade($command, $args)
$errors = true;
}
}
if ($errors) {
CLI::logging("Upgrade finished but there were errors upgrading workspaces.\n");
CLI::logging(CLI::error("Please check the log above to correct any issues.")."\n");
} else {
CLI::logging("Upgrade successful\n");
}
// SAVE Upgrades/Patches
$arrayPatch = glob(PATH_TRUNK . 'patch-*');
@@ -151,6 +145,19 @@ function run_upgrade($command, $args)
CLI::logging('ProcessMaker ' . System::getVersion(). ' installed', PATH_DATA . 'log/upgrades.log');
}
//Safe upgrade for JavaScript files
CLI::logging("\nSafe upgrade for files cached by the browser\n\n");
G::browserCacheFilesSetUid();
//Status
if ($errors) {
CLI::logging("Upgrade finished but there were errors upgrading workspaces.\n");
CLI::logging(CLI::error("Please check the log above to correct any issues.") . "\n");
} else {
CLI::logging("Upgrade successful\n");
}
//setting flag to false
$flag = G::isPMUnderUpdating(0);
}

View File

@@ -367,7 +367,7 @@ class Installer extends Controller
{
$pathSharedPartner = trim( $_REQUEST['pathShared'] );
if (file_exists($pathSharedPartner.'partner.info')) {
$_REQUEST['PARTNER_FLAG'] = true;
$_REQUEST["PARTNER_FLAG"] = true;
}
$this->setResponseType( 'json' );
if ($_REQUEST['db_engine'] == 'mysql') {
@@ -382,13 +382,13 @@ class Installer extends Controller
public function forceTogenerateTranslationsFiles ($url)
{
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, (isset( $_SERVER['HTTPS'] ) ? ($_SERVER['HTTPS'] != '' ? 'https://' : 'http://') : 'http://') . $_SERVER['HTTP_HOST'] . '/js/ext/translation.en.js?r=' . rand( 1, 10000 ) );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_FRESH_CONNECT, 1 );
curl_setopt( $ch, CURLOPT_TIMEOUT, 60 );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 20 );
curl_exec( $ch );
curl_close( $ch );
curl_setopt($ch, CURLOPT_URL, G::browserCacheFilesUrl((isset($_SERVER["HTTPS"])? (($_SERVER["HTTPS"] != "")? "https://" : "http://") : "http://") . $_SERVER["HTTP_HOST"] . "/js/ext/translation.en.js?r=" . rand(1, 10000)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_exec($ch);
curl_close($ch);
}
/**
@@ -1407,7 +1407,7 @@ EOL;
$output = curl_exec($ch);
curl_close($ch);
/**
/**
* Upload translation .po file
*/
@@ -1430,7 +1430,7 @@ EOL;
$output = curl_exec($ch);
curl_close($ch);
/**
/**
* Upload skin file
*/

View File

@@ -277,10 +277,11 @@ class Main extends Controller
$this->setVar( 'advise_text', $adviseText );
$loginScript = $this->getHeadPublisher()->getExtJsLibraries();
$loginScript .= $this->getHeadPublisher()->getExtJsScripts();
$this->setVar( 'login_script', $loginScript );
$this->setVar( 'login_vars', $this->getHeadPublisher()->getExtJsVariablesScript() );
$this->setVar("login_script", $loginScript);
$this->setVar("login_vars", $this->getHeadPublisher()->getExtJsVariablesScript());
$this->setVar("URL_TRANSLATION_JS", G::browserCacheFilesUrl("/js/ext/translation.en.js"));
$this->setLayout( 'pm-modern-login' );
$this->setLayout("pm-modern-login");
$this->render();
}
@@ -342,10 +343,11 @@ class Main extends Controller
$loginScript = $this->getHeadPublisher()->getExtJsLibraries();
$loginScript .= $this->getHeadPublisher()->getExtJsScripts();
$this->setVar( 'login_script', $loginScript );
$this->setVar( 'login_vars', $this->getHeadPublisher()->getExtJsVariablesScript() );
$this->setVar("login_script", $loginScript);
$this->setVar("login_vars", $this->getHeadPublisher()->getExtJsVariablesScript());
$this->setVar("URL_TRANSLATION_JS", G::browserCacheFilesUrl("/js/ext/translation.en.js"));
$this->setLayout( 'pm-modern-login' );
$this->setLayout("pm-modern-login");
$this->render();
}

View File

@@ -138,16 +138,20 @@ try {
$oStep = new Step();
$sUidGrids = $oStep->lookingforUidGrids( $sPRO_UID, $sDYNAFORM );
$template->assign( 'siteUrl', $http . $_SERVER['HTTP_HOST'] );
$template->assign( 'sysSys', SYS_SYS );
$template->assign( 'sysLang', SYS_LANG );
$template->assign( 'sysSkin', SYS_SKIN );
$template->assign( 'processUid', $sPRO_UID );
$template->assign( 'dynaformUid', $sDYNAFORM );
$template->assign( 'taskUid', $sTASKS );
$template->assign( 'dynFileName', $sPRO_UID . '/' . $sDYNAFORM );
$template->assign( 'formId', $G_FORM->id );
$template->assign( 'scriptCode', $scriptCode );
$browserCacheFilesUid = G::browserCacheFilesGetUid();
$template->assign("URL_MABORAK_JS", G::browserCacheFilesUrl("/js/maborak/core/maborak.js"));
$template->assign("URL_TRANSLATION_ENV_JS", G::browserCacheFilesUrl("/jscore/labels/" . SYS_LANG . ".js"));
$template->assign("siteUrl", $http . $_SERVER["HTTP_HOST"]);
$template->assign("sysSys", SYS_SYS);
$template->assign("sysLang", SYS_LANG);
$template->assign("sysSkin", SYS_SKIN);
$template->assign("processUid", $sPRO_UID);
$template->assign("dynaformUid", $sDYNAFORM);
$template->assign("taskUid", $sTASKS);
$template->assign("dynFileName", $sPRO_UID . "/" . $sDYNAFORM);
$template->assign("formId", $G_FORM->id);
$template->assign("scriptCode", $scriptCode);
if (sizeof( $sUidGrids ) > 0) {
foreach ($sUidGrids as $k => $v) {
@@ -167,4 +171,3 @@ try {
G::RenderPage( 'publish', 'raw' );
}

View File

@@ -41,6 +41,9 @@ $oTemplatePower->newBlock('users');
$oTemplatePower->assign('USR_UID', $aUser['USR_UID']);
$oTemplatePower->assign('USR_FULLNAME', $aData['USR_FIRSTNAME'] . ' ' . $aData['USR_LASTNAME'] . ' (' . $aData['USR_USERNAME'] . ')');
*/
$oTemplatePower->assign("URL_MABORAK_JS", G::browserCacheFilesUrl("/js/maborak/core/maborak.js"));
$G_PUBLISH->AddContent( 'template', '', '', '', $oTemplatePower );
G::RenderPage( 'publish', 'raw' );

View File

@@ -5,7 +5,7 @@
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"/>
<link rel='stylesheet' type='text/css' href='/css/{$_skin}-extJs.css' />
</head>
<body class="x-pm-login-body">
<br/> <br/>
@@ -13,9 +13,9 @@
<tr>
<td>
<div class="companyLogo"><img src="{$logo_company}"/></div>
<div id="loading-mask">&nbsp;</div>
<div id="loading">
<table width="100%" height="25" border="0" cellspacing="0" cellpadding="0" class="headerLeftSection">
<tr>
@@ -48,13 +48,13 @@
</td>
</tr>
</table>
<script type="text/javascript">document.getElementById('loading-message').innerHTML = 'Loading Core API...';</script>
<script type='text/javascript' src='/js/ext/ext-base.js'></script>
<script type="text/javascript">document.getElementById('loading-message').innerHTML = 'Loading Components...';</script>
<script type='text/javascript' src='/js/ext/ext-all.js'></script>
<script type="text/javascript">document.getElementById('loading-message').innerHTML = 'Initializing...';</script>
<script type='text/javascript' src='/js/ext/translation.en.js'></script>
<script type="text/javascript" src="{$URL_TRANSLATION_JS}"></script>
{$login_script}
{$login_vars}
</body>

View File

@@ -1,45 +1,46 @@
<html>
<head>
<script type="text/javascript" src="{siteUrl}/jscore/labels/{sysLang}.js"></script>
<script type="text/javascript" src="{siteUrl}/js/maborak/core/maborak.js"></script>
<script type="text/javascript" src="{siteUrl}/js/jscalendar/lang/calendar-{sysLang}.js"></script>
<script type="text/javascript" src="{siteUrl}/jsform/gulliver/dynaforms_Options.js"></script>
<script type="text/javascript" src="{siteUrl}/jsform/{dynFileName}.js"></script>
<!-- START BLOCK : grid_uids -->
<script type="text/javascript" src="{siteUrl}/jsform/{gridFileName}.js"></script>
<!-- END BLOCK : grid_uids -->
<script type="text/javascript">
var leimnud = new maborak();
leimnud.make();
leimnud.Package.Load("panel,validator,app,rpc,fx,drag,drop,dom,abbr",{ Instance:leimnud,Type:"module" });
leimnud.exec(leimnud.fix.memoryLeak);
if(leimnud.browser.isIphone)
{ leimnud.iphone.make(); }
leimnud.event.add(window,"load",function(){ loadForm_{formId}("{siteUrl}/sys{sysSys}/{sysLang}/{sysSkin}/gulliver/defaultAjaxDynaform")});
</script>
<script type="text/javascript">
var aux1 = window.location.href.split("?");
if(aux1[1]){
if(aux1[1]!=""){
var aux2 = aux1[1].split("&");
for(var i=0; i<=aux2.length; i++){
if(aux2[i]=="__flag__=1"){
alert("Request sent!");
}
}
}
}
</script>
</head>
<body>
{scriptCode}
<input type="hidden" name="PRO_UID" value="{processUid}">
<input type="hidden" name="TASKS" value="{taskUid}">
<input type="hidden" name="DYNAFORM" value="{dynaformUid}">
</form>
</body>
</html>
<html>
<head>
<script type="text/javascript" src="{siteUrl}{URL_TRANSLATION_ENV_JS}"></script>
<script type="text/javascript" src="{siteUrl}{URL_MABORAK_JS}"></script>
<script type="text/javascript" src="{siteUrl}/js/jscalendar/lang/calendar-{sysLang}.js"></script>
<script type="text/javascript" src="{siteUrl}/jsform/gulliver/dynaforms_Options.js"></script>
<script type="text/javascript" src="{siteUrl}/jsform/{dynFileName}.js"></script>
<!-- START BLOCK : grid_uids -->
<script type="text/javascript" src="{siteUrl}/jsform/{gridFileName}.js"></script>
<!-- END BLOCK : grid_uids -->
<script type="text/javascript">
var leimnud = new maborak();
leimnud.make();
leimnud.Package.Load("panel,validator,app,rpc,fx,drag,drop,dom,abbr",{ Instance:leimnud,Type:"module" });
leimnud.exec(leimnud.fix.memoryLeak);
if (leimnud.browser.isIphone) {
leimnud.iphone.make();
}
leimnud.event.add(window,"load",function(){ loadForm_{formId}("{siteUrl}/sys{sysSys}/{sysLang}/{sysSkin}/gulliver/defaultAjaxDynaform")});
</script>
<script type="text/javascript">
var aux1 = window.location.href.split("?");
if (aux1[1]) {
if (aux1[1] != "") {
var aux2 = aux1[1].split("&");
for (var i = 0; i <= aux2.length; i++) {
if (aux2[i] == "__flag__=1") {
alert("Request sent!");
}
}
}
}
</script>
</head>
<body>
{scriptCode}
<input type="hidden" name="PRO_UID" value="{processUid}">
<input type="hidden" name="TASKS" value="{taskUid}">
<input type="hidden" name="DYNAFORM" value="{dynaformUid}">
</form>
</body>
</html>

View File

@@ -1,124 +1,125 @@
<html>
<head>
<script type='text/javascript' src='/js/maborak/core/maborak.js'></script>
<script type='text/javascript'>
var leimnud = new maborak();
leimnud.make({
zip:true,
inGulliver:true,
modules :"dom,abbr,rpc,drag,drop,app,panel,fx,grid,xmlform,validator,dashboard",
files :""
});
try{
leimnud.exec(leimnud.fix.memoryLeak);
if(leimnud.browser.isIphone){
leimnud.iphone.make();
}
}catch(e){}
</script>
<style type="text/css">
body, table {
font-family: tahoma,arial,verdana,sans-serif;
}
span.cMargLeft { padding-left: 20; }
.cell2 {
font-size: 13px;
background: #fff;
border-right: #fff 1px solid;
padding-right: 10px;
border-top: #fff 1px solid;
padding-top: 10px;
border-left: #fff 1px solid;
padding-left: 10px;
border-bottom: #fff 1px solid;
padding-bottom: 10px;
}
span.cNeg {
color: #002c72;
font-weight: bold;
}
span.cLow {
color: #002c72;
}
</style>
<!--[if IE]>
<style>
span.cMargLeft { padding-left: 9; }
.cell2 {
font-size: 12px !important;
padding-top: 1px !important;
padding-bottom: 1px !important;
}
</style>
<![endif]-->
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<a target="_blank" href="http://www.processmaker.com">
<img src="/images/get_started.png" border="0" width="163" height="438">
</a>
</td>
<td class="cell2" valign="top">
<span class="cLow"><strong>Get Started</strong></span>
<p><span class="cLow">Welcome to ProcessMaker!</span></p>
<p><span class="cLow">To get started, log in using the following credentials. You can change them later:</span></p>
<span class="cNeg">Username:</span><span class="cLow"> admin</span><br>
<span class="cNeg">Password:</span><span class="cLow"> admin</span>
<p><span class="cLow">We suggest you follow our 7 easy videos to automate your workflow. You can see a demo of each step at&nbsp;<a target="_blank" href="http://www.processmaker.com/demos/">http://www.processmaker.com/demos/</a> </span></p>
<span class="cLow">Other Resources:</span><br/><br/>
<span class="cLow"><a target="_blank" href="http://library.processmaker.com">PM Library </a>- Import Templates</span><br/>
<span class="cLow"><a target="_blank" href="http://wiki.processmaker.com">PM Wiki </a>- Manuals</span><br/>
<span class="cLow"><a target="_blank" href="http://forum.processmaker.com">PM Forum </a>- Ask Questions</span><br/>
<p><span class="cLow">We hope you enjoy using ProcessMaker. For more information about our enterprise support and consulting services <a target="_blank" href="http://www.processmaker.com/contact-us">contact us.</a>
</span></p>
<p><span class="cLow">The ProcessMaker Team</span></p>
<input type="checkbox" name="getStarted" id="getStarted" onclick="saveConfig();"><span class="cLow">Don't show me again</span>
</td>
</tr>
</table>
</body>
</html>
<script>
var saveConfig = function() {
if(document.getElementById("getStarted").checked==true) {
var oRPC = new leimnud.module.rpc.xmlhttp({
url : '../login/login_Ajax',
async : false,
method: 'POST',
args : 'function=getStarted_save'
});
oRPC.make();
}
if(panel) {
if(panel.remove) {
panel.remove();
return false;
}
}
if(window.parent) {
if (parent.Ext) {
parent.Ext.getCmp('gettingStartedWindow').close();
}
}
}
</script>
<html>
<head>
<script type="text/javascript" src="{URL_MABORAK_JS}"></script>
<script type="text/javascript">
var leimnud = new maborak();
leimnud.make({
zip: true,
inGulliver: true,
modules: "dom,abbr,rpc,drag,drop,app,panel,fx,grid,xmlform,validator,dashboard",
files: ""
});
try {
leimnud.exec(leimnud.fix.memoryLeak);
if (leimnud.browser.isIphone) {
leimnud.iphone.make();
}
} catch (e) {
}
</script>
<style type="text/css">
body, table {
font-family: tahoma,arial,verdana,sans-serif;
}
span.cMargLeft { padding-left: 20; }
.cell2 {
font-size: 13px;
background: #fff;
border-right: #fff 1px solid;
padding-right: 10px;
border-top: #fff 1px solid;
padding-top: 10px;
border-left: #fff 1px solid;
padding-left: 10px;
border-bottom: #fff 1px solid;
padding-bottom: 10px;
}
span.cNeg {
color: #002c72;
font-weight: bold;
}
span.cLow {
color: #002c72;
}
</style>
<!--[if IE]>
<style type="text/css">
span.cMargLeft { padding-left: 9; }
.cell2 {
font-size: 12px !important;
padding-top: 1px !important;
padding-bottom: 1px !important;
}
</style>
<![endif]-->
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<a target="_blank" href="http://www.processmaker.com"><img src="/images/get_started.png" border="0" width="163" height="438"></a>
</td>
<td class="cell2" valign="top">
<span class="cLow"><strong>Get Started</strong></span>
<p><span class="cLow">Welcome to ProcessMaker!</span></p>
<p><span class="cLow">To get started, log in using the following credentials. You can change them later:</span></p>
<span class="cNeg">Username:</span><span class="cLow"> admin</span><br>
<span class="cNeg">Password:</span><span class="cLow"> admin</span>
<p><span class="cLow">We suggest you follow our 7 easy videos to automate your workflow. You can see a demo of each step at&nbsp;<a target="_blank" href="http://www.processmaker.com/demos/">http://www.processmaker.com/demos/</a> </span></p>
<span class="cLow">Other Resources:</span><br/><br/>
<span class="cLow"><a target="_blank" href="http://library.processmaker.com">PM Library </a>- Import Templates</span><br/>
<span class="cLow"><a target="_blank" href="http://wiki.processmaker.com">PM Wiki </a>- Manuals</span><br/>
<span class="cLow"><a target="_blank" href="http://forum.processmaker.com">PM Forum </a>- Ask Questions</span><br/>
<p><span class="cLow">We hope you enjoy using ProcessMaker. For more information about our enterprise support and consulting services <a target="_blank" href="http://www.processmaker.com/contact-us">contact us.</a>
</span></p>
<p><span class="cLow">The ProcessMaker Team</span></p>
<input type="checkbox" name="getStarted" id="getStarted" onclick="saveConfig();"><span class="cLow">Don't show me again</span>
</td>
</tr>
</table>
</body>
</html>
<script type="text/javascript">
var saveConfig = function()
{
if (document.getElementById("getStarted").checked == true) {
var oRPC = new leimnud.module.rpc.xmlhttp({
url : "../login/login_Ajax",
async : false,
method: "POST",
args : "function=getStarted_save"
});
oRPC.make();
}
if (panel) {
if (panel.remove) {
panel.remove();
return false;
}
}
if (window.parent) {
if (parent.Ext) {
parent.Ext.getCmp("gettingStartedWindow").close();
}
}
};
</script>