Ejemplo n.º 1
0
function main_default($eventData)
{
    global $gXmlDefinition, $gLocale, $gPageTitle;
    $main = new \Innomatic\Maintenance\MaintenanceHandler();
    $mainTime = $main->getLastMaintenanceTime();
    $tasks = $main->getTasksList();
    $tabs[0]['label'] = $gLocale->getStr('general_status.tab');
    $tabs[1]['label'] = $gLocale->getStr('general_report.tab');
    $tabs[2]['label'] = $gLocale->getStr('general_tasks.tab');
    $country = new \Innomatic\Locale\LocaleCountry(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCountry());
    $dateArray = $country->getDateArrayFromUnixTimestamp($mainTime);
    $row = 0;
    $gXmlDefinition = '<vertgroup>
      <children>

      <tab><name>general</name>
        <args>
          <tabs type="array">' . WuiXml::encode($tabs) . '</tabs>
          <tabactionfunction>general_tab_builder</tabactionfunction>
          <activetab>' . (isset($eventData['tab']) ? $eventData['tab'] : '') . '</activetab>
        </args>
        <children>

        <vertgroup>
          <children>

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

        <horizgroup>
          <children>

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

            <date>
              <args>
                <readonly>true</readonly>
                <type>date</type>
                <value type="array">' . WuiXml::encode($dateArray) . '</value>
              </args>
            </date>

            <date>
              <args>
                <readonly>true</readonly>
                <type>time</type>
                <value type="array">' . WuiXml::encode($dateArray) . '</value>
              </args>
            </date>

          </children>
        </horizgroup>

            <horizbar/>';
    $maintenanceResult =& \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getMaintenanceResult();
    if (is_array($maintenanceResult)) {
        $row = 0;
        $gXmlDefinition .= '
                <label>
                  <args>
                    <label type="encoded">' . urlencode($gLocale->getStr('report.label')) . '</label>
                    <bold>true</bold>
                  </args>
                </label>
        <grid><children>';
        foreach ($maintenanceResult as $task => $result) {
            $gXmlDefinition .= '<label row="' . $row . '" col="0">
              <args>
                <nowrap>true</nowrap>
                <label type="encoded">' . urlencode($tasks[$task]['description']) . '</label>
              </args>
            </label>
            <button row="' . $row . '" col="1">
              <args>
                <themeimage>' . ($result ? 'buttonok' : 'buttoncancel') . '</themeimage>
                <disabled>true</disabled>
              </args>
            </button>';
            $row++;
        }
        $gXmlDefinition .= '</children></grid><horizbar/>';
    }
    $gXmlDefinition .= '        <button>
              <args>
                <themeimage>buttonok</themeimage>
                <label type="encoded">' . urlencode($gLocale->getStr('run_maintenance.button')) . '</label>
                <horiz>true</horiz>
                <frame>false</frame>
                <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'default'), array('action', 'run_maintenance')))) . '</action>
              </args>
            </button>

          </children>
        </vertgroup>

        <vertgroup>
          <children>

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

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

            <grid>
              <children>

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

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

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

                <string row="1" col="1"><name>reportemail</name>
                  <args>
                    <disp>action</disp>
                    <value type="encoded">' . urlencode($main->getReportsEmail()) . '</value>
                    <size>25</size>
                  </args>
                </string>

              </children>
            </grid>

            </children>
            </form>

            <horizbar/>

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

          </children>
        </vertgroup>

        <vertgroup>
          <children>

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

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

                <grid>
                  <children>';
    reset($tasks);
    foreach ($tasks as $task) {
        $gXmlDefinition .= '<checkbox row="' . $row . '" col="0"><name type="encoded">' . urlencode($task['name'] . '_task') . '</name>
          <args>
            <disp>action</disp>
            <checked>' . ($task['enabled'] ? 'true' : 'false') . '</checked>
          </args>
        </checkbox>
        <label row="' . $row . '" col="1">
          <args>
            <label type="encoded">' . urlencode($task['description']) . '</label>
            <nowrap>false</nowrap>
          </args>
        </label>';
        $row++;
    }
    $gXmlDefinition .= '              </children>
                </grid>

              </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', 'default'), array('action', 'set_general')))) . '</action>
              </args>
            </button>

          </children>
          </vertgroup>

          </children>
        </tab>

      </children>
    </vertgroup>';
    $gPageTitle .= ' - ' . $gLocale->getStr('general.title');
}
 public function startMaintenance()
 {
     $this->setState(\Innomatic\Core\InnomaticContainer::STATE_MAINTENANCE);
     $this->setInterface(\Innomatic\Core\InnomaticContainer::INTERFACE_CONSOLE);
     $hook = new \Innomatic\Process\Hook($this->rootDb, 'innomatic', 'instance');
     $null = null;
     switch ($hook->callHooks('maintenance', $null, '')) {
         case \Innomatic\Process\Hook::RESULT_ABORT:
             $this->abort('Maintenance aborted');
             break;
     }
     $innomaticMnt = new \Innomatic\Maintenance\MaintenanceHandler();
     $this->maintenanceResult = $innomaticMnt->doMaintenance();
     $innomaticMnt->sendReport($this->maintenanceResult);
 }