Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php =================================================================== diff -u -r1485 -r1487 --- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php (.../selectors_event_handler.php) (revision 1485) +++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php (.../selectors_event_handler.php) (revision 1487) @@ -60,10 +60,13 @@ list($id,$field_values) = each($items_info); if($id == 0) { - $object->Load( $field_values['ParentId'] ); + $parent_id = getArrayValue($field_values,'ParentId'); + if($parent_id) $object->Load($parent_id); + $object->SetFieldsFromHash($field_values); $object->Create(); if( $object->IsTempTable() ) $object->setTempID(); + $this->Application->SetVar($event->getPrefixSpecial().'_id', $object->GetID() ); } else { @@ -189,7 +192,15 @@ $object->SetDBField('SelectorData', $selector_data); return $selector_data; } - return $selector_data; + else + { + foreach($selector_data as $prop_name => $prop_value) + { + if(!$prop_value) unset($selector_data[$prop_name]); + } + $object->SetDBField('SelectorData', $selector_data); + return $selector_data; + } } /** @@ -225,11 +236,31 @@ { $object =& $event->getObject(); $object->SetFieldsFromHash( $this->getSubmittedFields($event) ); - $object->SetDBField( 'SelectorData', Array() ); - $object->Update(); + $object->ResetStyle(); $event->redirect_params['pass'] = 'all,'.$event->getPrefixSpecial(); } + + /** + * Resets selected styles properties to values of their base classes + * + * @param kEvent $event + */ + function OnMassResetToBase(&$event) + { + $this->Application->setUnitOption($event->Prefix,'AutoLoad',false); + $object =& $event->getObject(); + + $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); + if($items_info) + { + foreach($items_info as $id => $field_values) + { + $object->Load($id); + $object->ResetStyle(); + } + } + } } ?> \ No newline at end of file