Esempio n. 1
0
 public function export(array $data, $type)
 {
     if (!DataCenterPage::userCan('export')) {
         return false;
     }
     DataCenterWidgetExport::export($data);
     return null;
 }
Esempio n. 2
0
 public function saveFieldLinks(array $data, $type)
 {
     if (!DataCenterPage::userCan('change')) {
         return false;
     }
     DataCenterWidgetFieldLinks::saveFieldLinks($data);
     return true;
 }
Esempio n. 3
0
 public function link(array $data, $type)
 {
     if (!DataCenterPage::userCan('change')) {
         return false;
     }
     $link = DataCenterDBModelLink::newFromValues($data['row']);
     if ($link->get('quantity') == 0) {
         $link->delete();
     } else {
         $link->save();
     }
     return true;
 }
Esempio n. 4
0
 private static function renderModel($parameters, $structure, $level = 0)
 {
     $xmlOutput = '';
     foreach ($structure as $model) {
         $modelLink = DataCenterDB::getModelLink($model->get('link'));
         if (!DataCenterPage::userCan('change')) {
             $rowAttributes = array();
         } elseif ($level == 0 && count($parameters['link']) > 0) {
             $rowAttributes = array_merge(array('class' => 'link'), DataCenterXml::buildLink($parameters['link'], $model));
         } else {
             $rowAttributes = array('class' => 'mute');
         }
         $xmlOutput .= DataCenterXml::row($rowAttributes, DataCenterXml::cell(DataCenterXml::div(array('style' => 'padding-left:' . $level * 15 . 'px'), $modelLink->get('name'))) . DataCenterXml::cell(array('align' => 'right'), $modelLink->get('quantity')) . DataCenterXml::cell($model->get('name')) . DataCenterXml::cell(DataCenterUI::message('type', $model->getType())));
         $xmlOutput .= self::renderModel($parameters, $model->getStructure(), $level + 1);
     }
     return $xmlOutput;
 }
Esempio n. 5
0
 public static function render(array $parameters)
 {
     global $wgUser;
     // Gets current path
     $path = DataCenterPage::getPath();
     // Sets Defaults
     $parameters = array_merge(self::$defaultParameters, $parameters);
     // Begins widget
     $xmlOutput = parent::begin($parameters['class']);
     // Builds form attributes
     $formAttributes = array('id' => 'form_export', 'name' => 'form_export', 'method' => 'post', 'action' => DataCenterXml::url($path));
     // Begins form
     $xmlOutput .= DataCenterXml::open('form', $formAttributes);
     // Begins table
     $xmlOutput .= DataCenterXml::open('table', self::$defaultAttributes['table']);
     // Adds ...
     $xmlOutput .= DataCenterXml::row(DataCenterXml::cell(self::$defaultAttributes['label'], DataCenterUI::message('field', 'format')), DataCenterXml::cell(self::$defaultAttributes['input'], DataCenterUI::renderInput('list', array('name' => 'meta[format]', 'options' => array('csv' => 'csv')))));
     $xmlOutput .= DataCenterXml::row(DataCenterXml::cell(self::$defaultAttributes['label'], DataCenterUI::message('field', 'include-meta')), DataCenterXml::cell(self::$defaultAttributes['input'], DataCenterUI::renderInput('boolean', array('name' => 'meta[include-meta]', 'value' => true))));
     if (DataCenterPage::userCan('export')) {
         // Adds reset and submit button
         $xmlOutput .= DataCenterXML::row(DataCenterXml::cell(self::$defaultAttributes['buttons'], DataCenterXml::tag('input', array('type' => 'reset', 'name' => 'reset', 'class' => 'reset', 'value' => DataCenterUI::message('label', 'reset'))) . DataCenterXml::tag('input', array('type' => 'submit', 'name' => 'submit', 'class' => 'submit', 'value' => DataCenterUI::message('label', 'export')))));
     }
     $xmlOutput .= DataCenterXml::close('table');
     // Adds category field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'meta[category]', 'value' => $parameters['category']));
     // Adds type field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'meta[type]', 'value' => $parameters['type']));
     // Adds do field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'do', 'value' => 'export'));
     // Adds token field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'token', 'value' => $wgUser->editToken()));
     // Adds success field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'success', 'value' => DataCenterXml::url($path)));
     // Adds failure field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'failure', 'value' => DataCenterXml::url($path)));
     // Adds canellation field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'cancellation', 'value' => DataCenterXml::url($path)));
     $xmlOutput .= DataCenterXml::close('form');
     // Ends widget
     $xmlOutput .= parent::end();
     // Returns results
     return $xmlOutput;
 }
Esempio n. 6
0
 public static function render(array $parameters)
 {
     // Sets defaults
     $parameters = array_merge(self::$defaultParameters, $parameters);
     // Checks for permissions
     if (!DataCenterPage::userCan($parameters['rights'])) {
         return null;
     }
     // Begins widget
     $xmlOutput = parent::begin($parameters['class']);
     // Checks if links is an array
     if (is_array($parameters['links'])) {
         // Loops over each link
         foreach ($parameters['links'] as $label => $link) {
             // Checks if link is not an array
             if (!is_array($link)) {
                 // Skips the invalid data
                 continue;
             }
             // Checks if a label was not given but an action was
             if (is_int($label) && isset($link['action'])) {
                 // Uses action as label
                 $label = $link['action'];
             }
             if (is_array($link[$parameters['subject']])) {
                 $subject = current($link[$parameters['subject']]);
             } else {
                 $subject = $link[$parameters['subject']];
             }
             // Builds label
             $label = DataCenterUI::message('action', $label . '-type', DataCenterUI::message('type', $subject));
             // Builds link
             $link = DataCenterXml::link($label, $link);
             // Adds action link
             $xmlOutput .= DataCenterXml::div(array('class' => 'action'), $link);
         }
     }
     // Ends widget
     $xmlOutput .= parent::end();
     $xmlOutput .= DataCenterXml::clearFloating();
     // Returns results
     return $xmlOutput;
 }
 public function save(array $data, $type)
 {
     if (!DataCenterPage::userCan('change')) {
         return false;
     }
     switch ($type) {
         case 'location':
             $component = DataCenterDBLocation::newFromValues($data['row']);
             break;
         case 'space':
             $component = DataCenterDBSpace::newFromValues($data['row']);
             break;
     }
     if (isset($component)) {
         $component->save();
         $component->saveMetaValues($data['meta']);
         $component->insertChange($data['change']);
         return true;
     }
     return false;
 }
Esempio n. 8
0
 public function save(array $data, $type)
 {
     if (!DataCenterPage::userCan('change')) {
         return false;
     }
     switch ($type) {
         case 'plan':
             $plan = DataCenterDBPlan::newFromValues($data['row']);
             $plan->save();
             return true;
         case 'rack':
         case 'object':
             $link = DataCenterDBAssetLink::newFromValues($data['row']);
             $link->save();
             return true;
     }
     return false;
 }
 public static function render(array $parameters)
 {
     global $wgUser;
     // Gets current path
     $path = DataCenterPage::getPath();
     // Sets Defaults
     $parameters = array_merge(self::$defaultParameters, $parameters);
     // Begins widget
     $xmlOutput = parent::begin($parameters['class']);
     // Gets existing links from database
     $metaFieldLinks = $parameters['field']->getLinks();
     $existsTable = array();
     foreach ($metaFieldLinks as $metaFieldLink) {
         $key = implode('_', $metaFieldLink->get(array('component_category', 'component_type')));
         $existsTable[$key] = $metaFieldLink;
     }
     // Builds form attributes
     $formAttributes = array('id' => 'form_fieldlinks', 'name' => 'form_fieldlinks', 'method' => 'post', 'action' => DataCenterXml::url($path));
     // Begins form
     $xmlOutput .= DataCenterXml::open('form', $formAttributes);
     // Begins table
     $xmlOutput .= DataCenterXml::open('table', self::$defaultAttributes['table']);
     foreach (self::$targets as $category => $types) {
         $xmlOutput .= DataCenterXml::row(DataCenterXml::headingCell(self::$defaultAttributes['heading'], DataCenterUI::message('category', $category)));
         foreach ($types as $type) {
             $name = $category . '_' . $type;
             $checkboxAttributes = array('type' => 'checkbox', 'name' => "meta[{$name}]", 'id' => "field_{$name}", 'value' => 1);
             $count = 0;
             if (isset($existsTable[$name])) {
                 $checkboxAttributes['checked'] = 'checked';
                 $count = $existsTable[$name]->numValues();
                 if ($count > 0) {
                     $checkboxAttributes['disabled'] = 'true';
                     $checkboxAttributes['name'] = "locked[{$name}]";
                     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => "meta[{$name}]", 'value' => 1));
                 }
             }
             if (!DataCenterPage::userCan('change')) {
                 $checkboxAttributes['disabled'] = 'true';
             }
             $xmlOutput .= DataCenterXml::row(DataCenterXml::cell(self::$defaultAttributes['checkbox'], DataCenterXml::tag('input', $checkboxAttributes)), DataCenterXml::cell(self::$defaultAttributes['label'], DataCenterXml::tag('label', array('for' => "field_{$name}"), DataCenterUI::message('type', $type))), DataCenterXml::cell(self::$defaultAttributes['uses'], $count > 0 ? DataCenterUI::message('label', 'num-uses', $count) : ''));
         }
     }
     if (DataCenterPage::userCan('change')) {
         // Adds reset and submit button
         $xmlOutput .= DataCenterXML::row(DataCenterXml::cell(self::$defaultAttributes['buttons'], DataCenterXml::tag('input', array('type' => 'reset', 'name' => 'reset', 'class' => 'reset', 'value' => DataCenterUI::message('label', 'reset'))) . DataCenterXml::tag('input', array('type' => 'submit', 'name' => 'submit', 'class' => 'submit', 'value' => DataCenterUI::message('label', 'save')))));
     }
     $xmlOutput .= DataCenterXml::close('table');
     // Adds row fields
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'row[id]', 'value' => $parameters['field']->getId()));
     // Adds do field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'do', 'value' => 'saveFieldLinks'));
     // Adds token field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'token', 'value' => $wgUser->editToken()));
     // Adds success field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'success', 'value' => DataCenterXml::url($path)));
     // Adds failure field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'failure', 'value' => DataCenterXml::url($path)));
     // Adds canellation field
     $xmlOutput .= DataCenterXml::tag('input', array('type' => 'hidden', 'name' => 'cancellation', 'value' => DataCenterXml::url($path)));
     $xmlOutput .= DataCenterXml::close('form');
     // Ends widget
     $xmlOutput .= parent::end();
     // Returns results
     return $xmlOutput;
 }