X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fajax.inc;h=ce8c965519e3ab62f0429649e8f0d50fe4ca4808;hb=ba6ef7ddb2676a61cb46091d299708473beb659e;hp=5625fc900c3ba1c3bbda674de07d90f70cf26e30;hpb=b5c4ed7811678c840effecca17be1cce7931d0c4;p=fa-stable.git diff --git a/includes/ajax.inc b/includes/ajax.inc index 5625fc90..ce8c9655 100644 --- a/includes/ajax.inc +++ b/includes/ajax.inc @@ -25,11 +25,17 @@ class Ajax extends JsHttpRequest { // function redirect($url) { if(in_ajax()) { - $this->_addCommand(true, array('n'=>'rd'),$url); + $this->_addCommand(true, array('n'=>'rd'),$url); $this->run(); } } // + // Popup window (target=_blank) + // + function popup($url) { + $this->_addCommand(true, array('n'=>'pu'),$url); + } + // // Adds an executable Javascript code. // function addScript($trigger, $sJS) @@ -106,17 +112,26 @@ class Ajax extends JsHttpRequest { // remove not active commands foreach ($this->aCommands as $idx => $com) { - // display_error( $idx.':'.var_dump($com)); // If we should reload whole page content ignore all commands but the update. // This is page repost equivalent, although header and footer are not reloaded. + if ($com['why'] !== true && !isset($this->triggers[$com['why']])) { + unset($this->aCommands[$idx]); +// display_error('unset '.$com['t']); + } + else if($com['n'] == 'up' && $com['t'] == '_page_body') { - $this->aCommands = array($com); + $cmds = array($com); + foreach( $this->aCommands as $k=> $cmd) { + if ($cmd['n'] == 'fc') { // save focus + $cmds[] = $cmd; break; + } + } + $this->aCommands = $cmds; break; } - else - if ($com['why'] !== true && !isset($this->triggers[$com['why']])) - unset($this->aCommands[$idx]); } +// display_error('Activate:'.htmlentities(print_r($this->triggers, true))); +// display_error('Commands :'.htmlentities(print_r($this->aCommands, true))); $GLOBALS['_RESULT'] = $this->aCommands; // exit(); }