Revision: 45990
Author: tparscal
Date: 2009-01-22 01:06:49 +0000 (Thu, 22 Jan 2009)
Log Message:
-----------
Modified form and details widgets as well as all form processing code to
facilitate modifying a row as well as meta and change information for that row
if it's a component.
Modified Paths:
--------------
trunk/extensions/DataCenter/Controllers/Assets.php
trunk/extensions/DataCenter/Controllers/Facilities.php
trunk/extensions/DataCenter/Controllers/Models.php
trunk/extensions/DataCenter/Controllers/Plans.php
trunk/extensions/DataCenter/Controllers/Settings.php
trunk/extensions/DataCenter/DataCenter.css
trunk/extensions/DataCenter/DataCenter.db.php
trunk/extensions/DataCenter/DataCenter.i18n.php
trunk/extensions/DataCenter/DataCenter.page.php
trunk/extensions/DataCenter/DataCenter.sql
trunk/extensions/DataCenter/DataCenter.ui.php
trunk/extensions/DataCenter/UI/Inputs/Boolean.php
trunk/extensions/DataCenter/UI/Widgets/Details.php
trunk/extensions/DataCenter/UI/Widgets/Form.php
trunk/extensions/DataCenter/Views/Assets.php
trunk/extensions/DataCenter/Views/Facilities/Location.php
trunk/extensions/DataCenter/Views/Facilities/Space.php
trunk/extensions/DataCenter/Views/Models.php
trunk/extensions/DataCenter/Views/Plans/Plan.php
Modified: trunk/extensions/DataCenter/Controllers/Assets.php
===================================================================
--- trunk/extensions/DataCenter/Controllers/Assets.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/Controllers/Assets.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -47,10 +47,10 @@
array $data,
$type
) {
- $asset = DataCenterDBAsset::newFromType( $type, $data );
+ $asset = DataCenterDBAsset::newFromType( $type, $data['row'] );
$asset->save();
- $change = DataCenterDBChange::newFromComponent( $asset );
- $change->save();
+ $asset->saveMetaValues( $data['meta'] );
+ $asset->saveChange( $data['change'] );
return true;
}
}
\ No newline at end of file
Modified: trunk/extensions/DataCenter/Controllers/Facilities.php
===================================================================
--- trunk/extensions/DataCenter/Controllers/Facilities.php 2009-01-22
00:15:16 UTC (rev 45989)
+++ trunk/extensions/DataCenter/Controllers/Facilities.php 2009-01-22
01:06:49 UTC (rev 45990)
@@ -49,16 +49,16 @@
) {
switch ( $type ) {
case 'location':
- $component =
DataCenterDBLocation::newFromValues( $data );
+ $component =
DataCenterDBLocation::newFromValues( $data['row'] );
break;
case 'space':
- $component = DataCenterDBSpace::newFromValues(
$data );
+ $component = DataCenterDBSpace::newFromValues(
$data['row'] );
break;
}
if ( isset( $component ) ) {
$component->save();
- $change = DataCenterDBChange::newFromComponent(
$component );
- $change->save();
+ $component->saveMetaValues( $data['meta'] );
+ $component->saveChange( $data['change'] );
return true;
}
return false;
Modified: trunk/extensions/DataCenter/Controllers/Models.php
===================================================================
--- trunk/extensions/DataCenter/Controllers/Models.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/Controllers/Models.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -48,10 +48,10 @@
array $data,
$type
) {
- $model = DataCenterDBModel::newFromType( $type, $data );
+ $model = DataCenterDBModel::newFromType( $type, $data['row'] );
$model->save();
- $change = DataCenterDBChange::newFromComponent( $model );
- $change->save();
+ $model->saveMetaValues( $data['meta'] );
+ $model->saveChange( $data['change'] );
return true;
}
@@ -59,7 +59,7 @@
array $data,
$type
) {
- $link = DataCenterDBModelLink::newFromValues( $data );
+ $link = DataCenterDBModelLink::newFromValues( $data['row'] );
if ( $link->get( 'quantity' ) == 0 ) {
$link->delete();
} else {
Modified: trunk/extensions/DataCenter/Controllers/Plans.php
===================================================================
--- trunk/extensions/DataCenter/Controllers/Plans.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/Controllers/Plans.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -94,7 +94,7 @@
) {
switch ( $type ) {
case 'plan':
- $plan = DataCenterDBPlan::newFromValues( $data
);
+ $plan = DataCenterDBPlan::newFromValues(
$data['row'] );
foreach ( $plan->getLinks() as $childLink ) {
$childLink->delete();
}
@@ -102,7 +102,7 @@
return true;
case 'rack':
case 'object':
- $link = DataCenterDBAssetLink::newFromValues(
$data );
+ $link = DataCenterDBAssetLink::newFromValues(
$data['row'] );
foreach ( $link->getLinks() as $childLink ) {
$childLink->delete();
}
@@ -118,12 +118,12 @@
) {
switch ( $type ) {
case 'plan':
- $plan = DataCenterDBPlan::newFromValues( $data
);
+ $plan = DataCenterDBPlan::newFromValues(
$data['row'] );
$plan->save();
return true;
case 'rack':
case 'object':
- $link = DataCenterDBAssetLink::newFromValues(
$data );
+ $link = DataCenterDBAssetLink::newFromValues(
$data['row'] );
$link->save();
return true;
}
Modified: trunk/extensions/DataCenter/Controllers/Settings.php
===================================================================
--- trunk/extensions/DataCenter/Controllers/Settings.php 2009-01-22
00:15:16 UTC (rev 45989)
+++ trunk/extensions/DataCenter/Controllers/Settings.php 2009-01-22
01:06:49 UTC (rev 45990)
@@ -26,7 +26,7 @@
array $data,
$type
) {
- $setting = DataCenterMeta::newFromValues( $type, $data );
+ $setting = DataCenterMeta::newFromValues( $type, $data['row'] );
return $setting->save();
}
@@ -34,7 +34,7 @@
array $data,
$type
) {
- $setting = DataCenterMeta::newFromValues( $type, $data );
+ $setting = DataCenterMeta::newFromValues( $type, $data['row'] );
return $setting->save();
}
}
\ No newline at end of file
Modified: trunk/extensions/DataCenter/DataCenter.css
===================================================================
--- trunk/extensions/DataCenter/DataCenter.css 2009-01-22 00:15:16 UTC (rev
45989)
+++ trunk/extensions/DataCenter/DataCenter.css 2009-01-22 01:06:49 UTC (rev
45990)
@@ -3,13 +3,6 @@
div.datacenter-ui {
min-width: 720px;
}
-.datacenter-ui form {
- margin: 0px;
- padding: 0px;
-}
-.datacenter-ui form input.cancel {
- margin-right: 10px;
-}
div.datacenter-ui div.menu {
height: 22px;
border-bottom: solid 1px silver;
@@ -92,6 +85,36 @@
padding-right: 6px;
}
+/*
+ * Form Widget
+ */
+
+.datacenter-ui div.widget-form {
+ border: solid 1px silver;
+}
+.datacenter-ui div.widget-form form {
+ margin: 0px;
+ padding: 0px;
+}
+.datacenter-ui div.widget-form input.cancel {
+ margin-right: 10px;
+}
+div.datacenter-ui div.widget-form tr td {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ padding-left: 8px;
+ padding-right: 8px;
+}
+div.datacenter-ui div.widget-form tr.row {
+ background-color: #FFFFFF;
+}
+div.datacenter-ui div.widget-form tr.meta {
+ background-color: #FFEEDD;
+}
+div.datacenter-ui div.widget-form tr.change {
+ background-color: #DDEEFF;
+}
+
/**
* Heading Widget
*/
@@ -295,12 +318,21 @@
div.datacenter-ui div.input-tense label.label {
margin-right: 5px;
}
-
div.datacenter-ui div.input-tense label.disabled {
color: silver;
}
/**
+ * Boolean Widget
+ */
+div.datacenter-ui div.input-boolean input.button {
+ margin-right: 5px;
+}
+div.datacenter-ui div.input-boolean label.label {
+ margin-right: 5px;
+}
+
+/**
* Number Widget
*/
div.datacenter-ui div.input-number input.number {
Modified: trunk/extensions/DataCenter/DataCenter.db.php
===================================================================
--- trunk/extensions/DataCenter/DataCenter.db.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/DataCenter.db.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -1540,12 +1540,58 @@
);
}
+ public function saveMetaValues(
+ $values = null
+ ) {
+ if ( !is_array( $values ) ) {
+ return;
+ }
+ $metaValues = $this->getMetaValues();
+ $metaValuesTable = array();
+ foreach ( $metaValues as $metaValue ) {
+ $metaValuesTable[$metaValue->get( 'field' )] =
$metaValue;
+ }
+ foreach ( $values as $field => $value ) {
+ if ( isset( $metaValuesTable[$field] ) ) {
+ $metaValue =
DataCenterDBMetaValue::newFromComponent(
+ $this,
+ array(
+ 'id' =>
$metaValuesTable[$field]->getId(),
+ 'value' => $value
+ )
+ );
+ if ( $value !== '' ) {
+ $metaValue->update();
+ } else {
+ $metaValue->delete();
+ }
+ } else {
+ if ( $value !== '' ) {
+ $metaValue =
DataCenterDBMetaValue::newFromComponent(
+ $this, array( 'field' =>
$field, 'value' => $value )
+ );
+ $metaValue->insert();
+ }
+ }
+ }
+ }
+
+ public function saveChange(
+ $values
+ ) {
+ if ( !is_array( $values ) ) {
+ return;
+ }
+ $change = DataCenterDBChange::newFromComponent( $this, $values
);
+ $change->save();
+ }
+
/**
* Gets meta fields linked to this component
*/
public function getMetaFields() {
return DataCenterDB::getRows(
- 'DataCenterDBMeta',
+ 'DataCenterDBMetaField',
'link',
'field',
array_merge_recursive(
@@ -1556,8 +1602,9 @@
'link', 'field', 'component_type',
$this->type
),
DataCenterDB::buildJoin(
- 'meta', 'field', 'name', 'id',
- 'link', 'field', 'name', 'field'
+ 'meta', 'field','id',
+ 'link', 'field','field',
+ array( 'name', 'format' )
)
)
);
@@ -1568,7 +1615,7 @@
*/
public function getMetaValues() {
return DataCenterDB::getRows(
- 'DataCenterDBMeta',
+ 'DataCenterDBMetaValue',
'meta',
'value',
array_merge_recursive(
@@ -1584,7 +1631,7 @@
DataCenterDB::buildJoin(
'meta', 'field', 'id',
'meta', 'value', 'field',
- array( 'name' )
+ array( 'name', 'format' )
)
)
);
@@ -1839,7 +1886,7 @@
class DataCenterDBMetaFieldLink extends DataCenterDBLink {
- /* Functions */
+ /* Static Functions */
/**
* Wraps DataCenterDBRow::newFromClass specializing...
@@ -1858,7 +1905,7 @@
class DataCenterDBLocation extends DataCenterDBComponent {
- /* Functions */
+ /* Static Functions */
/**
* Wraps DataCenterDBRow::newFromClass specializing...
@@ -1874,6 +1921,8 @@
);
}
+ /* Functions */
+
public function getSpaces(
array $options = array()
) {
@@ -1893,7 +1942,7 @@
class DataCenterDBSpace extends DataCenterDBComponent {
- /* Functions */
+ /* Static Functions */
/**
* Wraps DataCenterDBRow::newFromClass specializing...
@@ -1932,7 +1981,7 @@
class DataCenterDBMetaField extends DataCenterDBRow {
- /* Functions */
+ /* Static Functions */
/**
* Wraps DataCenterDBRow::newFromClass specializing...
@@ -1949,7 +1998,7 @@
class DataCenterDBMetaValue extends DataCenterDBRow {
- /* Functions */
+ /* Static Functions */
/**
* Wraps DataCenterDBRow::newFromClass specializing...
@@ -1962,11 +2011,33 @@
) {
return parent::newFromClass( __CLASS__, 'meta', 'value',
$values );
}
+
+ /**
+ * Creates new meta value from object
+ * @param component DataCenterDBComponent to create
change for
+ * @param values Array of fields and values for
an instance
+ * of
DataCenterDBMetaValue
+ */
+ public static function newFromComponent(
+ DataCenterDBComponent $component,
+ array $values = array()
+ ) {
+ return self::newFromValues(
+ array_merge(
+ $values,
+ array(
+ 'component_category' =>
$component->getCategory(),
+ 'component_type' =>
$component->getType(),
+ 'component_id' => $component->getId(),
+ )
+ )
+ );
+ }
}
class DataCenterDBChange extends DataCenterDBRow {
- /* Functions */
+ /* Static Functions */
/**
* Wraps DataCenterDBRow::newFromClass specializing...
@@ -1981,36 +2052,27 @@
}
/**
- * Logs change to this object
- * @param type String of type of change being
performed
- * @param note String of note to attach to
change
+ * Creates new change from object
+ * @param component DataCenterDBComponent to create
change for
+ * @param values Array of fields and values for
an instance
+ * of
DataCenterDBChange
*/
public static function newFromComponent(
DataCenterDBComponent $component,
- $type = null,
- $note = null
+ array $values = array()
) {
global $wgUser;
- if ( $type !== null && !is_string( $type ) ) {
- throw new MWException(
- $type . ' is not a valid type of change'
- );
- }
- if ( $note !== null && !is_string( $note ) ) {
- throw new MWException(
- $type . ' is not a valid change note'
- );
- }
return self::newFromValues(
- array(
- 'timestamp' => wfTimestampNow(),
- 'user' => $wgUser->getId(),
- 'type' => $type,
- 'component_category' =>
$component->getCategory(),
- 'component_type' => $component->getType(),
- 'component_id' => $component->getId(),
- 'note' => $note,
- 'state' => serialize( $component->get() ),
+ array_merge(
+ $values,
+ array(
+ 'timestamp' => wfTimestampNow(),
+ 'user' => $wgUser->getId(),
+ 'component_category' =>
$component->getCategory(),
+ 'component_type' =>
$component->getType(),
+ 'component_id' => $component->getId(),
+ 'state' => serialize( $component->get()
),
+ )
)
);
}
Modified: trunk/extensions/DataCenter/DataCenter.i18n.php
===================================================================
--- trunk/extensions/DataCenter/DataCenter.i18n.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/DataCenter.i18n.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -72,6 +72,8 @@
'datacenter-ui-option-past' => 'Past',
'datacenter-ui-option-present' => 'Present',
'datacenter-ui-option-future' => 'Future',
+ 'datacenter-ui-option-true' => 'True',
+ 'datacenter-ui-option-false' => 'False',
// Errors
'datacenter-ui-error-insufficient-data' => 'You have provided
insufficient data',
'datacenter-ui-error-invalid-data' => 'You have provided invalid data',
@@ -126,6 +128,7 @@
'datacenter-ui-field-form-factor' => 'Form Factor',
'datacenter-ui-field-manufacturer' => 'Manufacturer',
'datacenter-ui-field-tense' => 'Tense',
+ 'datacenter-ui-field-change-summary' => 'Change Summary',
// Label
'datacenter-ui-label-cancel' => 'Cancel',
'datacenter-ui-label-remove' => 'Remove',
@@ -165,7 +168,7 @@
'datacenter-ui-heading-editing-type' => 'Editing $1',
'datacenter-ui-heading-adding-type' => 'Adding $1',
'datacenter-ui-heading-assets-type' => '$1 Assets',
- 'datacenter-ui-heading-models-type' => '$1 Assets',
+ 'datacenter-ui-heading-models-type' => '$1 Models',
'datacenter-ui-heading-deploying-asset-type' => 'Deploying $1 Asset',
'datacenter-ui-heading-managing-asset-type' => 'Managing $1 Asset',
'datacenter-ui-heading-model-type' => '$1 Model',
Modified: trunk/extensions/DataCenter/DataCenter.page.php
===================================================================
--- trunk/extensions/DataCenter/DataCenter.page.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/DataCenter.page.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -99,12 +99,12 @@
'assets' => array(
'controller' => 'DataCenterControllerAssets',
'view' => 'DataCenterViewAssets',
- 'default' => 'rack'
+ 'default' => 'object'
),
'models' => array(
'controller' => 'DataCenterControllerModels',
'view' => 'DataCenterViewModels',
- 'default' => 'rack'
+ 'default' => 'object'
),
'history' => array(
'controller' => 'DataCenterControllerHistory',
@@ -291,8 +291,12 @@
$wgRequest->getText( 'cancellation' )
);
} else {
- // Gets
submitted data relevant to do
- $data =
$wgRequest->getArray( $do );
+ // Gets
submitted data
+ $data = array(
+ 'row'
=> $wgRequest->getArray( 'row' ),
+ 'meta'
=> $wgRequest->getArray( 'meta' ),
+
'change' => $wgRequest->getArray( 'change' )
+ );
// Delegates
handling of form submissions
$status =
$controller->$do(
$data,
$path['type']
Modified: trunk/extensions/DataCenter/DataCenter.sql
===================================================================
--- trunk/extensions/DataCenter/DataCenter.sql 2009-01-22 00:15:16 UTC (rev
45989)
+++ trunk/extensions/DataCenter/DataCenter.sql 2009-01-22 01:06:49 UTC (rev
45990)
@@ -508,7 +508,8 @@
VALUES
( 'WikiMedia Owned', 'boolean' ),
( 'Extra Notes', 'text' ),
- ( 'Weight (LBS)', 'number' );
+ ( 'Weight (LBS)', 'number' ),
+ ( 'Assigned User', 'string' );
--
INSERT INTO dc_meta_values
(
@@ -574,5 +575,6 @@
( 2, 'facility', 'space' ),
( 2, 'asset', 'rack' ),
( 2, 'asset', 'object' ),
- ( 3, 'asset', 'object' );
+ ( 3, 'asset', 'object' ),
+ ( 4, 'asset', 'object' );
--
Modified: trunk/extensions/DataCenter/DataCenter.ui.php
===================================================================
--- trunk/extensions/DataCenter/DataCenter.ui.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/DataCenter.ui.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -841,6 +841,9 @@
case 'angle':
return self::message( 'label', 'degrees-value',
$value * 90 );
break;
+ case 'boolean':
+ return self::message( 'option', $value ? 'true'
: 'false' );
+ break;
default:
// Performs no formatting
return $value;
Modified: trunk/extensions/DataCenter/UI/Inputs/Boolean.php
===================================================================
--- trunk/extensions/DataCenter/UI/Inputs/Boolean.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/UI/Inputs/Boolean.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -37,19 +37,35 @@
$parameters = array_merge( self::$defaultParameters,
$parameters );
// Begins input
$xmlOutput = parent::begin( $parameters['class'] );
- // Adds button
- $xmlOutput .= DataCenterXml::tag(
- 'input',
- array_merge(
- array(
- 'type' => 'checkbox',
- 'id' => $parameters['id'],
- 'name' => $parameters['name'],
- 'class' => 'button',
- ),
- ( $parameters['value'] ? array( 'checked' =>
'checked' ) : array() )
- )
- );
+ // Creates list of buttons
+ $buttons = array( 'true' => true, 'false' => false );
+ // Adds buttons
+ foreach ( $buttons as $button => $value ) {
+ $radioAttributes = array(
+ 'type' => 'radio',
+ 'id' => $parameters['id'] . '_' . $button,
+ 'name' => $parameters['name'],
+ 'value' => $value ? 1 : 0,
+ 'class' => 'button',
+ );
+ $labelAttributes = array(
+ 'for' => $parameters['id'] . '_' . $button,
+ 'class' => 'label'
+ );
+ if (
+ ( $parameters['value'] == ( $value ? 1 : 0 ) )
&&
+ ( $parameters['value'] !== null ) &&
+ ( $parameters['value'] !== '' )
+ ) {
+ $radioAttributes['checked'] = 'checked';
+ }
+ $xmlOutput .= DataCenterXml::tag( 'input',
$radioAttributes );
+ $xmlOutput .= DataCenterXml::tag(
+ 'label',
+ $labelAttributes,
+ DataCenterUI::message( 'option', $button )
+ );
+ }
// Ends input
$xmlOutput .= parent::end();
// Returns XML
Modified: trunk/extensions/DataCenter/UI/Widgets/Details.php
===================================================================
--- trunk/extensions/DataCenter/UI/Widgets/Details.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/UI/Widgets/Details.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -110,19 +110,20 @@
}
if (
$parameters['meta'] &&
- $parameters['row'] instanceof DataCenterAsset
+ $parameters['row'] instanceof DataCenterDBComponent
) {
$values = $parameters['row']->getMetaValues();
foreach ( $values as $value ) {
// Adds row
$xmlOutput .= DataCenterXml::row(
DataCenterXml::cell(
- array( 'class' => 'label' ),
- $value->get( 'name' )
+ array( 'class' => 'label' ),
$value->get( 'name' )
),
DataCenterXml::cell(
array( 'class' => 'value' ),
- $value->get( 'value' )
+ DataCenterUI::format(
+ $value->get( 'value' ),
$value->get( 'format' )
+ )
)
);
}
Modified: trunk/extensions/DataCenter/UI/Widgets/Form.php
===================================================================
--- trunk/extensions/DataCenter/UI/Widgets/Form.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/UI/Widgets/Form.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -82,6 +82,16 @@
* @datatype array
*/
'hidden' => array(),
+ /**
+ * Whether to display meta fields as well
+ * @datatype boolean
+ */
+ 'meta' => true,
+ /**
+ * Name of type of transaction being processed used when
logging changes
+ * @datatype string
+ */
+ 'type' => null,
);
private static $defaultAttributes = array(
@@ -123,6 +133,24 @@
'align' => 'right',
'colspan' => 2
),
+ /**
+ * Default XML attributes for data row
+ */
+ 'row' => array(
+ 'class' => 'row',
+ ),
+ /**
+ * Default XML attributes for meta row
+ */
+ 'meta' => array(
+ 'class' => 'meta',
+ ),
+ /**
+ * Default XML attributes for change row
+ */
+ 'change' => array(
+ 'class' => 'change',
+ ),
);
/* Functions */
@@ -160,7 +188,9 @@
// Loops over each field
foreach ( $parameters['fields'] as $label => $options ) {
// Begins row
- $xmlOutput .= DataCenterXml::open( 'tr' );
+ $xmlOutput .= DataCenterXml::open(
+ 'tr', self::$defaultAttributes['row']
+ );
// Checks if the key is a numeric index
if ( is_int( $label ) ) {
// Adds an empty cell
@@ -213,7 +243,7 @@
"field_{$options['type']}_{$count[$options['type']]}";
// Sets name of input for form
processing
$inputOptions['name'] =
-
"{$parameters['do']}[{$inputOptions['field']}]";
+ "row[{$inputOptions['field']}]";
} else {
// Checks if a specific field was given
if ( isset( $inputOptions['field'] ) ) {
@@ -228,8 +258,7 @@
$inputOptions['id'] =
"field_{$inputOptions['field']}";
// Sets name of input for form
processing
- $inputOptions['name'] =
-
"{$parameters['do']}[{$inputOptions['field']}]";
+ $inputOptions['name'] =
"row[{$inputOptions['field']}]";
// Alternatively checks if a list of
fields were given
} else if ( isset(
$inputOptions['fields'] ) ) {
// Loops over each sub-field
@@ -259,7 +288,7 @@
"field_{$fieldName}";
// Sets the name of the
field
$inputOptions['fields'][$key]['name'] =
-
"{$parameters['do']}[{$fieldName}]";
+
"row[{$fieldName}]";
}
}
}
@@ -280,6 +309,75 @@
// Ends field row
$xmlOutput .= DataCenterXml::close( 'tr' );
}
+ // Checks if row is a component
+ if (
+ $parameters['meta'] &&
+ $parameters['row'] instanceof DataCenterDBComponent
+ ) {
+ // Adds meta fields
+ $metaFields = $parameters['row']->getMetaFields();
+ $metaValues = $parameters['row']->getMetaValues();
+ $valuesTable = DataCenterDB::buildLookupTable(
+ 'field', $metaValues
+ );
+ foreach( $metaFields as $metaField ) {
+ $field = $metaField->get( 'field' );
+ $value = '';
+ if (
+ isset( $valuesTable[$field][0] ) &&
+ $valuesTable[$field][0] instanceof
DataCenterDBMetaValue
+ ) {
+ $value = $valuesTable[$field][0]->get(
'value' );
+ }
+ // Begins row
+ $xmlOutput .= DataCenterXml::open(
+ 'tr', self::$defaultAttributes['meta']
+ );
+ // Adds label cell
+ $xmlOutput .= DataCenterXml::cell(
+ self::$defaultAttributes['label'],
+ $metaField->get( 'name' )
+ );
+ // Adds input cell
+ $xmlOutput .= DataCenterXml::cell(
+ self::$defaultAttributes['field'],
+ DataCenterUI::renderInput(
+ $metaField->get( 'format' ),
+ array(
+ 'name' => 'meta[' .
$field . ']',
+ 'id' => 'meta_' .
$field,
+ 'value' => $value
+ )
+ )
+ );
+ // Ends field row
+ $xmlOutput .= DataCenterXml::close( 'tr' );
+ }
+ // Adds change comment field
+ $xmlOutput .= DataCenterXml::row(
+ self::$defaultAttributes['change'],
+ DataCenterXml::cell(
+ self::$defaultAttributes['label'],
+ DataCenterUI::message( 'field',
'change-summary' )
+ ),
+ DataCenterXml::cell(
+ self::$defaultAttributes['field'],
+ DataCenterUI::renderInput(
+ 'string',
+ array( 'name' =>
'change[note]', 'id' => 'change_note' )
+ )
+ )
+ );
+ // Adds type of edit field
+ $xmlOutput .= DataCenterXml::tag(
+ 'input',
+ array(
+ 'type' => 'hidden',
+ 'name' => 'change[type]',
+ 'value' => $parameters['type']
+ )
+ );
+ }
// Adds cancel and submit button
$xmlOutput .= DataCenterXML::row(
DataCenterXml::cell(
@@ -363,7 +461,7 @@
'input',
array(
'type' => 'hidden',
- 'name' =>
"{$parameters['do']}[{$value}]",
+ 'name' => "row[{$value}]",
'value' =>
$parameters['row']->get( $value )
)
);
@@ -373,7 +471,7 @@
'input',
array(
'type' => 'hidden',
- 'name' =>
"{$parameters['do']}[{$key}]",
+ 'name' => "row[{$key}]",
'value' => $value
)
);
Modified: trunk/extensions/DataCenter/Views/Assets.php
===================================================================
--- trunk/extensions/DataCenter/Views/Assets.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/Views/Assets.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -283,6 +283,7 @@
'page' => 'assets',
'type' => $path['type'],
),
+ 'type' => 'deploy',
);
$headingParameters = array(
'message' => 'deploying-asset-type',
@@ -303,6 +304,7 @@
'action' => 'view',
'id' => $path['id'],
),
+ 'type' => 'manage',
);
$headingParameters = array(
'message' => 'managing-asset-type',
Modified: trunk/extensions/DataCenter/Views/Facilities/Location.php
===================================================================
--- trunk/extensions/DataCenter/Views/Facilities/Location.php 2009-01-22
00:15:16 UTC (rev 45989)
+++ trunk/extensions/DataCenter/Views/Facilities/Location.php 2009-01-22
01:06:49 UTC (rev 45990)
@@ -99,6 +99,8 @@
}
// Gets location from database
$location = DataCenterDB::getLocation( $path['id'] );
+ // Gets meta values
+ $metaValues = $location->getMetaValues();
// Gets spaces in location from database
$spaces = $location->getSpaces(
DataCenterDB::buildSort( 'facility', 'space', 'name' )
@@ -204,6 +206,7 @@
'page' => 'facilities',
'type' => 'location'
),
+ 'type' => 'add',
);
$headingParameters = array(
'message' => 'adding-type',
@@ -222,6 +225,7 @@
'action' => 'view',
'id' => $path['id'],
),
+ 'type' => 'edit',
);
$headingParameters = array(
'message' => 'editing-type',
Modified: trunk/extensions/DataCenter/Views/Facilities/Space.php
===================================================================
--- trunk/extensions/DataCenter/Views/Facilities/Space.php 2009-01-22
00:15:16 UTC (rev 45989)
+++ trunk/extensions/DataCenter/Views/Facilities/Space.php 2009-01-22
01:06:49 UTC (rev 45990)
@@ -230,6 +230,7 @@
'action' => 'view',
'id' => $path['parameter'][1],
),
+ 'type' => 'add',
);
$headingParameters = array(
'message' => 'adding-type',
@@ -248,6 +249,7 @@
'action' => 'view',
'id' => $path['id'],
),
+ 'type' => 'edit',
);
$headingParameters = array(
'message' => 'editing-type',
Modified: trunk/extensions/DataCenter/Views/Models.php
===================================================================
--- trunk/extensions/DataCenter/Views/Models.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/Views/Models.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -498,6 +498,7 @@
'page' => 'models',
'type' => $path['type']
),
+ 'type' => 'create',
);
$headingParameters = array(
'message' => 'creating-model-type',
@@ -516,6 +517,7 @@
'action' => 'view',
'id' => $path['id'],
),
+ 'type' => 'modify',
);
$headingParameters = array(
'message' => 'modifying-model-type',
Modified: trunk/extensions/DataCenter/Views/Plans/Plan.php
===================================================================
--- trunk/extensions/DataCenter/Views/Plans/Plan.php 2009-01-22 00:15:16 UTC
(rev 45989)
+++ trunk/extensions/DataCenter/Views/Plans/Plan.php 2009-01-22 01:06:49 UTC
(rev 45990)
@@ -71,57 +71,58 @@
$rack = $rackLink->getAsset();
$zoomOptions['zoom-from-rack'] = $rack->getId();
}
- if ( $tables['rack'] ) {
- // Builds table of racks
- $racks = DataCenterUI::renderWidget(
- 'table',
- array(
- 'rows' => $tables['rack'],
- 'fields' => array(
- 'name',
- 'manufacturer',
- 'model',
- ),
- 'link' => array(
- 'page' => 'plans',
- 'type' => 'rack',
- 'action' => 'view',
- 'id' => '#id'
- ),
- 'effects' => array(
- array(
- 'event' =>
'onmouseover',
- 'script' =>
DataCenterJs::chain(
- array_merge(
- $target,
- array(
-
'setRackHighlight' => array(
-
'{asset_id}',
-
DataCenterJs::toScalar( true ),
-
)
+ if ( !isset( $tables['rack'] ) ) {
+ $tables['rack'] = array();
+ }
+ // Builds table of racks
+ $racks = DataCenterUI::renderWidget(
+ 'table',
+ array(
+ 'rows' => $tables['rack'],
+ 'fields' => array(
+ 'name',
+ 'manufacturer',
+ 'model',
+ ),
+ 'link' => array(
+ 'page' => 'plans',
+ 'type' => 'rack',
+ 'action' => 'view',
+ 'id' => '#id'
+ ),
+ 'effects' => array(
+ array(
+ 'event' => 'onmouseover',
+ 'script' => DataCenterJs::chain(
+ array_merge(
+ $target,
+ array(
+
'setRackHighlight' => array(
+
'{asset_id}',
+
DataCenterJs::toScalar( true ),
)
- ),
- false
+ )
),
+ false
),
- array(
- 'event' => 'onmouseout',
- 'script' =>
DataCenterJs::chain(
- array_merge(
- $target,
- array(
-
'clearRackHighlight' => array(
-
DataCenterJs::toScalar( true ),
-
)
+ ),
+ array(
+ 'event' => 'onmouseout',
+ 'script' => DataCenterJs::chain(
+ array_merge(
+ $target,
+ array(
+
'clearRackHighlight' => array(
+
DataCenterJs::toScalar( true ),
)
- ),
- false
+ )
),
+ false
),
),
- )
- );
- }
+ ),
+ )
+ );
// Returns single columm layout with a table
return DataCenterUI::renderLayout(
'columns',
@@ -353,7 +354,9 @@
'fields' => array(
'tense' => array(
'type' => 'tense',
-
'disable' => array( 'past' )
+
'disable' => !$path['id'] ?
+
array( 'past' ) :
+
array()
),
'name' => array( 'type' => 'string' ),
'note' => array( 'type' => 'text' )
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs