/**
     * Add javascript logout to the page if a timeout is set for the site.
     * @param I2CE_Page $page
     */
    public function javascriptTimeout($page)
    {
        if (!$page->getUser()->logged_in()) {
            return;
        }
        $timeout = 0;
        I2CE::getConfig()->setIfIsSet($timeout, "/config/site/user_timeout");
        I2CE::getConfig()->setIfIsSet($timeout, "/user_prefs/timeout/user_timeout");
        if ($timeout && is_numeric($timeout) && $timeout > 0) {
            $timeout = $timeout * 1000;
            $message = "You have been logged out due to inactivity.";
            I2CE::getConfig()->setIfIsSet($message, "/config/site/user_timeout_message");
            I2CE::getConfig()->setIfIsSet($message, "/user_prefs/timeout/user_timeout_message");
            $logout = $page->getAccessedBaseURL() . "logout?message=" . urlencode($message);
            $js = <<<EOJS
var auto_logout_timeout_id = 0;
window.addEvent('domready', function() { 
        autoLogoutResetTimeout(); 
        document.addEvent('keypress', function(event) { autoLogoutResetTimeout(); } );
        document.addEvent('mousemove', function(event) { autoLogoutResetTimeout(); } );
        } );
function autoLogoutResetTimeout() {
    if ( auto_logout_timeout_id > 0 ) {
        clearTimeout( auto_logout_timeout_id );
    }
    auto_logout_timeout_id = setTimeout( function() { window.location = "{$logout}"; }, {$timeout} );
}
EOJS;
            $template = $page->getTemplate();
            $template->addHeaderLink("mootools-core.js");
            $template->addHeaderText($js, "script", true);
        }
    }
示例#2
0
 public function ajaxTest($page)
 {
     if (!isset($_SESSION['stub_ajax_test'])) {
         $_SESSION['stub_ajax_test'] = 'unknown0';
     }
     if (is_bool($_SESSION['stub_ajax_test'])) {
         return;
     }
     if (preg_match('/^unknown(\\d*)/', $_SESSION['stub_ajax_test'], $matches)) {
         if ($matches[1] > 5) {
             $_SESSION['stub_ajax_test'] = false;
             //assume after 5 page request we never got a response
         } else {
             $matches[1]++;
             $_SESSION['stub_ajax_test'] = 'unknown' . $matches[1];
         }
     } else {
         $_SESSION['stub_ajax_test'] = 'unknown0';
     }
     $stub_url = I2CE_Page::getAccessedBaseURL() . "/stub-ajax";
     $startJS = "\nvar Stub_Ajax_Test = {\n   start: function(){   \n        new Request.HTML({url:'{$stub_url}'}).get();\n   }\n};\nwindow.addEvent('load',Stub_Ajax_Test.start);\n";
     $template = $page->getTemplate();
     $template->addHeaderLink('mootools-core.js');
     $template->addHeaderText($startJS, 'script', "stub_ajax_test");
 }
 public function displayValues($content_node, $transient_options, $action)
 {
     if (!($mainNode = $this->template->appendFileByNode('swiss_svs_lists.html', 'div', $content_node)) instanceof DOMNode || !($listNode = $this->template->getElementByName('lists', 0, $mainNode)) instanceof DOMNode) {
         return false;
     }
     $publish_text = 'Publish a new version';
     $retrieve_text = 'Retrieve the most recent version';
     $edit_text = 'Edit %s configuration';
     $other_text = 'Other Versions:';
     $based_on_form_text = 'Based on the list %s';
     I2CE::getConfig()->setIfIsSet($publish_text, "/modules/SVS/messages/publish");
     I2CE::getConfig()->setIfIsSet($retrieve_text, "/modules/SVS/messages/retrieve");
     I2CE::getConfig()->setIfIsSet($edit_text, "/modules/SVS/messages/edit");
     I2CE::getConfig()->setIfIsSet($other_text, "/modules/SVS/messages/other");
     I2CE::getConfig()->setIfIsSet($based_on_form_text, "/modules/SVS/messages/basd_on_form_style");
     foreach ($this->storage->getKeys() as $oid) {
         if (!($swissChild = $this->getChild($oid)) instanceof I2CE_Swiss_SVS) {
             continue;
         }
         $form = $swissChild->getField('list');
         $id = 'list_' . $oid;
         $listNode->appendChild($liNode = $this->template->createElement('li'));
         $liNode->appendChild($spanNode = $this->template->createElement('span', array('id' => $id)));
         $spanNode->appendChild($aNode = $this->template->createElement('a', array('id' => $id . '_link')));
         $aNode->appendChild($this->template->createElement('h3', array(), sprintf($edit_text, $oid)));
         if ($form) {
             $spanNode->appendChild($pNode = $this->template->createElement('p', array(), sprintf($based_on_form_text, $form)));
         }
         $spanNode->appendChild($divNode = $this->template->createElement('div', array('id' => $id . '_ajax', 'class' => 'indented')));
         $spanNode->appendChild($linkDivNode = $this->template->createElement('div', array('class' => 'indented')));
         $publish = I2CE_Page::getAccessedBaseURL() . '/SVS/publish?id=' . $oid;
         $retrieve = I2CE_Page::getAccessedBaseURL() . '/SVS/RetrieveValueSet?id=' . $oid;
         $linkDivNode->appendChild($this->template->createElement('a', array('href' => $publish), $publish_text));
         $linkDivNode->appendChild($this->template->createElement('br'));
         $versions = iHRIS_SVS::getVersions($oid);
         if (count($versions) > 0) {
             $linkDivNode->appendChild($this->template->createElement('a', array('href' => $retrieve), $retrieve_text));
             $linkDivNode->appendChild($this->template->createElement('br'));
             $linkDivNode->appendChild($this->template->createTextNode($other_text));
             sort($versions);
             foreach ($versions as $i => $version) {
                 if ($i != 0) {
                     $linkDivNode->appendChild($this->template->createTextNode(','));
                 }
                 $linkDivNode->appendChild($this->template->createElement('a', array('href' => $retrieve . '&version=' . $version), " {$version} "));
             }
         }
         $linkDivNode->appendChild($this->template->createElement('pre', array(), $retrieve));
         $swissChild->addAjaxLink($id . '_link', 'contents', $id . '_ajax', $spanNode, $action, $transient_options);
     }
     return true;
 }
示例#4
0
 public function getMeta()
 {
     $meta = I2CE::getConfig()->getAsArray("/modules/SVS/lists/" . $this->oid . "/meta");
     if (!is_array($meta)) {
         $meta = array();
     }
     $req_keys = array('displayName' => $this->listObj->getDisplayName(), 'Status' => 'Active', 'Source' => 'iHRIS', 'SourceURI' => I2CE_Page::getAccessedBaseURL(), 'Type' => 'Expanded');
     I2CE::getConfig()->setIfIsSet($meta['Source'], "/config/site/module");
     foreach ($req_keys as $key => $val) {
         if (!array_key_exists($key, $meta) || !$meta[$key]) {
             $meta[$key] = $val;
         }
     }
     return $meta;
 }
 protected function displayMeta($mainNode, $transient_options, $action)
 {
     if (($styleNode = $this->template->getElementByName('style', 0, $mainNode)) instanceof DOMNode) {
         $styles = I2CE::getConfig()->getKeys("/I2CE/template/page_styles");
         $selected_style = $this->getField('style');
         foreach ($styles as $style) {
             $attrs = array('value' => $style);
             if ($style == $selected_style && $selected_style != '' || $style == 'shell' && $selected_style == '') {
                 $attrs['selected'] = 'selected';
             }
             $styleNode->appendChild($this->template->createElement('option', $attrs, $style));
         }
         $this->renameInputs('style', $mainNode);
     }
     if (($descNode = $this->template->getElementByName('description', 0, $mainNode)) instanceof DOMNode) {
         $this->template->setDisplayData("page", $this->name, $descNode);
         $this->template->setDisplayData("class", $this->getField('class'), $descNode);
     }
     if (($linkNode = $this->template->getElementByName('link_name', 0, $mainNode)) instanceof DOMNode) {
         $page = $this->getName();
         $url = I2CE_Page::getAccessedBaseURL() . '/' . $page;
         $c = 0;
         $formids = $this->getSampleIDs();
         foreach ($formids as $formid) {
             $this->template->setDisplayDataImmediate("link_title_" . $c, "{$page} {$c}", $linkNode);
             $this->template->setDisplayDataImmediate("page_edit_link_" . $c, "{$url}?id={$formid}", $linkNode);
             $c++;
         }
         return true;
     }
 }
示例#6
0
 public static function intialize_csd_cache_metadata($csd_cache, $lists = array(), $requested_oids = array(), $options = array())
 {
     if (!I2CE_MagicDataNode::checkKey($csd_cache) || !is_array($lists)) {
         I2CE::raiseError("Badness on CSD cache metadata args");
         return false;
     }
     if (!is_array($requested_oids)) {
         $requested_oids = array();
     }
     if (!is_array($options)) {
         $options = array();
     }
     $config = I2CE::getConfig();
     if (!($svs_config = $config->traverse("/modules/SVS/lists", true, false)) instanceof I2CE_MagicDataNode) {
         I2CE::raiseError("bad SVS root node");
         return false;
     }
     if (!($csd_cache_config = $config->traverse("/modules/csd_cache/" . $csd_cache . "/args", true, false)) instanceof I2CE_MagicDataNode) {
         I2CE::raiseError("bad csd_cache config node");
         return false;
     }
     $site_module = 'ihris';
     $config->setIfIsSet($site_module, '/config/site/module');
     $source_uri = "http://localhost/" . $site_module;
     if (array_key_exists('HTTP_HOST', $_SERVER)) {
         $source_uri = I2CE_Page::getAccessedBaseURL();
     }
     if (!is_array($oids = $csd_cache_config->getAsArray('svs_dependencies'))) {
         $oids = array();
     }
     foreach ($lists as $list) {
         if (array_key_exists($list, $oids)) {
             continue;
         }
         if (array_key_exists($list, $requested_oids)) {
             $oids[$list] = $oid = $requested_oids[$list];
         } else {
             $oids[$list] = $oid = iHRIS_CSDCache::generateUUIDasOID();
         }
         if (!I2CE_MagicDataNode::checkKey($oid)) {
             I2CE::raiseError("Invalid OID: {$oid}");
             return false;
         }
         if (array_key_exists($list, $options) && is_array($options[$list])) {
             $opts = $options[$list];
         } else {
             $opts = array();
         }
         $styles = iHRIS_SVS::getAvailableStyles($list);
         if (array_key_exists('code_style', $opts) && is_scalar($opts['code_style'])) {
             $code_style = $opts['code_style'];
         } else {
             $code_style = 'code';
         }
         if (!in_array($code_style, $styles)) {
             $code_style = 'id';
         }
         $definition = array('list' => $list, 'meta' => array('Source' => $site_module, 'SourceURI' => $source_uri, 'code_style' => $code_style, 'code_system' => $oid));
         if (!($svs_list_config = $svs_config->traverse($oid, true, false)) instanceof I2CE_MagicDataNode) {
             I2CE::raiseError("Could not create MD for {$oid} at " . $svs_config->getPath());
             return false;
         }
         $svs_list_config->setValue($definition);
         try {
             $svs = new iHRIS_SVS($oid);
             $svs->publishConceptList();
         } catch (Exception $e) {
             I2CE::raiseError("Could not create SVS list on OID: {$oid}");
             return false;
         }
     }
     $transform_vars = array('sourceDirectory' => $source_uri, 'rootProviderURN' => 'urn:ihris.org:' . $site_module . ':providers', 'rootFacilityURN' => 'urn:ihris.org:' . $site_module . ':facilities', 'rootOrganizationURN' => 'urn:ihris.org:' . $site_module . ':organizations', 'rootServicesURN' => 'urn:ihris.org:' . $site_module . ':services');
     foreach ($lists as $list) {
         $transform_vars[$list . 'CodingScheme'] = $oids[$list];
     }
     $csd_cache_config->svs_dependencies = $oids;
     foreach ($transform_vars as $key => $val) {
         I2CE::raiseError("Setting {$key} at " . $csd_cache_config->getPath());
         if (!$csd_cache_config->__isset("transform_vars/" . $key)) {
             $csd_cache_config->transform_vars->{$key} = $val;
         }
     }
     return true;
 }
 protected function sendVerificationEmail()
 {
     $verify_only = false;
     $msg_html = false;
     I2CE::getConfig()->setIfIsSet($verify_only, "/modules/RequestAccount-VerifyEmail/verify_only");
     if ($verify_only) {
         I2CE::getConfig()->setIfIsSet($msg, "/modules/RequestAccount-VerifyEmail/user_messages/email_message_verify_only");
         I2CE::getConfig()->setIfIsSet($msg_html, "/modules/RequestAccount-VerifyEmail/user_messages/email_message_verify_only_html");
     } else {
         I2CE::getConfig()->setIfIsSet($msg, "/modules/RequestAccount-VerifyEmail/user_messages/email_message");
         if (!I2CE::getConfig()->setIfIsSet($msg_html, "/modules/RequestAccount-VerifyEmail/user_messages/email_message_html")) {
             I2CE::raiseError("NO HTML");
         }
     }
     I2CE::getConfig()->setIfIsSet($subject, "/modules/RequestAccount-VerifyEmail/user_messages/email_subject");
     $site_link = I2CE_Page::getAccessedBaseURL() . '/' . $this->pageRoot();
     $link = $site_link . "?verify=" . $this->requested_user->getField('request_number')->getValue();
     $username = $this->requested_user->username;
     $email = $this->requested_user->email;
     $site = 'I2CE';
     I2CE::getConfig()->setIfIsSet($site, "/I2CE/template/prefix_title");
     $msg = sprintf($msg, $username, $link, $site, $site_link);
     if ($msg_html) {
         $msg_html = sprintf($msg_html, $username, $link, $site, $site_link);
     }
     $subject = sprintf($subject, $site);
     if (!$email || !$msg || !$subject) {
         I2CE::raiseError("Invalid message<{$msg}> or subject<{$subject}> or email<{$email}>");
         return false;
     }
     I2CE::raiseError("Want to send email to {$email} with subject {$subject}");
     I2CE::raiseError("Want to send email to user {$username} with message {$msg}");
     I2CE::raiseError("Want to send email to user {$username} with message  html " . $msg_html);
     if (!I2CE_Mailer::mail($email, array('Subject' => $subject), $msg, $msg_html)) {
         I2CE::raiseError("Could not mail verification message to {$username} / {$email}");
         return false;
     }
     return true;
 }
 public function displayValues($content_node, $transient_options, $action)
 {
     if (!($mainNode = $this->template->appendFileByNode('swiss_svs_meta.html', 'div', $content_node)) instanceof DOMNode) {
         I2CE::raiseError("Could not load " . $this->getTemplate());
         return false;
     }
     $avail_styles = $this->getAllowedStyles();
     $default_styles = array('code_style' => 'code', 'display_style' => 'default');
     foreach (self::$styles as $style) {
         if (!($styleNode = $this->template->getElementByName($style, 0, $mainNode)) instanceof DOMElement) {
             continue;
         }
         $sel = $this->getField($style);
         $t_avail_styles = $avail_styles;
         if ($style == 'code_style') {
             $t_avail_styles[] = 'id';
         }
         if (!$sel) {
             if (array_key_exists($style, $default_styles) && in_array($default_styles[$style], $avail_styles)) {
                 $this->setField($style, $default_styles[$style]);
                 $sel = $default_styles[$style];
             } else {
                 if ($style == 'code_style') {
                     $this->setField($style, 'id');
                     $sel = 'id';
                 }
             }
         }
         foreach ($t_avail_styles as $s) {
             $attrs = array('value' => $s);
             if ($s == $sel) {
                 $attrs['selected'] = 'selected';
             }
             $styleNode->appendChild($this->template->createElement('option', $attrs, $s));
         }
     }
     $type = $this->getField('Type');
     if (!$type) {
         $this->setField('Type', 'Expanded');
     }
     $uri = $this->getField('SourceURI');
     if (!$uri) {
         $this->setField('SourceURI', I2CE_Page::getAccessedBaseURL());
     }
     $stat = $this->getField('Status');
     if (!$stat) {
         $this->setField('Status', 'Active');
     }
     $src = $this->getField('Source');
     if (!$src) {
         $src = 'iHRIS';
         I2CE::getConfig()->setIfIsSet($src, "/config/site/module");
         $this->setField('Source', $src);
     }
     foreach (self::$fields as $field) {
         $this->template->setDisplayDataImmediate($field, $this->getField($field), $mainNode);
     }
     $this->renameInputs(self::$fields, $mainNode);
     $this->renameInputs(self::$styles, $mainNode);
     return true;
 }