public static function ajaxGetDashboardWidget($name)
 {
     $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $objResponse = new XajaxResponse();
     $xml = '<void/>';
     $domain_da = $container->getCurrentDomain()->getDataAccess();
     $perm = new \Innomatic\Desktop\Auth\DesktopPanelAuthorizator($domain_da, $container->getCurrentUser()->getGroup());
     // Check if the widget exists in the widgets list
     $widget_query = $domain_da->execute('SELECT * FROM domain_dashboards_widgets WHERE name=' . $domain_da->formatText($name));
     if ($widget_query->getNumberRows() > 0) {
         $allowed = true;
         $panel = $widget_query->getFields('panel');
         // Do not show widgets tied to a panel when the panel is not accessible to the current user
         if (strlen($panel)) {
             $node_id = $perm->getNodeIdFromFileName($panel);
             if ($perm->check($node_id, \Innomatic\Desktop\Auth\DesktopPanelAuthorizator::NODETYPE_PAGE) == \Innomatic\Desktop\Auth\DesktopPanelAuthorizator::NODE_NOTENABLED) {
                 $allowed = false;
             }
         }
         if ($allowed) {
             $class = $widget_query->getFields('class');
             // Check if the class exists
             if (class_exists($class, true)) {
                 // Fetch the widget xml definition
                 $widget = new $class();
                 $xml = $widget->getWidgetXml();
             }
         }
     }
     // Create the widget html and send it to the dashboard
     $html = WuiXml::getContentFromXml('', $xml);
     $objResponse->addAssign('widget_' . $name, 'innerHTML', $html);
     return $objResponse;
 }
 public static function ajaxGetDashboardWidget($name)
 {
     $objResponse = new XajaxResponse();
     $xml = \Innomatic\Desktop\Dashboard\WidgetHelper::getWidgetXml($name);
     // Create the widget html and send it to the dashboard
     $html = WuiXml::getContentFromXml('', $xml);
     $objResponse->addAssign('widget_' . $name, 'innerHTML', $html);
     return $objResponse;
 }
    public static function getRolesPermissionsXml()
    {
        $localeCatalog = new \Innomatic\Locale\LocaleCatalog('innomatic::domain_profiles', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage());
        $rolesList = \Innomatic\Domain\User\Role::getAllRoles();
        $rolesCount = count($rolesList);
        // Build roles/permissions matrix
        $rolesPermissions = array();
        foreach ($rolesList as $roleId => $roleData) {
            $role = new \Innomatic\Domain\User\Role($roleId);
            $rolesPermissions[$roleId] = $role->getPermissions();
        }
        $permissionsList = \Innomatic\Domain\User\Permission::getAllPermissions();
        // Build table headers
        $headers = array();
        $headerCounter = 1;
        foreach ($rolesList as $roleId => $roleData) {
            $headers[$headerCounter++]['label'] = $roleData['title'];
        }
        $xml = '<vertgroup><children>
              <table>
                <args>
                  <headers type="array">' . WuiXml::encode($headers) . '</headers>
                </args>
                <children>';
        $row = 0;
        $prevApplication = '';
        foreach ($permissionsList as $permId => $permData) {
            if ($permData['application'] != $prevApplication) {
                $xml .= '<label row="' . $row++ . '" col="0" halign="left" valign="middle" nowrap="false" width="" colspan="' . ($rolesCount + 1) . '"><args><label>' . WuiXml::cdata($permData['application']) . '</label><bold>true</bold></args></label>';
            }
            $xml .= '<label row="' . $row . '" col="0" halign="left" valign="middle"><args><label>' . WuiXml::cdata($permData['title']) . '</label><nowrap>false</nowrap></args></label>';
            $col = 1;
            foreach ($rolesList as $roleId => $roleData) {
                if (isset($rolesPermissions[$roleId][$permId])) {
                    $checked = 'true';
                } else {
                    $checked = 'false';
                }
                $xml .= '<checkbox row="' . $row . '" col="' . $col++ . '" halign="center" valign="middle"><name>rolepermissioncb</name><args><id>cbrole_' . $roleId . '-' . $permId . '</id><checked>' . $checked . '</checked></args></checkbox>';
            }
            $prevApplication = $permData['application'];
            $row++;
        }
        $xml .= '</children>
              </table>
              <horizbar/>
              <button><name>save</name>
	<args><themeimage>buttonok</themeimage><label>' . WuiXml::cdata($localeCatalog->getStr('save_roles_permissions_button')) . '</label><action>javascript:void(0)</action><horiz>true</horiz><frame>false</frame></args>
  	<events>
    	<click>' . WuiXml::cdata("\nvar checkboxes = document.getElementsByName('wui[][evd][rolepermissioncb]');\nvar vals = '';\nfor (var i=0, n=checkboxes.length;i<n;i++) {\n  if (checkboxes[i].checked) vals += ','+checkboxes[i].id;\n}\nif (vals) vals = vals.substring(1);\n    \t\t\t\nxajax_SaveRolesPermissions(vals);") . '</click>
  	</events></button>
            </children></vertgroup>';
        return $xml;
    }
function main_showclipping($eventData)
{
    global $gXml_def, $gLocale, $customers, $gInnowork_core;
    $summaries = $gInnowork_core->GetSummaries();
    $innowork_clipping = new InnoworkClipping(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess(), $eventData['id']);
    $clippings = $innowork_clipping->GetItems();
    $gXml_def = '
        <innoworksearch><name>clipping</name>
          <args>
            <searchresult type="array">' . WuiXml::encode($clippings['result']) . '</searchresult>
            <summaries type="array">' . WuiXml::encode($summaries) . '</summaries>
            <clipping>true</clipping>
            <clippingid>' . $eventData['id'] . '</clippingid>
          </args>
        </innoworksearch>';
}
Esempio n. 5
0
function main_innomatic($eventData)
{
    global $gXmlDefinition, $gLocale, $gPageTitle;
    $country = new \Innomatic\Locale\LocaleCountry(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCountry());
    $tabs[0]['label'] = $gLocale->getStr('innomatic_status.tab');
    $tabs[1]['label'] = $gLocale->getStr('innomatic_requirements.tab');
    $tabs[2]['label'] = $gLocale->getStr('innomatic_settings.tab');
    $logsMain = new \Shared\Maintenance\InnomaticLogsMaintenance();
    $cacheMain = new \Shared\Maintenance\InnomaticCacheMaintenance();
    $gXmlDefinition = '<tab><name>innomatic</name>
      <args>
        <tabs type="array">' . WuiXml::encode($tabs) . '</tabs>
        <tabactionfunction>innomatic_tab_builder</tabactionfunction>
        <activetab>' . (isset($eventData['tab']) ? $eventData['tab'] : '') . '</activetab>
      </args>
      <children>

        <vertgroup><name></name>
          <children>

            <label><name>tabtitle</name>
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('innomatic_status.label')) . '</label>
                <bold>true</bold>
              </args>
            </label>

        <grid>
          <children>

            <label row="0" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('systemlogs_size.label')) . '</label>
              </args>
            </label>

            <string row="0" col="1">
              <args>
                <size>15</size>
                <readonly>true</readonly>
                <value type="encoded">' . urlencode($country->FormatNumber($logsMain->getSystemLogsSize())) . '</value>
              </args>
            </string>

            <button row="0" col="2">
              <args>
                <themeimage>documentdelete</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_systemlogs')))) . '</action>
              </args>
            </button>

            <label row="1" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('domainslogs_size.label')) . '</label>
              </args>
            </label>

            <string row="1" col="1">
              <args>
                <size>15</size>
                <readonly>true</readonly>
                <value type="encoded">' . urlencode($country->FormatNumber($logsMain->getDomainsLogsSize())) . '</value>
              </args>
            </string>

            <button row="1" col="2">
              <args>
                <themeimage>documentdelete</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_domainslogs')))) . '</action>
              </args>
            </button>

            <label row="2" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('cache_size.label')) . '</label>
              </args>
            </label>

            <string row="2" col="1">
              <args>
                <size>15</size>
                <readonly>true</readonly>
                <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getCacheSize())) . '</value>
              </args>
            </string>

            <button row="2" col="2">
              <args>
                <themeimage>documentdelete</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_cache')))) . '</action>
              </args>
            </button>

            <label row="3" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('sessions_size.label')) . '</label>
              </args>
            </label>

            <string row="3" col="1">
              <args>
                <size>15</size>
                <readonly>true</readonly>
                <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getSessionsSize())) . '</value>
              </args>
            </string>

            <button row="3" col="2">
              <args>
                <themeimage>documentdelete</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_sessions')))) . '</action>
              </args>
            </button>

            <label row="4" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('pidfiles_size.label')) . '</label>
              </args>
            </label>

            <string row="4" col="1">
              <args>
                <size>15</size>
                <readonly>true</readonly>
                <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getPidFilesSize())) . '</value>
              </args>
            </string>

            <button row="4" col="2">
              <args>
                <themeimage>documentdelete</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_pidfiles')))) . '</action>
              </args>
            </button>

            <label row="5" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('tempdirs_size.label')) . '</label>
              </args>
            </label>

            <string row="5" col="1">
              <args>
                <size>15</size>
                <readonly>true</readonly>
                <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getRootTempDirsSize())) . '</value>
              </args>
            </string>

            <button row="5" col="2">
              <args>
                <themeimage>documentdelete</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_tempdirs')))) . '</action>
              </args>
            </button>

            <label row="6" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('clipboard_size.label')) . '</label>
              </args>
            </label>

            <string row="6" col="1">
              <args>
                <size>15</size>
                <readonly>true</readonly>
                <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getClipboardSize())) . '</value>
              </args>
            </string>

            <button row="6" col="2">
              <args>
                <themeimage>documentdelete</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_clipboard')))) . '</action>
              </args>
            </button>

            <label row="7" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('cleanable_size.label')) . '</label>
              </args>
            </label>

            <string row="7" col="1">
              <args>
                <size>15</size>
                <readonly>true</readonly>
                <value type="encoded">' . urlencode($country->FormatNumber($logsMain->getCleanableDiskSize() + $cacheMain->getCleanableDiskSize())) . '</value>
              </args>
            </string>

            <button row="7" col="2">
              <args>
                <themeimage>documentdelete</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('clearall.label')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_all')))) . '</action>
              </args>
            </button>

          </children>
        </grid>

          </children>
        </vertgroup>

        <vertgroup><name></name>
          <children>

            <label><name>tabtitle</name>
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('innomatic_requirements.label')) . '</label>
                <bold>true</bold>
              </args>
            </label>

            <table><name>sysinfotable</name>
              <children>
        ';
    $wuiWidget = new WuiXml('dummy');
    // Required features
    // PHP version check
    //
    $row = 0;
    //if ( ereg( '[4-9]\.[0-9]\.[5-9].*', phpversion() ) or ereg( '[4-9]\.[1-9]\.[0-9].*', phpversion() ) )
    if (ereg("[5-9]\\.[0-9]\\.[0-9].*", phpversion())) {
        $ball = $wuiWidget->mThemeHandler->mStyle['greenball'];
        $checkResult = sprintf($gLocale->getStr('php_available_label'), phpversion());
    } else {
        $ball = $wuiWidget->mThemeHandler->mStyle['redball'];
        $checkResult = sprintf($gLocale->getStr('php_not_available_label'), phpversion());
    }
    $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label>
    <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image>
    <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('php_test_label')) . '</label></args></label>
    <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>';
    // File upload support
    //
    $row++;
    if (ini_get('file_uploads') == '1') {
        $ball = $wuiWidget->mThemeHandler->mStyle['greenball'];
        $checkResult = $gLocale->getStr('fileupload_available_label');
    } else {
        $ball = $wuiWidget->mThemeHandler->mStyle['redball'];
        $checkResult = $gLocale->getStr('fileupload_not_available_label');
        $systemok = false;
    }
    $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label>
    <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image>
    <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('fileupload_test_label')) . '</label></args></label>
    <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>';
    // XML support
    //
    $row++;
    if (function_exists('xml_set_object')) {
        $ball = $wuiWidget->mThemeHandler->mStyle['greenball'];
        $checkResult = $gLocale->getStr('xml_available_label');
    } else {
        $ball = $wuiWidget->mThemeHandler->mStyle['redball'];
        $checkResult = $gLocale->getStr('xml_not_available_label');
    }
    $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label>
    <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image>
    <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('xml_test_label')) . '</label></args></label>
    <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>';
    // Zlib support
    //
    $row++;
    if (function_exists('gzinflate')) {
        $ball = $wuiWidget->mThemeHandler->mStyle['greenball'];
        $checkResult = $gLocale->getStr('zlib_available_label');
    } else {
        $ball = $wuiWidget->mThemeHandler->mStyle['redball'];
        $checkResult = $gLocale->getStr('zlib_not_available_label');
    }
    $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label>
    <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image>
    <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('zlib_test_label')) . '</label></args></label>
    <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>';
    // Database support
    //
    $row++;
    if (function_exists('mysqli_connect') or function_exists('pg_connect')) {
        $ball = $wuiWidget->mThemeHandler->mStyle['greenball'];
        $checkResult = $gLocale->getStr('db_available_label');
    } else {
        $ball = $wuiWidget->mThemeHandler->mStyle['redball'];
        $checkResult = $gLocale->getStr('db_not_available_label');
    }
    $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label>
    <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image>
        <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('db_test_label')) . '</label></args></label>
    <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>';
    // Optional features
    /*
    // Crontab
    //
    $row ++;
    
    if (strlen(\Innomatic\Core\InnomaticContainer::instance('\Innomatic\Core\InnomaticContainer')->getConfig()->value('RootCrontab'))) {
        $ball = $wuiWidget->mThemeHandler->mStyle['greenball'];
        $checkResult = $gLocale->getStr('crontab_available_label');
    } else {
        $ball = $wuiWidget->mThemeHandler->mStyle['goldball'];
        $checkResult = $gLocale->getStr('crontab_not_available_label');
    }
    
    $gXml_def .= '<label row="'.$row.'" col="0"><name>optional'.$row.'</name><args><label type="encoded">'
    .urlencode($gLocale->getStr('optional_label')).'</label></args></label>
    <image row="'.$row.'" col="1"><name>status'.$row.'</name><args><imageurl type="encoded">'
    .urlencode($ball).'</imageurl></args></image>
    <label row="'.$row.'" col="2"><name>shared'.$row.'</name><args><label type="encoded">'
    .urlencode($gLocale->getStr('crontab_test_label')).'</label></args></label>
    <label row="'.$row.'" col="3"><name>checkresult'.$row.'</name><args><label type="encoded">'
    .urlencode($checkResult).'</label></args></label>';
    */
    // XMLRPC auth
    //
    $row++;
    if (php_sapi_name() != 'cgi') {
        $ball = $wuiWidget->mThemeHandler->mStyle['greenball'];
        $checkResult = $gLocale->getStr('xmlrpc_available_label');
    } else {
        $ball = $wuiWidget->mThemeHandler->mStyle['goldball'];
        $checkResult = $gLocale->getStr('xmlrpc_not_available_label');
    }
    $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>optional' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('optional_label')) . '</label></args></label>
    <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image>
    <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('xmlrpc_test_label')) . '</label></args></label>
    <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>';
    // XMLRPC curl
    //
    $row++;
    if (function_exists('curl_init')) {
        $ball = $wuiWidget->mThemeHandler->mStyle['greenball'];
        $checkResult = $gLocale->getStr('xmlrpc_ssl_available_label');
    } else {
        $ball = $wuiWidget->mThemeHandler->mStyle['goldball'];
        $checkResult = $gLocale->getStr('xmlrpc_ssl_not_available_label');
    }
    $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>optional' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('optional_label')) . '</label></args></label>
    <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image>
    <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('xmlrpc_ssl_test_label')) . '</label></args></label>
    <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>';
    $gXmlDefinition .= '

              </children>
            </table>
          </children>
        </vertgroup>

    <vertgroup><name></name>
          <children>

            <label><name>tabtitle</name>
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('innomatic_settings.label')) . '</label>
                <bold>true</bold>
              </args>
            </label>

            <form><name>settings</name>
              <args>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'set_innomatic')))) . '</action>          </args>
              <children>
        <vertgroup>
          <children>
        <grid>
          <children>

            <label row="0" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('action_clean.label')) . '</label>
                <bold>true</bold>
              </args>
            </label>

            <label row="0" col="1">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('action_rotate.label')) . '</label>
                <bold>true</bold>
              </args>
            </label>

            <label row="0" col="2">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('action_none.label')) . '</label>
                <bold>true</bold>
              </args>
            </label>

            <radio row="1" col="0" halign="center"><name>rootlog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getCleanRootLog() ? 'true' : 'false') . '</checked>
                <value>clean</value>
              </args>
            </radio>

            <radio row="1" col="1" halign="center"><name>rootlog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getRotateRootLog() ? 'true' : 'false') . '</checked>
                <value>rotate</value>
              </args>
            </radio>

            <radio row="1" col="2" halign="center"><name>rootlog</name>
              <args>
                <disp>action</disp>
                <checked>' . (($logsMain->getCleanRootLog() or $logsMain->getRotateRootLog()) ? 'false' : 'true') . '</checked>
                <value>leave</value>
              </args>
            </radio>

            <label row="1" col="3">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('rootlog_size.label')) . '</label>
              </args>
            </label>

            <radio row="2" col="0" halign="center"><name>rootdalog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getCleanRootDbLog() ? 'true' : 'false') . '</checked>
                <value>clean</value>
              </args>
            </radio>

            <radio row="2" col="1" halign="center"><name>rootdalog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getRotateRootDbLog() ? 'true' : 'false') . '</checked>
                <value>rotate</value>
              </args>
            </radio>

            <radio row="2" col="2" halign="center"><name>rootdalog</name>
              <args>
                <disp>action</disp>
                <checked>' . (($logsMain->getCleanRootDbLog() or $logsMain->getRotateRootDbLog()) ? 'false' : 'true') . '</checked>
                <value>leave</value>
              </args>
            </radio>

            <label row="2" col="3">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('rootdalog_size.label')) . '</label>
              </args>
            </label>

            <radio row="3" col="0" halign="center"><name>accesslog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getCleanAccessLog() ? 'true' : 'false') . '</checked>
                <value>clean</value>
              </args>
            </radio>

            <radio row="3" col="1" halign="center"><name>accesslog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getRotateAccessLog() ? 'true' : 'false') . '</checked>
                <value>rotate</value>
              </args>
            </radio>

            <radio row="3" col="2" halign="center"><name>accesslog</name>
              <args>
                <disp>action</disp>
                <checked>' . (($logsMain->getCleanAccessLog() or $logsMain->getRotateAccessLog()) ? 'false' : 'true') . '</checked>
                <value>leave</value>
              </args>
            </radio>

            <label row="3" col="3">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('accesslog_size.label')) . '</label>
              </args>
            </label>

            <radio row="4" col="0" halign="center"><name>webserviceslog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getCleanWebServicesLog() ? 'true' : 'false') . '</checked>
                <value>clean</value>
              </args>
            </radio>

            <radio row="4" col="1" halign="center"><name>webserviceslog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getRotateWebServicesLog() ? 'true' : 'false') . '</checked>
                <value>rotate</value>
              </args>
            </radio>

            <radio row="4" col="2" halign="center"><name>webserviceslog</name>
              <args>
                <disp>action</disp>
                <checked>' . (($logsMain->getCleanWebServicesLog() or $logsMain->getRotateWebServicesLog()) ? 'false' : 'true') . '</checked>
                <value>leave</value>
              </args>
            </radio>

            <label row="4" col="3">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('webserviceslog_size.label')) . '</label>
              </args>
            </label>

            <radio row="5" col="0" halign="center"><name>phplog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getCleanPhpLog() ? 'true' : 'false') . '</checked>
                <value>clean</value>
              </args>
            </radio>

            <radio row="5" col="1" halign="center"><name>phplog</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getRotatePhpLog() ? 'true' : 'false') . '</checked>
                <value>rotate</value>
              </args>
            </radio>

            <radio row="5" col="2" halign="center"><name>phplog</name>
              <args>
                <disp>action</disp>
                <checked>' . (($logsMain->getCleanPhpLog() or $logsMain->getRotatePhpLog()) ? 'false' : 'true') . '</checked>
                <value>leave</value>
              </args>
            </radio>

            <label row="5" col="3">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('phplog_size.label')) . '</label>
              </args>
            </label>

            <radio row="6" col="0" halign="center"><name>domainslogs</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getCleanDomainsLogs() ? 'true' : 'false') . '</checked>
                <value>clean</value>
              </args>
            </radio>

            <radio row="6" col="1" halign="center"><name>domainslogs</name>
              <args>
                <disp>action</disp>
                <checked>' . ($logsMain->getRotateDomainsLogs() ? 'true' : 'false') . '</checked>
                <value>rotate</value>
              </args>
            </radio>

            <radio row="6" col="2" halign="center"><name>domainslogs</name>
              <args>
                <disp>action</disp>
                <checked>' . (($logsMain->getCleanDomainsLogs() or $logsMain->getRotateDomainsLogs()) ? 'false' : 'true') . '</checked>
                <value>leave</value>
              </args>
            </radio>

            <label row="6" col="3">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('domainslogs_size.label')) . '</label>
              </args>
            </label>

          </children>
        </grid>

        <horizbar/>

        <grid>
          <children>
            <checkbox row="0" col="0"><name>cache</name>
              <args>
                <disp>action</disp>
                <checked>' . ($cacheMain->getCleanCache() ? 'true' : 'false') . '</checked>
              </args>
            </checkbox>

            <label row="0" col="1">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('cache_size.label')) . '</label>
              </args>
            </label>

            <checkbox row="1" col="0"><name>sessions</name>
              <args>
                <disp>action</disp>
                <checked>' . ($cacheMain->getCleanSessions() ? 'true' : 'false') . '</checked>
              </args>
            </checkbox>

            <label row="1" col="1">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('sessions_size.label')) . '</label>
              </args>
            </label>

            <checkbox row="2" col="0"><name>pidfiles</name>
              <args>
                <disp>action</disp>
                <checked>' . ($cacheMain->getCleanPidFiles() ? 'true' : 'false') . '</checked>
              </args>
            </checkbox>

            <label row="2" col="1">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('pidfiles_size.label')) . '</label>
              </args>
            </label>

            <checkbox row="3" col="0"><name>roottempdirs</name>
              <args>
                <disp>action</disp>
                <checked>' . ($cacheMain->getCleanRootTempDirs() ? 'true' : 'false') . '</checked>
              </args>
            </checkbox>

            <label row="3" col="1">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('tempdirs_size.label')) . '</label>
              </args>
            </label>

            <checkbox row="4" col="0"><name>clipboard</name>
              <args>
                <disp>action</disp>
                <checked>' . ($cacheMain->getCleanClipboard() ? 'true' : 'false') . '</checked>
              </args>
            </checkbox>

            <label row="4" col="1">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('clipboard_size.label')) . '</label>
              </args>
            </label>

          </children>
        </grid>

          </children>
        </vertgroup>

              </children>
            </form>

            <horizbar/>

            <button>
              <args>
                <themeimage>buttonok</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('apply.button')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <formsubmit>settings</formsubmit>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'set_innomatic')))) . '</action>
              </args>
            </button>

          </children>
        </vertgroup>

      </children>
    </tab>';
    $gPageTitle .= ' - ' . $gLocale->getStr('innomatic.title');
}
Esempio n. 6
0
function main_stats($eventData)
{
    global $gPage_title, $gPage_content, $gLocale;
    $stats_ok = false;
    require_once 'innomatic/locale/LocaleCountry.php';
    $locale_country = new LocaleCountry(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getCountry());
    if (isset($eventData['statsfrom']) and isset($eventData['statsto'])) {
        //$stats_ok = true;
        $from_date = $locale_country->GetDateArrayFromShortDateStamp($eventData['statsfrom']);
        $from_ts = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->GetTimestampFromDateArray($from_date);
        $from_secs = mktime(0, 0, 0, $from_date['mon'], $from_date['mday'], $from_date['year']);
        $to_date = $locale_country->GetDateArrayFromShortDateStamp($eventData['statsto']);
        $to_date['hours'] = 23;
        $to_date['minutes'] = 59;
        $to_date['seconds'] = 59;
        $to_ts = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->GetTimestampFromDateArray($to_date);
        $to_secs = mktime(23, 59, 59, $to_date['mon'], $to_date['mday'], $to_date['year']);
        $stats_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->execute('SELECT * ' . 'FROM innowork_core_itemslog ' . 'WHERE eventtime>=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($from_ts) . ' ' . 'AND eventtime<=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($to_ts));
        $users_stats_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->execute('SELECT username,count(username) AS count ' . 'FROM innowork_core_itemslog ' . 'WHERE eventtime>=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($from_ts) . ' ' . 'AND eventtime<=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($to_ts) . ' ' . 'GROUP BY username');
        $stats_data = $_stats_data = array();
        while (!$stats_query->eof) {
            $tmp_date = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->GetDateArrayFromTimestamp($stats_query->getFields('eventtime'));
            if (!isset($_stats_data[$tmp_date['year'] . $tmp_date['mon'] . $tmp_date['mday']])) {
                $_stats_data[$tmp_date['year'] . $tmp_date['mon'] . $tmp_date['mday']]['changes'] = 1;
            } else {
                $_stats_data[$tmp_date['year'] . $tmp_date['mon'] . $tmp_date['mday']]['changes']++;
            }
            $_stats_data[$tmp_date['year'] . $tmp_date['mon'] . $tmp_date['mday']]['day'] = $tmp_date['mday'];
            $stats_query->MoveNext();
        }
        for ($i = $from_secs; $i <= $to_secs; $i += 60 * 60 * 24) {
            $tmp_date_array = $locale_country->GetDateArrayFromUnixTimestamp($i);
            if (!isset($_stats_data[$tmp_date_array['year'] . $tmp_date_array['mon'] . $tmp_date_array['mday']])) {
                $_stats_data[$tmp_date_array['year'] . $tmp_date_array['mon'] . $tmp_date_array['mday']]['changes'] = 0;
                $_stats_data[$tmp_date_array['year'] . $tmp_date_array['mon'] . $tmp_date_array['mday']]['day'] = $tmp_date_array['mday'];
            }
        }
        ksort($_stats_data);
        $x_array = $y_array = array();
        $cont = 1;
        foreach ($_stats_data as $id => $value) {
            $x_array[] = $cont++;
            $y_array[] = $value['changes'];
        }
        reset($_stats_data);
        require_once 'phplot/PHPlot.php';
        $regression_data = phplot_regression($x_array, $y_array);
        $cont = 0;
        foreach ($_stats_data as $value) {
            $stats_data[] = array($value['day'], $value['changes'], $regression_data[$cont++][2]);
        }
        $users_stats_data = array();
        while (!$users_stats_query->eof) {
            if (strpos($users_stats_query->getFields('username'), '@')) {
                $username = substr($users_stats_query->getFields('username'), 0, strpos($users_stats_query->getFields('username'), '@'));
            } else {
                $username = $users_stats_query->getFields('username');
            }
            $users_stats_data[] = array(ucfirst($username), $users_stats_query->getFields('count'));
            $users_stats_query->MoveNext();
        }
        $stats_ok = true;
    } else {
        $from_date = $locale_country->getDateArrayFromSafeTimestamp($locale_country->SafeFormatTimestamp(time() - 60 * 60 * 24 * 30));
        $to_date = $locale_country->getDateArrayFromSafeTimestamp($locale_country->SafeFormatTimestamp());
    }
    require_once 'innomatic/wui/dispatch/WuiEventsCall.php';
    $xml_def = '
    <vertgroup>
      <children>

        <form><name>stats</name>
          <args>
                    <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'stats')))) . '</action>
          </args>
          <children>

            <horizgroup>
              <args>
                <align>middle</align>
              </args>
              <children>

                <label>
                  <args>
                    <label type="encoded">' . urlencode($gLocale->getStr('stats_from.label')) . '</label>
                  </args>
                </label>

                <date><name>statsfrom</name>
                  <args>
                    <disp>view</disp>
                    <value type="array">' . WuiXml::encode($from_date) . '</value>
                  </args>
                </date>

                <label>
                  <args>
                    <label type="encoded">' . urlencode($gLocale->getStr('stats_to.label')) . '</label>
                  </args>
                </label>

                <date><name>statsto</name>
                  <args>
                    <disp>view</disp>
                    <value type="array">' . WuiXml::encode($to_date) . '</value>
                  </args>
                </date>

                <button>
                  <args>
                    <themeimage>buttonok</themeimage>
                    <horiz>true</horiz>
                    <label type="encoded">' . urlencode($gLocale->getStr('get_stats.button')) . '</label>
                    <formsubmit>stats</formsubmit>
                    <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'stats')))) . '</action>
                  </args>
                </button>

              </children>
            </horizgroup>

          </children>
        </form>';
    if ($stats_ok) {
        $legend = array($gLocale->getStr('activites_legend.label'), $gLocale->getStr('trend_legend.label'));
        $xml_def .= '<horizbar/>

        <phplot>
          <args>
            <data type="array">' . WuiXml::encode($stats_data) . '</data>
            <width>600</width>
            <height>350</height>
            <title type="encoded">' . urlencode($gLocale->getStr('statistics.title')) . '</title>
            <legend type="array">' . WuiXml::encode($legend) . '</legend>
            <pointsize>1</pointsize>
          </args>
        </phplot>

        <phplot>
          <args>
            <data type="array">' . WuiXml::encode($users_stats_data) . '</data>
            <width>600</width>
            <height>350</height>
            <title type="encoded">' . urlencode($gLocale->getStr('statistics_users.title')) . '</title>
            <plottype>bars</plottype>
            <pointsize>1</pointsize>
          </args>
        </phplot>';
    }
    $xml_def .= '  </children>
    </vertgroup>';
    $gPage_content = new WuiXml('page', array('definition' => $xml_def));
    $gPage_title = $gLocale->getStr('statistics.title');
}
function main_keyring($eventData)
{
    global $gXmlDefinition, $gLocale, $gPageTitle, $gStatus;
    $query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->Execute('SELECT * ' . 'FROM applications_keyring_keys ' . 'ORDER BY application,version,domain');
    $gXmlDefinition .= '<vertgroup><name>vg</name><children>';
    if ($query->getNumberRows()) {
        $headers[0]['label'] = $gLocale->getStr('application.header');
        $headers[1]['label'] = $gLocale->getStr('version.header');
        $headers[2]['label'] = $gLocale->getStr('domain.header');
        $headers[3]['label'] = $gLocale->getStr('maxdomainusers.header');
        $headers[4]['label'] = $gLocale->getStr('validip.header');
        $headers[5]['label'] = $gLocale->getStr('validrange.header');
        $headers[6]['label'] = $gLocale->getStr('expirydate.header');
        $gXmlDefinition .= '<table>
  <args>
    <headers type="array">' . WuiXml::encode($headers) . '</headers>
    <rowsperpage>20</rowsperpage>
    <pagesactionfunction>keys_page_action_builder</pagesactionfunction>
    <pagenumber>' . (isset($eventData['page']) ? $eventData['page'] : '') . '</pagenumber>
  </args>
  <children>';
        $row = 0;
        while (!$query->eof) {
            $toolbars = '<button>
                    <args>
              <label>' . WuiXml::cdata($gLocale->getStr('removekey.button')) . '</label>
        <themeimage>trash</themeimage>
        <horiz>true</horiz>
                <needconfirm>true</needconfirm>
                    <confirmmessage>' . WuiXml::cdata($gLocale->getStr('remove_key.confirm')) . '</confirmmessage>
        <action>' . WuiXml::cdata(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'keyring'), array('action', 'removekey', array('id' => $query->getFields('id')))))) . '</action>
                  </args>
                </button>';
            $gXmlDefinition .= '<label row="' . $row . '" col="0">
  <args>
    <label type="encoded">' . urlencode($query->getFields('application')) . '</label>
  </args>
</label>
<label row="' . $row . '" col="1">
  <args>
    <label type="encoded">' . urlencode($query->getFields('version')) . '</label>
  </args>
</label>
<label row="' . $row . '" col="2">
  <args>
    <label type="encoded">' . urlencode($query->getFields('domain')) . '</label>
  </args>
</label>
<label row="' . $row . '" col="3">
  <args>
    <label type="encoded">' . urlencode($query->getFields('maxdomainusers')) . '</label>
  </args>
</label>
<label row="' . $row . '" col="4">
  <args>
    <label type="encoded">' . urlencode($query->getFields('validip')) . '</label>
  </args>
</label>
<label row="' . $row . '" col="5">
  <args>
    <label type="encoded">' . urlencode($query->getFields('validrange')) . '</label>
  </args>
</label>
<label row="' . $row . '" col="6">
  <args>
    <label type="encoded">' . urlencode($query->getFields('expirydate')) . '</label>
  </args>
</label>
<horizgroup row="' . $row . '" col="7">
    <children>' . $toolbars . '</children>
</horizgroup>';
            $query->moveNext();
            $row++;
        }
        $gXmlDefinition .= '  </children>
</table>

<horizbar><name>hb</name></horizbar>';
    } else {
        if (!strlen($gStatus)) {
            $gStatus = $gLocale->getStr('nokeys.status');
        }
    }
    $gXmlDefinition .= '<vertgroup>
  <children>

    <form><name>newkey</name>
      <args>
        <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'keyring'), array('action', 'newkey')))) . '</action>
      </args>
      <children>

        <grid>
          <children>

            <label row="0" col="0">
              <args>
                <label type="encoded">' . urlencode($gLocale->getStr('key.label')) . '</label>
              </args>
            </label>

            <file row="0" col="1"><name>key</name>
              <args>
                <disp>action</disp>
              </args>
            </file>

    <button row="0" col="2">
      <args>
        <horiz>true</horiz>
        <frame>false</frame>
        <themeimage>mathadd</themeimage>
        <formsubmit>newkey</formsubmit>
        <label type="encoded">' . urlencode($gLocale->getStr('newkey.submit')) . '</label>
        <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'keyring'), array('action', 'newkey')))) . '</action>
      </args>
    </button>

          </children>
        </grid>

      </children>
    </form>

  </children>
</vertgroup>';
    $gXmlDefinition .= '</children></vertgroup>';
    $gPageTitle .= ' - ' . $gLocale->getStr('keys.title');
}
 public function viewDefault($eventData)
 {
     $def_width = 380;
     $def_height = 250;
     $widgets = $this->getController()->getWidgetsList();
     $widget_counter = 0;
     $columns = 3;
     $start_column = true;
     $end_column = false;
     $rows_per_column = floor(count($widgets) / $columns) + (count($widgets) % $columns > 0 ? 1 : 0);
     $wui_xml = '<horizgroup><children>';
     foreach ($widgets as $widget) {
         $width = 0;
         $height = 0;
         $class = $widget['class'];
         // Check if the class exists
         if (class_exists($class, true)) {
             // Fetch the widget xml definition
             $widget_obj = new $class();
             // Check if the widget is visible
             if (!$widget_obj->isVisible()) {
                 continue;
             }
             $width = $widget_obj->getWidth() * $def_width;
             $height = $widget_obj->getHeight();
         } else {
             continue;
         }
         // If this is the start of a column, add the vertical group opener
         if ($start_column) {
             $wui_xml .= '<vertgroup><children>';
             $start_column = false;
         }
         // Add ajax setup call
         \Innomatic\Wui\Wui::instance('\\Innomatic\\Wui\\Wui')->registerAjaxSetupCall('xajax_GetDashboardWidget(\'' . $widget['name'] . '\')');
         // Check width and height parameters
         if ($width == 0) {
             $width = $def_width;
         }
         if ($height == 0) {
             $height = $def_height;
         }
         // Widget title
         $widget_locale = new LocaleCatalog($widget['catalog'], $this->container->getCurrentUser()->getLanguage());
         $headers = array();
         $headers[0]['label'] = $widget_locale->getStr($widget['title']);
         // Draw the widget
         $wui_xml .= '<table halign="left" valign="top"><args><headers type="array">' . WuiXml::encode($headers) . '</headers></args><children><vertgroup row="0" col="0" halign="left" valign="top"><args><width>' . $width . '</width><height>' . $height . '</height><groupvalign>top</groupvalign></args><children><divframe><args><id>widget_' . $widget['name'] . '</id><width>300</width></args><children><void/></children></divframe></children></vertgroup></children></table>';
         $widget_counter++;
         // Check if this last widget for each column
         if ($widget_counter % $rows_per_column == 0) {
             $end_column = true;
         }
         // If this is the last widget, end the column anyway
         if ($widget_counter == count($widgets)) {
             $end_column = true;
         }
         // If this the end of a column, close the vertical group
         if ($end_column) {
             $wui_xml .= '</children></vertgroup>';
             $start_column = true;
             $end_column = false;
         }
     }
     $wui_xml .= '</children></horizgroup>';
     $this->wuiMainframe->addChild(new WuiXml('', array('definition' => $wui_xml)));
 }
 public static function ajaxSaveRolesPermissions($permissions)
 {
     // Build list of checked roles/permissions
     $permissions = explode(',', $permissions);
     $checkedPermissions = array();
     foreach ($permissions as $id => $permission) {
         $permission = str_replace('cbrole_', '', $permission);
         list($roleId, $permissionId) = explode('-', $permission);
         $checkedPermissions[$roleId][$permissionId] = true;
     }
     // Get list of all roles and permissions
     $rolesList = \Innomatic\Domain\User\Role::getAllRoles();
     $permissionsList = \Innomatic\Domain\User\Permission::getAllPermissions();
     // Check which permissions have been checked
     foreach ($rolesList as $roleId => $roleData) {
         $role = new \Innomatic\Domain\User\Role($roleId);
         foreach ($permissionsList as $permissionId => $permissionData) {
             if (isset($checkedPermissions[$roleId][$permissionId])) {
                 $role->assignPermission($permissionId);
             } else {
                 $role->unassignPermission($permissionId);
             }
         }
     }
     $html = WuiXml::getContentFromXml('', \ProfilesPanelController::getRolesPermissionsXml());
     $objResponse = new XajaxResponse();
     $objResponse->addAssign("roleslist", "innerHTML", $html);
     return $objResponse;
 }
 function _FillDefinition()
 {
     $result = true;
     require_once 'innomatic/locale/LocaleCatalog.php';
     require_once 'innomatic/locale/LocaleCountry.php';
     $row = 0;
     $this->mDefinition = '
                 <vertgroup><name>searchresult</name><children>';
     while (list($type, $results) = each($this->mSearchResult)) {
         if (count($results)) {
             $tmp_locale = new LocaleCatalog($this->mSummaries[$type]['catalog'], \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage());
             /*
                             $itemtype_call = new WuiEventsCall( $val['domainpanel'] );
                             $itemtype_call->addEvent( new WuiEvent( 'view', 'default', '' ) );
                     <button>
                       <name>itemtypeimage</name>
                       <args><themeimage>'.$val['icon'].'</themeimage><themeimagetype>'.$val['icontype'].'</themeimagetype><action>'.$itemtype_call->getEventsCallString().'</action></args>
                     </button>
             */
             $this->mDefinition .= '<button><name>type</name>
                                   <args>
                                     <themeimage>' . $this->mSummaries[$type]['icon'] . '</themeimage>
                                     <themeimagetype>' . $this->mSummaries[$type]['icontype'] . '</themeimagetype>
                                     <action>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString($this->mSummaries[$type]['domainpanel'], array(array('view', 'default', '')))) . '</action>
                                     <label type="encoded">' . WuiXml::cdata(urlencode($this->mSummaries[$type]['label'])) . '</label>
                                     <horiz>true</horiz>
                                   </args>
                                 </button>';
             $headers = array();
             $header_count = 1;
             $locale_country = new LocaleCountry(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getCountry());
             while (list(, $keyname) = each($this->mSummaries[$type]['viewablesearchresultkeys'])) {
                 $headers[$header_count++]['label'] = $tmp_locale->getStr($keyname);
             }
             $this->mDefinition .= '<table><name>searchresult</name><args><headers type="array">' . WuiXml::encode($headers) . '</headers></args><children>';
             $row = 0;
             //$col = 1;
             while (list($id, $result) = each($results)) {
                 $col = 1;
                 switch ($result['_acl']['type']) {
                     case InnoworkAcl::TYPE_PRIVATE:
                         $image = 'user';
                         break;
                     case InnoworkAcl::TYPE_PUBLIC:
                     case InnoworkAcl::TYPE_ACL:
                         $image = 'useradd';
                         break;
                 }
                 $this->mDefinition .= '<button row="' . $row . '" col="0"><name>acl</name>
                                           <args>
                                             <themeimage>' . $image . '</themeimage>
                                             <themeimagetype>mini</themeimagetype>
                                             <compact>true</compact>
                                             <action>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString($this->mSummaries[$type]['domainpanel'], array(array($this->mSummaries[$type]['showdispatcher'], $this->mSummaries[$type]['showevent'], array('id' => $result['id']))))) . '</action>
                                           </args>
                                         </button>';
                 foreach ($this->mSummaries[$type]['viewablesearchresultkeys'] as $key) {
                     $value = $result[$key];
                     if ($col == 1) {
                         $this->mDefinition .= '<link row="' . $row . '" col="' . $col . '"><name>key</name>
                                                           <args>
                                                             <compact>true</compact>
                                                             <link>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString($this->mSummaries[$type]['domainpanel'], array(array($this->mSummaries[$type]['showdispatcher'], $this->mSummaries[$type]['showevent'], array('id' => $result['id']))))) . '</link>
                                                             <label type="encoded">' . WuiXml::cdata(strlen($value) > 35 ? urlencode(substr($value, 0, 32)) . '...' : urlencode($value)) . '</label>
                                                             <title type="encoded">' . WuiXml::cdata(urlencode(str_replace('"', '', $value))) . '</title>
                                                           </args>
                                                         </link>';
                     } else {
                         $key_type = explode(':', $this->mSummaries[$type]['keys'][$key]);
                         switch ($key_type[0]) {
                             case 'text':
                                 $value = strlen($value) > 35 ? substr($value, 0, 32) . '...' : $value;
                                 break;
                             case 'timestamp':
                                 $value = $locale_country->FormatShortArrayDate(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->GetDateArrayFromTimestamp($value));
                                 break;
                             case 'boolean':
                                 if ($value == \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->fmttrue) {
                                     $value = 'true';
                                 } else {
                                     $value = 'false';
                                 }
                                 break;
                             case 'table':
                                 if (strlen($value)) {
                                     $tmp_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->execute('SELECT ' . $key_type[2] . ' FROM ' . $key_type[1] . ' WHERE id=' . $value);
                                     if ($tmp_query->getNumberRows()) {
                                         $value = $tmp_query->getFields($key_type[2]);
                                     } else {
                                         $value = '';
                                     }
                                     $tmp_query->Free();
                                 } else {
                                     $value = '';
                                 }
                                 break;
                             case 'userid':
                                 if (strlen($value)) {
                                     $tmp_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->execute('SELECT id,username,fname,lname FROM domain_users WHERE id=' . $value);
                                     if ($tmp_query->getNumberRows()) {
                                         $value = $tmp_query->getFields('fname') . ' ' . $tmp_query->getFields('lname');
                                     } else {
                                         $value = '';
                                     }
                                     $tmp_query->Free();
                                 } else {
                                     $value = '';
                                 }
                                 break;
                             default:
                                 break;
                         }
                         $this->mDefinition .= '<label row="' . $row . '" col="' . $col . '"><name>key</name>
                                                           <args>
                                                             <compact>true</compact>
                         									<nowrap>false</nowrap>
                                                             <label type="encoded">' . WuiXml::cdata(urlencode($value)) . '</label>
                                                           </args>
                                                         </label>';
                     }
                     $col++;
                 }
                 if ($this->mTrashcan == 'true') {
                     $locale = new LocaleCatalog('innowork-core::misc', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage());
                     $this->mDefinition .= '<button row="' . $row . '" col="' . $col . '"><name>restore</name>
                                                   <args>
                                                     <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('restore.button'))) . '</label>
                                                     <horiz>true</horiz>
                                                     <frame>false</frame>
                                                     <themeimagetype>mini</themeimagetype>
                                                     <themeimage>undo</themeimage>
                                                              <action>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString('1innoworkcore', array(array('view', 'trashcan'), array('action', 'restore_item', array('itemtype' => $type, 'itemid' => $result['id']))))) . '</action>
                                                   </args>
                                                 </button>';
                 }
                 if ($this->mClipping == 'true' and $this->mClippingId) {
                     $locale = new LocaleCatalog('innowork-core::misc', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage());
                     $this->mDefinition .= '<button row="' . $row . '" col="' . $col . '"><name>remove</name>
                                                   <args>
                                                     <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('remove_from_clipping.button'))) . '</label>
                                                     <horiz>true</horiz>
                                                     <frame>false</frame>
                                                     <themeimagetype>mini</themeimagetype>
                                                     <themeimage>editdelete</themeimage>
                                                              <action>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString('innoworkclippings', array(array('view', 'showclipping', array('id' => $this->mClippingId)), array('action', 'remove_item', array('id' => $this->mClippingId, 'itemtype' => $type, 'itemid' => $result['id']))))) . '</action>
                                                   </args>
                                                 </button>';
                 }
                 $row++;
             }
             $this->mDefinition .= '</children></table>';
         }
     }
     $this->mDefinition .= '</children></vertgroup>';
     return $result;
 }
Esempio n. 11
0
function main_default($eventData)
{
    global $wuiMainFrame, $wuiTitleBar, $innomaticLocale, $actionDispatcher, $wuiMainStatus, $wuiComments, $compressedOb;
    $appCfg = new \Innomatic\Application\ApplicationSettings('innomatic');
    $themesQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT name,catalog FROM wui_themes ');
    while (!$themesQuery->eof) {
        $tmpLocale = new \Innomatic\Locale\LocaleCatalog($themesQuery->getFields('catalog'), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getLanguage());
        $elements[$themesQuery->getFields('name')] = $tmpLocale->getStr($themesQuery->getFields('name'));
        $themesQuery->moveNext();
    }
    asort($elements);
    $themesXmlDef = '<vertgroup><name>vgroup</name><args><halign>center</halign></args><children>
        <form><name>theme</name><args><action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'default', ''), array('action', 'settheme', '')))) . '</action></args><children>
        <grid><name>themegrid</name><children>
            <label row="0" col="0"><name>themelabel</name><args><label type="encoded">' . urlencode($innomaticLocale->getStr('themes_label')) . '</label><bold>true</bold></args></label>
            <listbox row="1" col="0"><name>theme</name><args><elements type="array">' . WuiXml::encode($elements) . '</elements><default>' . \Innomatic\Wui\Wui::instance('\\Innomatic\\Wui\\Wui')->getThemeName() . '</default><disp>action</disp><size>10</size></args></listbox>
        </children></grid>
        <submit><name>submit</name><args><caption type="encoded">' . urlencode($innomaticLocale->getStr('settheme_submit')) . '</caption></args></submit>
      </children></form>
    </children></vertgroup>';
    // Service provider settings
    // Service Provider
    //
    $serviceProviderFrame = new WuiVertframe('serviceproviderframe');
    $serviceProviderVGroup = new WuiVertgroup('serviceprovidervgroup', array('width' => '100%'));
    $serviceProviderVGroup->addChild(new WuiLabel('serviceproviderlabel', array('label' => $innomaticLocale->getStr('serviceproviderframe_label'), 'bold' => 'true')));
    $serviceProviderGrid = new WuiGrid('serviceprovidergrid', array('rows' => '4', 'cols' => '2'));
    // Service Provider name
    //
    $serviceProviderGrid->addChild(new WuiLabel('serviceprovidername_label', array('label' => $innomaticLocale->getStr('serviceprovidername_label'))), 0, 0);
    $serviceProviderGrid->addChild(new WuiString('serviceprovidername', array('disp' => 'action', 'size' => '30', 'value' => $appCfg->getKey('serviceprovider-name'))), 0, 1);
    // Service Provider url
    //
    $serviceProviderGrid->addChild(new WuiLabel('serviceproviderurl_label', array('label' => $innomaticLocale->getStr('serviceproviderurl_label'))), 1, 0);
    $serviceProviderGrid->addChild(new WuiString('serviceproviderurl', array('disp' => 'action', 'size' => '30', 'value' => $appCfg->getKey('serviceprovider-url'))), 1, 1);
    // Service Provider big logo
    //
    $serviceProviderGrid->addChild(new WuiLabel('serviceproviderbiglogo_label', array('label' => $innomaticLocale->getStr('serviceproviderbiglogo_label'))), 2, 0);
    $serviceProviderGrid->addChild(new WuiFile('serviceproviderbiglogo', array('disp' => 'action')), 2, 1);
    // Service Provider link logo
    //
    $serviceProviderGrid->addChild(new WuiLabel('serviceproviderlogo_label', array('label' => $innomaticLocale->getStr('serviceproviderlogo_label'))), 3, 0);
    $serviceProviderGrid->addChild(new WuiFile('serviceproviderlinklogo', array('disp' => 'action')), 3, 1);
    $serviceProviderVGroup->addChild($serviceProviderGrid);
    $serviceProviderVGroup->addChild(new WuiSubmit('serviceprovidersubmit', array('caption' => $innomaticLocale->getStr('serviceprovider_submit'))));
    $formEventsCall = new \Innomatic\Wui\Dispatch\WuiEventsCall();
    $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('action', 'setserviceprovider', ''));
    $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', ''));
    $serviceProviderForm = new WuiForm('setserviceproviderform', array('action' => $formEventsCall->getEventsCallString()));
    $serviceProviderForm->addChild($serviceProviderVGroup);
    // Enabled icons
    //
    $enableVGroup = new WuiVertgroup('enablevgroup', array('width' => '100%'));
    $enableVGroup->addChild(new WuiLabel('enablelabel', array('label' => $innomaticLocale->getStr('enabled_icons_label'), 'bold' => 'true')));
    $enableGrid = new WuiGrid('enablegrid', array('rows' => '5', 'cols' => '2'));
    // Innomatic site link
    //
    $enableGrid->addChild(new WuiLabel('innomaticlabel', array('label' => $innomaticLocale->getStr('innomatic_link_enabled_label'))), 0, 1);
    $enableGrid->addChild(new WuiCheckBox('innomaticicon', array('disp' => 'action', 'checked' => $appCfg->getKey('innomatic-link-disabled') ? 'false' : 'true')), 0, 0);
    // Service Provider link
    //
    $enableGrid->addChild(new WuiLabel('serviceprovidericonlabel', array('label' => $innomaticLocale->getStr('serviceprovider_link_enabled_label'))), 1, 1);
    $enableGrid->addChild(new WuiCheckBox('serviceprovidericon', array('disp' => 'action', 'checked' => $appCfg->getKey('serviceprovider-link-disabled') ? 'false' : 'true')), 1, 0);
    // Innomatic big logo
    //
    $enableGrid->addChild(new WuiLabel('innomaticbigiconlabel', array('label' => $innomaticLocale->getStr('innomatic_biglogo_enabled_label'))), 2, 1);
    $enableGrid->addChild(new WuiCheckBox('innomaticbigicon', array('disp' => 'action', 'checked' => $appCfg->getKey('innomatic-biglogo-disabled') ? 'false' : 'true')), 2, 0);
    // Service Provider logo
    //
    $enableGrid->addChild(new WuiLabel('serviceprovidericonlabel', array('label' => $innomaticLocale->getStr('serviceprovider_biglogo_enabled_label'))), 3, 1);
    $enableGrid->addChild(new WuiCheckBox('serviceproviderbigicon', array('disp' => 'action', 'checked' => $appCfg->getKey('serviceprovider-biglogo-disabled') ? 'false' : 'true')), 3, 0);
    $enableVGroup->addChild($enableGrid);
    $enableVGroup->addChild(new WuiSubmit('enablesubmit', array('caption' => $innomaticLocale->getStr('enable_submit'))));
    $formEventsCall = new \Innomatic\Wui\Dispatch\WuiEventsCall();
    $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('action', 'setenabledicons', ''));
    $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', ''));
    $enableForm = new WuiForm('setenableform', array('action' => $formEventsCall->getEventsCallString()));
    $enableForm->addChild($enableVGroup);
    // Advanced settings
    //
    $advancedVGroup = new WuiVertgroup('enablevgroup', array('width' => '100%'));
    $advancedVGroup->addChild(new WuiLabel('enablelabel', array('label' => $innomaticLocale->getStr('advancedsettings_label'), 'bold' => 'true')));
    $advancedGrid = new WuiGrid('enablegrid', array('rows' => '2', 'cols' => '2'));
    // Compressed output buffering
    //
    $advancedGrid->addChild(new WuiLabel('compressed-ob-label', array('label' => $innomaticLocale->getStr('compressed-ob_label'))), 0, 1);
    if (!strlen($compressedOb)) {
        if (\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getConfig()->value('CompressedOutputBuffering') == '1') {
            $compressedOb = 'true';
        } else {
            $compressedOb = 'false';
        }
    }
    $advancedGrid->addChild(new WuiCheckBox('compressed-ob', array('disp' => 'action', 'checked' => $compressedOb)), 0, 0);
    // WUI code comments
    //
    $advancedGrid->addChild(new WuiLabel('wui-comments-label', array('label' => $innomaticLocale->getStr('wui-comments_label'))), 1, 1);
    if (!strlen($wuiComments)) {
        if (\Innomatic\Wui\Wui::showSourceComments()) {
            $wuiComments = 'true';
        } else {
            $wuiComments = 'false';
        }
    }
    $advancedGrid->addChild(new WuiCheckBox('wui-comments', array('disp' => 'action', 'checked' => $wuiComments)), 1, 0);
    $advancedVGroup->addChild($advancedGrid);
    $advancedVGroup->addChild(new WuiSubmit('enablesubmit', array('caption' => $innomaticLocale->getStr('advanced_submit'))));
    $formEventsCall = new \Innomatic\Wui\Dispatch\WuiEventsCall();
    $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('action', 'setadvanced', ''));
    $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', ''));
    $advancedForm = new WuiForm('setenableform', array('action' => $formEventsCall->getEventsCallString()));
    $advancedForm->addChild($advancedVGroup);
    $tabHeaders[0]['label'] = $innomaticLocale->getStr('themes_title');
    $tabHeaders[1]['label'] = $innomaticLocale->getStr('serviceproviderframe_label');
    $tabHeaders[2]['label'] = $innomaticLocale->getStr('enabled_icons_label');
    $tabHeaders[3]['label'] = $innomaticLocale->getStr('advancedsettings_label');
    $tab = new WuiTab('interface', array('tabactionfunction' => 'interface_tab_action_builder', 'activetab' => isset($eventData['activetab']) ? $eventData['activetab'] : '', 'tabs' => $tabHeaders));
    $tab->addChild(new WuiXml('page', array('definition' => $themesXmlDef)));
    $tab->addChild($serviceProviderForm);
    $tab->addChild($enableForm);
    $tab->addChild($advancedForm);
    $wuiMainFrame->addChild($tab);
    $wuiTitleBar->mTitle .= ' - ' . $innomaticLocale->getStr('default_title');
}
 public function viewdefault($eventData)
 {
     //$app_cfg = new ApplicationSettings(
     //    'innomatic' );
     $themesQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT name,catalog FROM wui_themes');
     while (!$themesQuery->eof) {
         $tmpLocale = new LocaleCatalog($themesQuery->getFields('catalog'), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getLanguage());
         $elements[$themesQuery->getFields('name')] = $tmpLocale->getStr($themesQuery->getFields('name'));
         $themesQuery->moveNext();
     }
     asort($elements);
     $xmlDef = '<vertgroup><name>vgroup</name><args><halign>center</halign></args><children>
 <form><name>theme</name><args><action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', ''), array('action', 'settheme', '')))) . '</action></args><children>
     <grid><name>themegrid</name><children>
       <label row="0" col="0"><name>themelabel</name><args><label type="encoded">' . urlencode($this->localeCatalog->getStr('themes_label')) . '</label><bold>true</bold></args></label>
       <listbox row="1" col="0"><name>theme</name><args><elements type="array">' . WuiXml::encode($elements) . '</elements><default>' . \Innomatic\Wui\Wui::instance('\\Innomatic\\Wui\\Wui')->getThemeName() . '</default><disp>action</disp><size>10</size></args></listbox>
     </children></grid>
     <submit><name>submit</name><args><caption type="encoded">' . urlencode($this->localeCatalog->getStr('settheme_submit')) . '</caption></args></submit>
   </children></form>
 </children></vertgroup>';
     $this->wuiMainframe->addChild(new WuiXml('page', array('definition' => $xmlDef)));
     $this->wuiTitlebar->mArgs['title'] .= ' - ' . $this->localeCatalog->getStr('themes_title');
 }
Esempio n. 13
0
function main_change_password($eventData)
{
    global $gXmlDefinition, $gLocale, $gPageTitle;
    global $wuiMainFrame;
    $gXmlDefinition = '            <table><name>alerts</name>
              <args>
                <headers type="array">' . WuiXml::encode(array(0 => array('label' => $gLocale->getStr('password_title')))) . '</headers>
              </args>
              <children>
    <form row="0" col="0">
    <name>password</name>
                  <args>
                    <method>post</method>
                    <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'change_password', ''), array('action', 'change_password', '')))) . '</action>
                  </args>
    <children>
    <grid>
        <name></name>
        <args>
            <rows>3</rows>
            <cols>2</cols>
        </args>
        <children>
            <label row="0" col="0">
                  <name />
                  <args>
                      <label type="encoded">' . urlencode($gLocale->getStr('rootpasswordold_label')) . '</label>
                  </args>
            </label>
            <string row="0" col="1">
                <name>oldpassword</name>
                <args>
                    <disp>action</disp>
                    <password>true</password>
                </args>
            </string>
            <label row="1" col="0">
                  <name />
                  <args>
                      <label type="encoded">' . urlencode($gLocale->getStr('rootpasswordold_label')) . '</label>
                  </args>
            </label>
            <string row="1" col="1">
                <name>newpassworda</name>
                <args>
                    <disp>action</disp>
                    <password>true</password>
                </args>
            </string>
            <label row="2" col="0">
                  <name />
                  <args>
                      <label type="encoded">' . urlencode($gLocale->getStr('rootpasswordold_label')) . '</label>
                  </args>
            </label>
            <string row="2" col="1">
                <name>newpasswordb</name>
                <args>
                    <disp>action</disp>
                    <password>true</password>
                </args>
            </string>
            </children>
    </grid>
    </children>
    </form>
                    <button row="1" col="0"><name>apply</name>
                  <args>
                    <horiz>true</horiz>
                    <frame>false</frame>
                    <label type="encoded">' . urlencode($gLocale->getStr('apply.submit')) . '</label>
                    <themeimage>buttonok</themeimage>
                    <formsubmit>password</formsubmit>
                    <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'change_password', ''), array('action', 'change_password', '')))) . '</action>
                  </args>
                </button>
    </children>
    </table>';
    $gPageTitle .= ' - ' . $gLocale->getStr('password_title');
}
    public function viewEditrole($eventData)
    {
        $role = new \Innomatic\Domain\User\Role((int) $eventData['id']);
        $formEventsCall = new WuiEventsCall();
        $formEventsCall->addEvent(new WuiEvent('action', 'editrole', array('id' => $eventData['id'])));
        $formEventsCall->addEvent(new WuiEvent('view', 'roles', ''));
        $xml = '<vertgroup><children>
            <form><name>roledata</name>
              <args>
                <action>' . WuiXml::cdata($formEventsCall->getEventsCallString()) . '</action>
              </args>
              <children>
              <vertgroup><children>
                <vertgroup><children>
                <grid>
                  <children>
                    <label row="0" col="0"><args><label>' . WuiXml::cdata($this->localeCatalog->getStr('rolename_label')) . '</label></args></label>
                    <string row="0" col="1"><name>name</name><args><disp>action</disp><value>' . WuiXml::cdata($role->getName()) . '</value><size>25</size></args></string>
                    <label row="1" col="0"><args><label>' . WuiXml::cdata($this->localeCatalog->getStr('roledescription_label')) . '</label></args></label>
                    <text row="1" col="1"><name>description</name><args><disp>action</disp><value>' . WuiXml::cdata($role->getDescription()) . '</value><rows>5</rows><cols>40</cols></args></text>

                  </children>
                </grid>
                </children></vertgroup>

                </children></vertgroup>
                <horizbar />

                <horizgroup><children>
                  <button><name>save</name>
	                <args>
                      <themeimage>buttonok</themeimage>
                      <label>' . WuiXml::cdata($this->localeCatalog->getStr('saverole_button')) . '</label>
                      <action>' . WuiXml::cdata($formEventsCall->getEventsCallString()) . '</action>
                      <formsubmit>roledata</formsubmit>
                      <horiz>true</horiz>
                      <frame>false</frame>
                    </args>
                  </button>
                </children></horizgroup>
              </children>
            </form>
            </children></vertgroup>';
        $this->wuiMainframe->addChild(new WuiXml('user', array('definition' => $xml)));
        $this->wuiTitlebar->mTitle .= ' - ' . $userData['username'] . ' - ' . $this->localeCatalog->getStr('edituser_title');
    }
Esempio n. 15
0
function main_default($eventData)
{
    global $gXml_def;
    $example_data = array(array("80", 0.0, 20, 4, 5, 6), array("81", 2.0, 30, 5, 6, 7), array("82", 3.0, 40, 5, 7, 8), array("83", 4.0, 50, 3, 6, 3), array("84", 4.4, 40, 3, 6, 5), array("85", 5.4, 40, 5, 6, 5), array("86", 5.5, 40, 7, 6, 5), array("87", 7, 35, 0.0, 0.0, ""), array("88", 7.4, 40, 14, 16, 25), array("89", 7.6, 40, 6, 6, 5), array("90", 8.199999999999999, 40, 3, 6, 5), array("91", 8.5, 40, 8, 6, 9), array("92", 9.300000000000001, 40, 5, 6, 5), array("93", 9.6, 40, 9, 6, 7), array("94", 9.9, 40, 2, 6, 5), array("95", 10.0, 40, 3, 6, 8), array("96", 10.4, 40, 3, 6, 5), array("97", 10.5, 40, 3, 6, 5), array("98", 10.8, 40, 3, 6, 5), array("99", 11.4, 40, 3, 6, 5), array("00", 12.0, 40, 3, 7, 5), array("01", 13.4, 40, 3, 5, 3), array("02", 14.0, 30, 3, 5, 6));
    $legend = array('Prodotto A', 'Prodotto B', 'Prodotto C', 'Prodotto D', 'Prodotto E');
    $gXml_def = '<vertgroup>
  <children>

    <label>
      <args>
        <label>Grafico</label>
      </args>
    </label>

    <vertframe>
      <children>

        <phplot>
          <args>
            <data type="array">' . WuiXml::encode($example_data) . '</data>
            <width>600</width>
            <height>350</height>
            <legend type="array">' . WuiXml::encode($legend) . '</legend>
            <plottype>' . $eventData['plottype'] . '</plottype>
            <title>Elaborazione fatturato</title>
          </args>
        </phplot>

      </children>
    </vertframe>

    <horizbar/>

    <horizgroup>
      <children>

        <button>
          <args>
            <themeimage>button_ok</themeimage>
            <horiz>true</horiz>
            <themeimagetype>mini</themeimagetype>
            <label>Bars</label>
            <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'bars'))))) . '</action>
          </args>
        </button>

        <button>
          <args>
            <themeimage>button_ok</themeimage>
            <horiz>true</horiz>
            <themeimagetype>mini</themeimagetype>
            <label>Lines</label>
            <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'lines'))))) . '</action>
          </args>
        </button>

        <button>
          <args>
            <themeimage>button_ok</themeimage>
            <horiz>true</horiz>
            <themeimagetype>mini</themeimagetype>
            <label>Linepoints</label>
            <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'linepoints'))))) . '</action>
          </args>
        </button>

        <button>
          <args>
            <themeimage>button_ok</themeimage>
            <horiz>true</horiz>
            <themeimagetype>mini</themeimagetype>
            <label>Area</label>
            <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'area'))))) . '</action>
          </args>
        </button>

        <button>
          <args>
            <themeimage>button_ok</themeimage>
            <horiz>true</horiz>
            <themeimagetype>mini</themeimagetype>
            <label>Points</label>
            <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'points'))))) . '</action>
          </args>
        </button>

        <button>
          <args>
            <themeimage>button_ok</themeimage>
            <horiz>true</horiz>
            <themeimagetype>mini</themeimagetype>
            <label>Pie</label>
            <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'pie'))))) . '</action>
          </args>
        </button>

      </children>
    </horizgroup>

  </children>
</vertgroup>';
}
    private function fillDefinition()
    {
        $result = false;
        $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
        if (!(strlen($this->mItemType) and $this->mItemId)) {
            return $result;
        }
        // Locale
        $locale = new \Innomatic\Locale\LocaleCatalog('innowork-core::misc', $container->getCurrentUser()->getLanguage());
        // Core
        $tmp_innoworkcore = \Innowork\Core\InnoworkCore::instance('\\Innowork\\Core\\InnoworkCore', $container->getDataAccess(), $container->getCurrentDomain()->getDataAccess());
        $summaries = $tmp_innoworkcore->getSummaries();
        // Default parent ACL mode
        $parentAcl = false;
        // Item object
        if (isset($summaries[$this->mItemType]) and class_exists($summaries[$this->mItemType]['classname'])) {
            $class_name = $summaries[$this->mItemType]['classname'];
            $item_object = new $class_name($container->getDataAccess(), $container->getCurrentDomain()->getDataAccess(), $this->mItemId);
            $acl = $item_object->mAcl;
            // Check parent ACL mode
            if (strlen($item_object->mParentType) and $item_object->mParentId > 0) {
                $parentAcl = true;
            }
        } else {
            $item_object = null;
            // Access list
            require_once 'innowork/core/InnoworkAcl.php';
            $acl = new InnoworkAcl($container->getDataAccess(), $container->getCurrentDomain()->getDataAccess(), $this->mItemType, $this->mItemId);
        }
        $tmp_acl_type = $acl->getType();
        if (strlen($tmp_acl_type)) {
            $this->mAclType = $tmp_acl_type;
        }
        /*
        $acls_query = $container->getCurrentDomain()->getDataAccess()->execute(
        	'SELECT groupid, userid, rights '.
        	'FROM innowork_core_acls '.
        	'WHERE itemtype='.$container->getCurrentDomain()->getDataAccess()->formatText($acl->mItemType).
        	' '.'AND itemid='.$acl->mItemId
        		);
        */
        $owner = '';
        // Log
        if (isset($summaries[$this->mItemType]['loggable']) and $summaries[$this->mItemType]['loggable']) {
            require_once 'innowork/core/InnoworkItemLog.php';
            $item_log = new InnoworkItemLog($this->mItemType, $this->mItemId);
        }
        if ($this->mItemOwnerId) {
            $owner_user = new \Innomatic\Domain\User\User($container->getCurrentDomain()->domaindata['id'], $this->mItemOwnerId);
            $owner_user_data = $owner_user->getUserData();
            $owner = (strlen($owner_user_data['fname']) ? $owner_user_data['fname'] . ' ' : '') . $owner_user_data['lname'];
        }
        $acl_mode_sk = new \Shared\Wui\WuiSessionKey('innowork_acl_mode', array('sessionobjectnopage' => 'true'));
        if ($acl_mode_sk->mValue == 'advanced') {
            $acl_mode = 'advanced';
        } else {
            $acl_mode = 'simple';
        }
        $row = 0;
        if ($acl_mode == 'advanced') {
            $domainDa = $container->getCurrentDomain()->getDataAccess();
            $groups_query = $domainDa->execute('SELECT id,groupname FROM domain_users_groups ORDER BY groupname');
            $users_query = $domainDa->execute('SELECT id,groupid,username,fname,lname FROM domain_users WHERE disabled IS NULL or disabled <> ' . $domainDa->formatText($domainDa->fmttrue) . ' ORDER BY username');
            $limited_acls = array();
            $users = array();
            while (!$users_query->eof) {
                $fname = $users_query->getFields('fname');
                $lname = $users_query->getFields('lname');
                if (strlen($fname) and strlen($lname)) {
                    $tmp_username = $lname . ' ' . $fname;
                } else {
                    $tmp_username = $users_query->getFields('username');
                    if (strpos($tmp_username, '@')) {
                        $tmp_username = substr($tmp_username, 0, strpos($tmp_username, '@'));
                    }
                }
                $users[$users_query->getFields('groupid')][$users_query->getFields('id')] = $tmp_username;
                $users_query->moveNext();
            }
            while (!$groups_query->eof) {
                $group_perms = $acl->checkPermission($groups_query->getFields('id'));
                switch ($group_perms) {
                    case InnoworkAcl::PERMS_NONE:
                        $limited_acls['g' . $groups_query->getFields('id')] = '[-] ' . $groups_query->getFields('groupname');
                        break;
                    case InnoworkAcl::PERMS_SEARCH:
                        $limited_acls['g' . $groups_query->getFields('id')] = '[' . $locale->getStr('perm_search_short.label') . '] ' . $groups_query->getFields('groupname');
                        break;
                    case InnoworkAcl::PERMS_READ:
                        $limited_acls['g' . $groups_query->getFields('id')] = '[' . $locale->getStr('perm_read_short.label') . '] ' . $groups_query->getFields('groupname');
                        break;
                    case InnoworkAcl::PERMS_EDIT:
                        $limited_acls['g' . $groups_query->getFields('id')] = '[' . $locale->getStr('perm_edit_short.label') . '] ' . $groups_query->getFields('groupname');
                        break;
                    case InnoworkAcl::PERMS_DELETE:
                        $limited_acls['g' . $groups_query->getFields('id')] = '[' . $locale->getStr('perm_delete_short.label') . '] ' . $groups_query->getFields('groupname');
                        break;
                    case InnoworkAcl::PERMS_ALL:
                        $limited_acls['g' . $groups_query->getFields('id')] = '[+] ' . $groups_query->getFields('groupname');
                        break;
                }
                /*
                $limited_acls['g'.$groups_query->getFields( 'id' )] =
                (  > InnoworkAcl::PERMS_NONE ?
                '[+] ' :
                '[-] ' ).
                $groups_query->getFields( 'groupname' );
                */
                foreach ($users[$groups_query->getFields('id')] as $id => $username) {
                    $user_perms = $acl->checkPermission('', $id);
                    /*
                    $limited_acls['u'.$id] = '-> '.
                        ( $acl->checkPermission( '', $id ) > InnoworkAcl::PERMS_NONE ?
                        '[+] ' :
                        '[-] ' ).
                        $username;
                    */
                    if ($id == $this->mItemOwnerId) {
                        $limited_acls['u' . $id] = '- ' . '[+] ' . $username;
                    } else {
                        switch ($user_perms) {
                            case InnoworkAcl::PERMS_NONE:
                                $limited_acls['u' . $id] = '- ' . '[-] ' . $username;
                                break;
                            case InnoworkAcl::PERMS_SEARCH:
                                $limited_acls['u' . $id] = '- ' . '[' . $locale->getStr('perm_search_short.label') . '] ' . $username;
                                break;
                            case InnoworkAcl::PERMS_READ:
                                $limited_acls['u' . $id] = '- ' . '[' . $locale->getStr('perm_read_short.label') . '] ' . $username;
                                break;
                            case InnoworkAcl::PERMS_EDIT:
                                $limited_acls['u' . $id] = '- ' . '[' . $locale->getStr('perm_edit_short.label') . '] ' . $username;
                                break;
                            case InnoworkAcl::PERMS_DELETE:
                                $limited_acls['u' . $id] = '- ' . '[' . $locale->getStr('perm_delete_short.label') . '] ' . $username;
                                break;
                            case InnoworkAcl::PERMS_ALL:
                                $limited_acls['u' . $id] = '- ' . '[+] ' . $username;
                                break;
                        }
                    }
                }
                $groups_query->MoveNext();
            }
            $limited_acls['g0'] = '[-] No group';
            foreach ($users[0] as $id => $username) {
                $limited_acls['u' . $id] = '-> ' . ($acl->checkPermission('', $id) > InnoworkAcl::PERMS_NONE ? '[+] ' : '[-] ') . $username;
            }
        }
        // Clippings
        require_once 'innowork/core/clipping/InnoworkClipping.php';
        $innowork_clippings = new InnoworkClipping($container->getDataAccess(), $container->getCurrentDomain()->getDataAccess());
        $clippings_search = $innowork_clippings->search('');
        $clippings = array();
        if ($this->mItemType != 'defaultaclitem' and count($clippings_search)) {
            foreach ($clippings_search as $id => $data) {
                $clippings[$id] = $data['name'];
            }
        }
        $item_actions = array();
        // Other items widget actions
        if (is_object($item_object) && $acl->checkPermission('', $container->getCurrentUser()->getUserId()) > InnoworkAcl::PERMS_NONE) {
            foreach ($summaries as $item_type => $item_desc) {
                if ($item_type == $this->mItemType) {
                    continue;
                }
                $tmp_class = $item_desc['classname'];
                $tmp_obj = new $tmp_class($container->getDataAccess(), $container->getCurrentDomain()->getDataAccess());
                $item_action = $tmp_obj->getExternalItemWidgetXmlData($item_object);
                if (strlen($item_action)) {
                    $item_actions[] = $item_action;
                }
            }
        }
        if ($acl->checkPermission('', $container->getCurrentUser()->getUserId()) == InnoworkAcl::PERMS_NONE) {
            $this->mDefinition = '<empty/>';
        } elseif (!$parentAcl and ($this->mItemOwnerId == $container->getCurrentUser()->getUserId() or User::isAdminUser($container->getCurrentUser()->getUserName(), $container->getCurrentDomain()->getDomainId()) or $acl->checkPermission('', $container->getCurrentUser()->getUserId()) >= InnoworkAcl::PERMS_RESPONSIBLE)) {
            $this->mDefinition = '
<empty><name>innoworkitemacl</name>
  <children>
    <form><name>opts' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
      <args>
        <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
      </args>
      <children>
        <formarg><name>aclmode</name>
          <args>
        <disp>wui</disp>
        <value>' . ($acl_mode == 'advanced' ? 'simple' : 'advanced') . '</value>
          </args>
        </formarg>
      </children>
    </form>
        <table><name>acl</name>
          <args>
        <headers type="array">' . WuiXml::encode(array('0' => array('label' => $locale->getStr('item_properties.label')))) . '</headers>
          </args>
          <children>';
            if (count($item_actions)) {
                foreach ($item_actions as $item_action) {
                    $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"><children>';
                    $this->mDefinition .= $item_action;
                    $this->mDefinition .= '</children></vertgroup>';
                }
            }
            $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0" halign="" valign="" nowrap="true">
      <children>
    <form><name>itemacl' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
      <args>
        <method>post</method>
        <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
      </args>
      <children>

        <vertgroup><name>vg</name><children>
  <horizgroup>
    <args>
      <align>middle</align>
      <width>0%</width>
    </args>
    <children>
      <button>
        <args>
          <themeimage>lock</themeimage>
          <themeimagetype>mini</themeimagetype>
          <compact>true</compact>
        </args>
      </button>
          <label><name>convert</name>
        <args>
          <bold>true</bold>
          <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('access_mode.label'))) . '</label>
          <compact>true</compact>
        </args>
          </label>
    </children>
  </horizgroup>
';
            if (strlen($owner)) {
                $this->mDefinition .= '          <label><name>owner</name>
                <args>
                  <bold>true</bold>
                  <label type="encoded">' . WuiXml::cdata(urlencode(sprintf($locale->getStr('owner.label'), $owner))) . '</label>
                </args>
              </label>';
            }
            // Only the owner and the root user can change the acl type
            if ($this->mItemOwnerId == $container->getCurrentUser()->getUserId() or User::isAdminUser($container->getCurrentUser()->getUserName(), $container->getCurrentDomain()->getDomainId())) {
                $this->mDefinition .= '          <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg>
              <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg>
              <radio><name>acltype</name>
               <args>
                  <disp>wui</disp>
                  <value>' . InnoworkAcl::TYPE_PRIVATE . '</value>
                  <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_private.label'))) . '</label>
                  <checked>' . ($this->mAclType == InnoworkAcl::TYPE_PRIVATE ? 'true' : 'false') . '</checked>
                </args>
              </radio>
              <radio><name>acltype</name>
                <args>
                  <disp>wui</disp>
                  <value>' . InnoworkAcl::TYPE_PUBLIC . '</value>
                  <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_public.label'))) . '</label>
                  <checked>' . ($this->mAclType == InnoworkAcl::TYPE_PUBLIC ? 'true' : 'false') . '</checked>
                </args>
              </radio>
              <radio><name>acltype</name>
                <args>
                  <disp>wui</disp>
                  <value>' . InnoworkAcl::TYPE_ACL . '</value>
                  <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_acl.label'))) . '</label>
                  <checked>' . ($this->mAclType == InnoworkAcl::TYPE_ACL ? 'true' : 'false') . '</checked>
                </args>
              </radio>';
            } else {
                $this->mDefinition .= '          <label><name>acltype</name>
               <args>
                  <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_private.label'))) . '</label>
                  <bold>' . ($this->mAclType == InnoworkAcl::TYPE_PRIVATE ? 'true' : 'false') . '</bold>
                </args>
              </label>
              <label><name>acltype</name>
                <args>
                  <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_public.label'))) . '</label>
                  <bold>' . ($this->mAclType == InnoworkAcl::TYPE_PUBLIC ? 'true' : 'false') . '</bold>
                </args>
              </label>
              <label><name>acltype</name>
                <args>
                  <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_acl.label'))) . '</label>
                  <bold>' . ($this->mAclType == InnoworkAcl::TYPE_ACL ? 'true' : 'false') . '</bold>
                </args>
              </label>';
            }
            $this->mDefinition .= '        </children></vertgroup>
          </children>
    </form>
<horizgroup><args><width>0%</width></args>
  <children>';
            if ($this->mItemOwnerId == $container->getCurrentUser()->getUserId() or $container->getCurrentDomain()->getDomainId() == $container->getCurrentUser()->getUserName()) {
                $this->mDefinition .= '    <button><name>setactl</name>
          <args>
            <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
            <formsubmit>itemacl' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
            <horiz>true</horiz>
            <frame>false</frame>
            <themeimage>buttonok</themeimage>
            <themeimagetype>mini</themeimagetype>
            <compact>true</compact>
            <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('apply.submit'))) . '</label>
          </args>
        </button>';
            }
            $this->mDefinition .= '    <button><name>setopts</name>
      <args>
        <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
        <formsubmit>opts' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
        <horiz>true</horiz>
        <frame>false</frame>
        <themeimage>' . ($acl_mode == 'advanced' ? 'info' : 'info') . '</themeimage>
        <themeimagetype>mini</themeimagetype>
        <compact>true</compact>
        <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr($acl_mode == 'advanced' ? 'acl_simple.submit' : 'acl_advanced.submit'))) . '</label>
      </args>
    </button>
  </children>
</horizgroup>
  </children>
</vertgroup>';
            if ($acl_mode == 'advanced') {
                if ($this->mAclType == InnoworkAcl::TYPE_ACL) {
                    $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0">
              <children>
            <form><name>limitedacl' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
              <args>
                <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
              </args>
              <children>

              <horizgroup>
                <args>
                  <align>top</align><width>0%</width>
                </args>
                <children>
                <listbox><name>limitedacl</name>
                  <args>
                <disp>wui</disp>
                <elements type="array">' . WuiXml::encode($limited_acls) . '</elements>
                <multiselect>true</multiselect>
                <size>10</size>
                  </args>
                </listbox>

                <vertgroup>
                  <args>
                <align>left</align>
                  </args>
                  <children>
                <radio><name>aclperms</name>
                  <args>
                <disp>wui</disp>
                <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_all.label'))) . '</label>
                <value>' . InnoworkAcl::PERMS_ALL . '</value>
                <checked>true</checked>
                  </args>
                </radio>
                <radio><name>aclperms</name>
                  <args>
                <disp>wui</disp>
                <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_delete.label'))) . '</label>
                <value>' . InnoworkAcl::PERMS_DELETE . '</value>
                  </args>
                </radio>
                <radio><name>aclperms</name>
                  <args>
                <disp>wui</disp>
                <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_edit.label'))) . '</label>
                <value>' . InnoworkAcl::PERMS_EDIT . '</value>
                  </args>
                </radio>
                <radio><name>aclperms</name>
                  <args>
                <disp>wui</disp>
                <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_read.label'))) . '</label>
                <value>' . InnoworkAcl::PERMS_READ . '</value>
                  </args>
                </radio>
                <radio><name>aclperms</name>
                  <args>
                <disp>wui</disp>
                <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_search.label'))) . '</label>
                <value>' . InnoworkAcl::PERMS_SEARCH . '</value>
                  </args>
                </radio>

                </children>
                  </vertgroup>
                </children>
              </horizgroup>

                  <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg>
                  <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg>

              </children>
            </form>

            <horizgroup>
              <args><width>0%</width></args>
              <children>
                <button><name>add</name>
                  <args>
                <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkacladd') . '</action>
                <formsubmit>limitedacl' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
                <horiz>true</horiz>
                <frame>false</frame>
                <themeimage>useradd</themeimage>
                <themeimagetype>mini</themeimagetype>
                <compact>true</compact>
                <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('add_acl.submit'))) . '</label>
                  </args>
                </button>
                <button><name>remove</name>
                  <args>
                <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkaclremove') . '</action>
                <formsubmit>limitedacl' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
                <horiz>true</horiz>
                <frame>false</frame>
                <themeimage>userremove</themeimage>
                <themeimagetype>mini</themeimagetype>
                <compact>true</compact>
                <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('remove_acl.submit'))) . '</label>
                  </args>
                </button>
              </children>
            </horizgroup>
              </children>
            </vertgroup>';
                }
                /*
                $this->mDefinition .=
                '<form row="'.$row++.'" col="0" halign="" valign="" nowrap="true"><name>responsibles'.md5( $this->mItemType.'-'.$this->mItemId ).'</name>
                  <args>
                  </args>
                  <children>
                
                <listbox><name>responsibles</name>
                  <args>
                    <disp>wui</disp>
                    <size>2</size>
                  </args>
                </listbox>
                
                  </children>
                </form>
                
                <form row="'.$row++.'" col="0" halign="" valign="" nowrap="true"><name>participants'.md5( $this->mItemType.'-'.$this->mItemId ).'</name>
                  <args>
                  </args>
                  <children>
                
                <listbox><name>participants</name>
                  <args>
                    <disp>wui</disp>
                    <size>2</size>
                  </args>
                </listbox>
                
                  </children>
                </form>';
                */
                if ($summaries[$this->mItemType]['loggable']) {
                    $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0">
              <children>
              <horizgroup>
                <args>
                  <align>middle</align><width>0%</width>
                </args>
                <children>
                  <button>
                <args>
                  <themeimage>alignright</themeimage>
                  <themeimagetype>mini</themeimagetype>
                  <compact>true</compact>
                </args>
                  </button>
                  <label><name>itemlog</name>
                    <args>
                      <bold>true</bold>
                      <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('history.label'))) . '</label>
                      <compact>true</compact>
                    </args>
                  </label>
                </children>
              </horizgroup>
                <listbox><name>itemlog</name>
                  <args>
                <readonly>true</readonly>
                <elements type="array">' . WuiXml::encode(array_reverse($item_log->GetLog())) . '</elements>
                <size>3</size>
                  </args>
                </listbox>
              </children>
            </vertgroup>';
                }
                if ($summaries[$this->mItemType]['convertible']) {
                    $convert_types = array();
                    foreach ($summaries as $type => $item) {
                        if ($item['convertible'] and $type != $this->mItemType) {
                            $tmp_locale = new \Innomatic\Locale\LocaleCatalog($item['catalog'], $container->getCurrentUser()->getLanguage());
                            $convert_types[$type] = $tmp_locale->getStr($type);
                            unset($tmp_locale);
                        }
                    }
                    if (count($convert_types)) {
                        $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0">
                  <children>
                  <horizgroup>
                    <args>
                      <align>middle</align><width>0%</width>
                    </args>
                    <children>
                      <button>
<args>
  <themeimage>elementadd</themeimage>
  <themeimagetype>mini</themeimagetype>
  <compact>true</compact>
</args>
                      </button>
  <label><name>convert</name>
<args>
  <bold>true</bold>
  <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('convert.label'))) . '</label>
  <compact>true</compact>
</args>
  </label>
                    </children>
                  </horizgroup>

                    <form><name>convert' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
                      <args>
<action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
                      </args>
                      <children>

                    <horizgroup>
                      <args>
<align>middle</align><width>0%</width>
                      </args>
                      <children>

<combobox><name>type</name>
  <args>
<disp>wui</disp>
<elements type="array">' . WuiXml::encode($convert_types) . '</elements>
  </args>
</combobox>

<button><name>convert</name>
  <args>
<horiz>true</horiz>
<frame>false</frame>
<themeimage>arrowright</themeimage>
<themeimagetype>mini</themeimagetype>
<compact>true</compact>
<formsubmit>convert' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
<action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkconvert') . '</action>
  </args>
</button>

  <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg>
  <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg>

                      </children>
                    </horizgroup>

                      </children>
                    </form>
                  </children>
                </vertgroup>';
                    }
                }
                // Clippings
                if (count($clippings)) {
                    $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0">
              <children>
              <horizgroup>
                <args>
                  <align>middle</align><width>0%</width>
                </args>
                <children>
                  <button>
                <args>
                  <themeimage>clip</themeimage>
                  <themeimagetype>mini</themeimagetype>
                  <compact>true</compact>
                </args>
                  </button>
                  <label><name>clipping</name>
                    <args>
                      <bold>true</bold>
                      <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('clipping.label'))) . '</label>
                      <compact>true</compact>
                    </args>
                  </label>
                </children>
              </horizgroup>

                <form><name>clipping' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
                  <args>
                <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
                  </args>
                  <children>

                <horizgroup>
                  <args>
                <align>middle</align><width>0%</width>
                  </args>
                  <children>

                <combobox><name>clippingid</name>
                  <args>
                    <disp>wui</disp>
                    <elements type="array">' . WuiXml::encode($clippings) . '</elements>
                  </args>
                </combobox>

                <button><name>clipping</name>
                  <args>
                    <horiz>true</horiz>
                    <frame>false</frame>
                    <themeimage>arrowright</themeimage>
                    <themeimagetype>mini</themeimagetype>
                    <compact>true</compact>
                    <formsubmit>clipping' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
                    <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkaddtoclipping') . '</action>
                  </args>
                </button>

                  <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg>
                  <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg>

                  </children>
                </horizgroup>

                  </children>
                </form>
              </children>
            </vertgroup>';
                }
            }
            if (isset($GLOBALS['innoworkcore']['itemacl'][$this->mItemType][$this->mItemId])) {
                $this->mDefinition .= '<label row="' . $row++ . '" col="0">
          <args>
        <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_changed.label'))) . '</label>
        <bold>true</bold>
          </args>
        </label>';
            }
            $this->mDefinition .= '          </children>
        </table>

  </children>
</empty>';
        } else {
            $this->mDefinition = '
<empty><name>innoworkitemacl</name>
  <children>
    <form><name>opts' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
      <args>
        <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
      </args>
      <children>
        <formarg><name>aclmode</name>
          <args>
        <disp>wui</disp>
        <value>' . ($acl_mode == 'advanced' ? 'simple' : 'advanced') . '</value>
          </args>
        </formarg>
      </children>
    </form>

        <table><name>acl</name>
          <args>
        <headers type="array">' . WuiXml::encode(array('0' => array('label' => $locale->getStr('item_properties.label')))) . '</headers>
          </args>
          <children>';
            if (count($item_actions)) {
                foreach ($item_actions as $item_action) {
                    $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"><children>';
                    $this->mDefinition .= $item_action;
                    $this->mDefinition .= '</children></vertgroup>';
                }
            }
            $this->mDefinition .= '
        <vertgroup row="' . $row++ . '" col="0" halign="" valign="" nowrap="true"><name>vg</name><children>
        <horizgroup>
    <args>
      <align>middle</align><width>0%</width>
    </args>
    <children>
      <button>
        <args>
          <themeimage>lock</themeimage>
          <themeimagetype>mini</themeimagetype>
          <compact>true</compact>
        </args>
      </button>
          <label><name>convert</name>
        <args>
          <bold>true</bold>
          <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('access_mode.label'))) . '</label>
          <compact>true</compact>
        </args>
          </label>
    </children>
  </horizgroup>';
            if (strlen($owner)) {
                $this->mDefinition .= '          <label><name>owner</name>
                <args>
                  <bold>true</bold>
                  <label type="encoded">' . WuiXml::cdata(urlencode(sprintf($locale->getStr('owner.label'), $owner))) . '</label>
                </args>
              </label>';
            }
            $this->mDefinition .= '          <label><name>acltype</name>
           <args>
          <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_private.label'))) . '</label>
          <bold>' . ($this->mAclType == InnoworkAcl::TYPE_PRIVATE ? 'true' : 'false') . '</bold>
        </args>
          </label>
          <label><name>acltype</name>
        <args>
          <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_public.label'))) . '</label>
          <bold>' . ($this->mAclType == InnoworkAcl::TYPE_PUBLIC ? 'true' : 'false') . '</bold>
        </args>
          </label>
          <label><name>acltype</name>
        <args>
          <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_acl.label'))) . '</label>
          <bold>' . ($this->mAclType == InnoworkAcl::TYPE_ACL ? 'true' : 'false') . '</bold>
        </args>
          </label>

<horizgroup><args><width>0%</width></args>
  <children>
    <button><name>setopts</name>
      <args>
        <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
        <formsubmit>opts' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
        <horiz>true</horiz>
        <frame>false</frame>
        <themeimage>' . ($acl_mode == 'advanced' ? 'info' : 'info') . '</themeimage>
        <themeimagetype>mini</themeimagetype>
        <compact>true</compact>
        <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr($acl_mode == 'advanced' ? 'acl_simple.submit' : 'acl_advanced.submit'))) . '</label>
      </args>
    </button>
  </children>
</horizgroup>
  </children>
</vertgroup>';
            if ($acl_mode == 'advanced') {
                if ($this->mAclType == InnoworkAcl::TYPE_ACL) {
                    $this->mDefinition .= '<form row="' . $row++ . '" col="0"><name>limitedacl' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
              <args>
                <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
              </args>
              <children>

                <listbox><name>limitedacl</name>
                  <args>
                <disp>wui</disp>
                <elements type="array">' . WuiXml::encode($limited_acls) . '</elements>
                <multiselect>true</multiselect>
                <size>10</size>
                  </args>
                </listbox>

                  <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg>
                  <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg>

              </children>
            </form>';
                }
                if ($summaries[$this->mItemType]['loggable']) {
                    $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0">
              <children>
                <horizgroup>
                <args>
                  <align>middle</align><width>0%</width>
                </args>
                <children>
                  <button>
                <args>
                  <themeimage>alignright</themeimage>
                  <themeimagetype>mini</themeimagetype>
                  <compact>true</compact>
                </args>
                  </button>
                  <label><name>convert</name>
                    <args>
                      <bold>true</bold>
                      <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('history.label'))) . '</label>
                      <compact>true</compact>
                    </args>
                  </label>
                </children>
              </horizgroup>
                <listbox><name>itemlog</name>
                  <args>
                <readonly>true</readonly>
                <elements type="array">' . WuiXml::encode(array_reverse($item_log->GetLog())) . '</elements>
                <size>3</size>
                  </args>
                </listbox>
              </children>
            </vertgroup>';
                }
                if ($summaries[$this->mItemType]['convertible']) {
                    $convert_types = array();
                    foreach ($summaries as $type => $item) {
                        if ($item['convertible'] and $type != $this->mItemType) {
                            $tmp_locale = new \Innomatic\Locale\LocaleCatalog($item['catalog'], $container->getCurrentUser()->getLanguage());
                            $convert_types[$type] = $tmp_locale->getStr($type);
                            unset($tmp_locale);
                        }
                    }
                    if (count($convert_types)) {
                        $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0">
                  <children>
                  <horizgroup>
                    <args>
                      <align>middle</align><width>0%</width>
                    </args>
                    <children>
                      <button>
<args>
  <themeimage>elementadd</themeimage>
  <themeimagetype>mini</themeimagetype>
  <compact>true</compact>
</args>
                      </button>
  <label><name>convert</name>
<args>
  <bold>true</bold>
  <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('convert.label'))) . '</label>
  <compact>true</compact>
</args>
  </label>
                    </children>
                  </horizgroup>

                    <form><name>convert' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
                      <args>
<action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
                      </args>
                      <children>

                    <horizgroup>
                      <args>
<align>middle</align><width>0%</width>
                      </args>
                      <children>

<combobox><name>type</name>
  <args>
<disp>wui</disp>
<elements type="array">' . WuiXml::encode($convert_types) . '</elements>
  </args>
</combobox>

<button><name>convert</name>
  <args>
<horiz>true</horiz>
<frame>false</frame>
<themeimage>arrowright</themeimage>
<themeimagetype>mini</themeimagetype>
<compact>true</compact>
<formsubmit>convert' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
<action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkconvert') . '</action>
  </args>
</button>

  <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg>
  <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg>

                      </children>
                    </horizgroup>

                      </children>
                    </form>
                  </children>
                </vertgroup>';
                    }
                }
                // Clippings
                if (count($clippings)) {
                    $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0">
              <children>
              <horizgroup>
                <args>
                  <align>middle</align><width>0%</width>
                </args>
                <children>
                  <button>
                <args>
                  <themeimage>clip</themeimage>
                  <themeimagetype>mini</themeimagetype>
                  <compact>true</compact>
                </args>
                  </button>
                  <label><name>clipping</name>
                    <args>
                      <bold>true</bold>
                      <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('clipping.label'))) . '</label>
                      <compact>true</compact>
                    </args>
                  </label>
                </children>
              </horizgroup>

                <form><name>clipping' . md5($this->mItemType . '-' . $this->mItemId) . '</name>
                  <args>
                <action>' . WuiXml::cdata($this->mDefaultAction) . '</action>
                  </args>
                  <children>

                <horizgroup>
                  <args>
                <align>middle</align><width>0%</width>
                  </args>
                  <children>

                <combobox><name>clippingid</name>
                  <args>
                    <disp>wui</disp>
                    <elements type="array">' . WuiXml::encode($clippings) . '</elements>
                  </args>
                </combobox>

                <button><name>clipping</name>
                  <args>
                    <horiz>true</horiz>
                    <frame>false</frame>
                    <themeimage>arrowright</themeimage>
                    <themeimagetype>mini</themeimagetype>
                    <compact>true</compact>
                    <formsubmit>clipping' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit>
                    <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkaddtoclipping') . '</action>
                  </args>
                </button>

                  <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg>
                  <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg>

                  </children>
                </horizgroup>

                  </children>
                </form>
              </children>
            </vertgroup>';
                }
            }
            $this->mDefinition .= '
          </children>
        </table>

  </children>
</empty>';
        }
        $result = true;
    }
 public function viewsituation($eventData)
 {
     $domainsQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT domainid FROM domains ORDER BY domainid');
     $applicationsQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT appid FROM applications WHERE onlyextension=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->formatText(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->fmtfalse) . ' ORDER BY appid');
     $headers = array();
     $cont = 1;
     while (!$applicationsQuery->eof) {
         $origLabel = $applicationsQuery->getFields('appid');
         $label = '';
         for ($i = 0; $i < strlen($origLabel); $i++) {
             if ($i) {
                 $label .= '<br>';
             }
             $label .= $origLabel[$i];
         }
         $headers[$cont++]['label'] = $label;
         $applicationsQuery->moveNext();
     }
     $xmlDef = '<table><name>situation</name>
   <args>
     <headers type="array">' . WuiXml::encode($headers) . '</headers>
   </args>
   <children>';
     $row = 0;
     $appDeps = new \Innomatic\Application\ApplicationDependencies();
     while (!$domainsQuery->eof) {
         $xmlDef .= '<label row="' . $row . '" col="0">
       <args>
         <label type="encoded">' . urlencode($domainsQuery->getFields('domainid')) . '</label>
         <compact>true</compact>
       </args>
     </label>';
         $col = 1;
         $applicationsQuery->MoveFirst();
         while (!$applicationsQuery->eof) {
             $enabled = $appDeps->IsEnabled($applicationsQuery->getFields('appid'), $domainsQuery->getFields('domainid'));
             $xmlDef .= '<image row="' . $row . '" col="' . $col . '" halign="center" valign="middle">
           <args>
             <imageurl>' . ($enabled ? $this->wuiMainframe->mThemeHandler->mStyle['greenball'] : $this->wuiMainframe->mThemeHandler->mStyle['redball']) . '</imageurl>
           </args>
         </image>';
             $col++;
             $applicationsQuery->moveNext();
         }
         $row++;
         $domainsQuery->moveNext();
     }
     $xmlDef .= '  </children>
 </table>';
     $this->wuiMainframe->addChild(new WuiXml('', array('definition' => $xmlDef)));
 }
function main_default($eventData)
{
    global $gXml_def, $innowork_core, $gLocale, $gWui, $gPage_status, $gPage_title;
    $summaries = $innowork_core->GetSummaries();
    $types[''] = $gLocale->getStr('alltypes.label');
    while (list($key, $val) = each($summaries)) {
        if ($val['searchable']) {
            $types[$key] = $val['label'];
        }
    }
    reset($summaries);
    $tab_labels[0]['label'] = $gLocale->getStr('defacls.tab');
    $gXml_def = '
<vertgroup>
  <children>
    <tab>
      <name>settings</name>
      <args>
        <tabs type="array">' . WuiXml::encode($tab_labels) . '</tabs>
        <tabactionfunction>main_tab_action_handler</tabactionfunction>
        <activetab>' . (isset($eventData['maintab']) ? $eventData['maintab'] : '') . '</activetab>
      </args>
      <children>
        <!-- Default ACLs tab -->
        <vertgroup>
          <children>
            <label>
              <args>
                <bold>true</bold>
                <label type="encoded">' . urlencode($gLocale->getStr('defacls.title')) . '</label>
              </args>
            </label>
            <horizbar/>
            <horizgroup>
              <children>
                <vertgroup>
                  <children>';
    foreach ($summaries as $type => $opts) {
        $class_name = $opts['classname'];
        if (!class_exists($class_name)) {
            continue;
        }
        $tmp_class = new $class_name(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess(), 0);
        if ($type != 'defaultaclitem' and $tmp_class->mNoAcl != true and !isset($tmp_class->_mSkipAclSet) and !isset($tmp_class->_mCreationAcl)) {
            $gXml_def .= '
              <button>
                <args>
                  <label type="encoded">' . urlencode($opts['label']) . '</label>
                  <themeimage>' . $opts['icon'] . '</themeimage>
                  <themeimagetype>' . $opts['icontype'] . '</themeimagetype>
                  <horiz>true</horiz>
                  <disabled>' . ($eventData['setdefacl'] == $type ? 'true' : 'false') . '</disabled>
                  <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('setdefacl' => $type))))) . '</action>
                </args>
              </button>';
        }
    }
    $gXml_def .= '                  </children>
                </vertgroup>';
    if (isset($eventData['setdefacl'])) {
        $check_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->Execute('SELECT * FROM innowork_core_acls_defaults WHERE ownerid=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getUserId() . ' AND itemtype=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($eventData['setdefacl']));
        if ($check_query->getNumberRows()) {
            $id = $check_query->getFields('id');
        } else {
            $item = new InnoworkDefaultAclItem(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess());
            $params['itemtype'] = $eventData['setdefacl'];
            $item->Create($params);
            $id = $item->mItemId;
        }
        $gXml_def .= '
                <vertbar/>
                <vertgroup>
                  <args>
                    <align>center</align>
                  </args>
                  <children>
                    <label>
                      <args>
                        <label type="encoded">' . urlencode($summaries[$eventData['setdefacl']]['label']) . '</label>
                        <bold>true</bold>
                      </args>
                    </label>
                    <horizbar/>
      <innoworkitemacl><name>itemacl</name>
        <args>
          <itemtype>defaultaclitem</itemtype>
          <itemid>' . $id . '</itemid>
          <itemownerid>' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getUserId() . '</itemownerid>
          <defaultaction type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('setdefacl' => $eventData['setdefacl']))))) . '</defaultaction>
        </args>
      </innoworkitemacl>
                  </children>
                </vertgroup>
';
    }
    $gXml_def .= '              </children>
            </horizgroup>
          </children>
        </vertgroup>
      </children>
    </tab>
  </children>
</vertgroup>';
}