Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/stylesheets_edit_block.tpl =================================================================== diff -u -r1469 -r1487 --- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/stylesheets_edit_block.tpl (.../stylesheets_edit_block.tpl) (revision 1469) +++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/stylesheets_edit_block.tpl (.../stylesheets_edit_block.tpl) (revision 1487) @@ -63,7 +63,13 @@ set_hidden_field('remove_specials[selectors.block]',1); submit_event('selectors.block','OnMassClone'); } - ) ); + ) ); + + a_toolbar.AddButton( new ToolBarButton('reset_to_base', '', function() { + set_hidden_field('remove_specials[selectors.block]',1); + submit_event('selectors.block','OnMassResetToBase'); + } + ) ); a_toolbar.AddButton( new ToolBarSeparator('sep4') ); Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_tag_processor.php =================================================================== diff -u -r1484 -r1487 --- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_tag_processor.php (.../selectors_tag_processor.php) (revision 1484) +++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_tag_processor.php (.../selectors_tag_processor.php) (revision 1487) @@ -49,6 +49,41 @@ return $ret; } + function PredefinedOptions($params) + { + $field = $params['field']; + $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); + + $value = $object->GetDBField($field); + $subfield = getArrayValue($params,'subfield'); + if($subfield && $subfield != '$subfield') $value = $value[$subfield]; + + $value_field = getArrayValue($params,'value_field'); + if(!$value_field) $value_field = $field; + + $options = $object->GetFieldOptions($value_field); + + $block_params['name'] = $params['block']; + $block_params['field'] = $params['field']; + $block_params['pass_params'] = 'true'; + + $selected_param_name = $params['selected_param']; + if (!$selected_param_name) $selected_param_name = $params['selected']; + $selected = $params['selected']; + + $o = ''; + foreach ($options['options'] as $key => $val) { + $block_params['key'] = $key; + $block_params['option'] = $val; + $block_params['field_name'] = $this->InputName($params); + $block_params[$selected_param_name] = ( $key == $value ? ' '.$selected : ''); + $block_params['PrefixSpecial'] = $this->getPrefixSpecial(); + $o .= $this->Application->ParseBlock($block_params, 1); + } + + return $o; + } + } ?> \ No newline at end of file Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/block_style_edit.tpl =================================================================== diff -u -r1486 -r1487 --- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/block_style_edit.tpl (.../block_style_edit.tpl) (revision 1486) +++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/block_style_edit.tpl (.../block_style_edit.tpl) (revision 1487) @@ -25,7 +25,7 @@ a_toolbar.AddButton( new ToolBarSeparator('sep1') ); - a_toolbar.AddButton( new ToolBarButton('reset_to_base', '', function() { + a_toolbar.AddButton( new ToolBarButton('reset_to_base', '', function() { submit_event('selectors','OnResetToBase'); } ) ); Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl =================================================================== diff -u -r1486 -r1487 --- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl (.../style_editor.tpl) (revision 1486) +++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl (.../style_editor.tpl) (revision 1487) @@ -35,7 +35,7 @@ a_toolbar.AddButton( new ToolBarSeparator('sep1') ); - a_toolbar.AddButton( new ToolBarButton('reset_to_base', '', function() { + a_toolbar.AddButton( new ToolBarButton('reset_to_base', '', function() { submit_event('selectors','OnResetToBase'); } ) ); @@ -75,7 +75,7 @@   @@ -85,15 +85,32 @@ - + + - - + + + - - + + + + + + + + + + + + + + + + + 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 Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_config.php =================================================================== diff -u -r1484 -r1487 --- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_config.php (.../selectors_config.php) (revision 1484) +++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_config.php (.../selectors_config.php) (revision 1487) @@ -98,9 +98,8 @@ ), 'VirtualFields' => Array( - 'FontStyle' => Array('type'=>'string', 'formatter'=>'kOptionsFormatter', 'options'=>Array('inherit'=>'inherit','normal'=>'normal','italic'=>'italic','oblique'=>'oblique') ), - - + 'FontStyle' => Array('type'=>'string', 'formatter'=>'kOptionsFormatter', 'options'=>Array(''=>'','inherit'=>'inherit','normal'=>'normal','italic'=>'italic','oblique'=>'oblique'), 'default'=>'' ), + 'FontWeight' => Array('type'=>'string', 'formatter'=>'kOptionsFormatter', 'options'=>Array(''=>'','inherit'=>'inherit','100'=>'100','200'=>'200','300'=>'300','normal'=>'normal','500'=>'500','600'=>'600','bold'=>'bold','800'=>'800','900'=>'900','lighter'=>'lighter','bolder'=>'bolder') ), ), 'Grids' => Array( Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_item.php =================================================================== diff -u -r1484 -r1487 --- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_item.php (.../selectors_item.php) (revision 1484) +++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_item.php (.../selectors_item.php) (revision 1487) @@ -31,8 +31,24 @@ $ret .= "\t$property_name: $property_value;".$separator; } - $ret .= $this->GetDBField('AdvancedCSS'); + $advanced_css = $this->GetDBField('AdvancedCSS'); + if($separator != "\n") $advanced_css = str_replace("\n",$separator,$advanced_css); + $ret .= $advanced_css; + return $ret; } + + /** + * Resets all block style attributes to it's base style + * + */ + function ResetStyle() + { + if( $this->GetDBField('ParentId') ) + { + $this->SetDBField( 'SelectorData', Array() ); + $this->Update(); + } + } } ?> \ No newline at end of file