Index: trunk/custom/units/test/test_config.php
===================================================================
--- trunk/custom/units/test/test_config.php	(revision 7900)
+++ trunk/custom/units/test/test_config.php	(revision 7901)
@@ -1,149 +1,175 @@
 <?php
 
 $config	=	Array(
 	'Prefix'			=>	'test',
 	'ItemClass'			=>	Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
 	'ListClass'			=>	Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
 	'EventHandlerClass'	=>	Array('class'=>'TestEventHandler','file'=>'test_eh.php','build_event'=>'OnBuild'),
 	'TagProcessorClass' =>	Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'),
 
 	'AutoLoad'			=>	true,
 	'Hooks'				=>	Array(
 	),
 	'QueryString'		=>	Array(
 		1	=>	'id',
 		2	=>	'Page',
 		3	=>	'event',
 		4	=>	'mode',
 	),
 	'IDField'			=>	'TestId',
 	'StatusField'		=>	Array('Status'),
 	'TableName'			=>	TABLE_PREFIX.'Tests',
 
+/*
+	'ForeignKey' => 'ParentId', // field title in TableName, linking record to a parent
+	'ParentTableKey' => 'ParentId', // id (or other key) field title in parent's table
+	'ParentPrefix' => 'parent',
+	'AutoDelete' => true, // delete these items when parent is being deleted
+	'AutoClone' => true, // clone these items when parent is being cloned
+*/
+
 	'TitlePresets'		=>	Array(
-		'default'	=>	Array(	'new_status_labels'		=> Array('test'=>'!la_title_AddingTest!'),
+		'default'	=>	Array(
+			'new_status_labels'		=> Array('test'=>'!la_title_AddingTest!'),
 			'edit_status_labels'	=> Array('test'=>'!la_title_EditingTest!'),
-			'new_titlefield'		=> Array('test'=>'!la_title_NewTest!'),
+			'new_titlefield'		=> Array('test'=>''),
 		),
 
-		'test_list'=>Array(	'prefixes'				=> Array('test_List'),
-			'format'				=>	"!la_title_Tests! (#test_recordcount#)",
+		'test_list'=>Array(
+			'prefixes'				=> Array('test_List'),
+			'format'				=>	'!la_title_Tests! (#test_recordcount#)',
 		),
 
-		'test_edit'=>Array(	'prefixes'				=> Array('test'),
-			'new_titlefield'		=> Array('test'=>'!la_title_NewTest!'),
-			'format'				=> "#test_status# '#test_titlefield#'",
+		'test_edit'=>Array(
+			'prefixes'				=> Array('test'),
+			'format'				=> '#test_status# #test_titlefield#',
 		),
 	),
 
 	'PermSection'		=>	Array('main' => 'custom:tests'),
 
+	// don't forget to add corresponding permissions to install script
+	// INSERT INTO Permissions VALUES (0, 'custom:custom.view', 11, 1, 1, 0);
+	// INSERT INTO Permissions VALUES (0, 'custom:tests.view', 11, 1, 1, 0), (0, 'custom:tests.add', 11, 1, 1, 0), (0, 'custom:tests.edit', 11, 1, 1, 0), (0, 'custom:tests.delete', 11, 1, 1, 0);
 	'Sections'			=>	Array(
-		'custom:tests'	=>	Array(
+
+		'custom'	=>	Array(
 			'parent'		=>	'in-portal:root',
-			'icon'			=>	'tests',
+			'icon'			=>	'custom:custom',
+			'label'			=>	'la_title_Custom',
+			'url'			=>	Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'),
+			'permissions'	=>	Array('view'),
+			'priority'		=>	1.95,
+			'type'			=>	stTREE,
+		),
+
+		'custom:tests'	=>	Array(
+			'parent'		=>	'custom',
+			'icon'			=>	'custom:tests',
 			'label'			=>	'la_tab_Tests',
 			'url'			=>	Array('t' => 'custom/tests/test_list', 'pass' => 'm'),
 			'permissions'	=>	Array('view', 'add', 'edit', 'delete'),
-			'priority'		=>	10,
+			'priority'		=>	1,
 			'type'			=>	stTREE,
 		),
 	),
 
 	'TitleField' =>	'Title',	// field, used in bluebar when editing existing item
 
 	// Use %1$s for local table name with prefix, %2$s for calculated fields
 	'ListSQLs' =>	Array(	// key - special, value - list select sql
 		'' => 'SELECT %1$s.* %2$s
 					 FROM %1$s',
 	),
 	'ItemSQLs' =>	Array(
 		'' => 'SELECT %1$s.* %2$s
 					 FROM %1$s',
 	),
 	'ListSortings'	=> 	Array(
 		'' => Array(
 //			'ForcedSorting' => Array('Priority' => 'desc'),
 			'Sorting' => Array('Title' => 'asc'),
 		)
 	),
 	'Fields' =>	Array(
-    'TestId' => Array('type' => 'int','not_null' => '1','default' => ''),
+    'TestId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0),
     'Title' => Array('type' => 'string','not_null' => '1','default' => '', 'required'=>true,'max_len'=>255),
     'Description' => Array('type' => 'string','not_null' => '1','default' => ''),
     'Email' => Array(
     	'type' => 'string', 'formatter'=>'kFormatter',
     	'regexp'=>'/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/',
     	'sample_value' => 'email@domain.com',
-    	'not_null' => 0, 'default' => '',
+    	'not_null' => 1, 'default' => '',
     	'error_msgs' => Array('invalid_format'=>'!la_invalid_email!')
     ),
-    'Type' => array(
+    'Type' => array('type' => 'int',
     	'formatter' => 'kOptionsFormatter', 'use_phrases' => 1,
     	'options'=> array(
     		1=>'la_default_type',
     		2=>'la_some_type',
     		3=>'la_another_type',
     	),
     	'not_null' => 1,
     	'default' => 1,
     	'required' => 1,
     ),
-    'Phone' => Array('type' => 'string','default' => ''),
-    'Qty' => array('type'=>'double','required'=>0),
+    'Phone' => Array('type' => 'string','default' => '','not_null' => 1),
+    'Qty' => array('type'=>'double','required'=>0,'not_null' => 1, 'default' => 0),
     'Status' =>	Array(
     	'type' => 'int', 'formatter' => 'kOptionsFormatter',
     	'options' => array (1 => 'la_Active', 2 => 'la_Pending', 0 => 'la_Disabled'),
     	'use_phrases' => 1, 'not_null' => 1, 'default' => 2
     ),
-    'CreatedOn' => Array('formatter' => 'kDateFormatter', 'default'=>'#NOW#', 'not_null' => true),
+    'CreatedOn' => Array('formatter' => 'kDateFormatter', 'format' => '_regional_DateFormat', 'input_format' => '_regional_DateFormat', 'empty_time' => '', 'default'=>'#NOW#', 'not_null' => true),
     'Good' => Array(
     	'type' => 'int', 'formatter' => 'kOptionsFormatter',
     	'options' => Array(1 => 'la_Yes', 0 => 'la_No'),
     	'use_phrases' => 1, 'not_null' => 1, 'default' => 0
     ),
 	),
 
 	'Grids'	=> Array(
 		'Default'		=>	Array(
 			'Icons' => Array('default'=>'icon16_test.gif'),
 			'Fields' => Array(
 				'TestId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td' ),
-				'Title' => Array( 'title'=>'la_col_TestName'),
+			/*	'Title' => Array( 'title'=>'la_col_TestName'),
 				'Type' => Array( 'title'=>'la_col_Type', 'filter_block' => 'grid_options_filter'),
 				'Status' => Array( 'title'=>'la_col_Status', 'filter_block' => 'grid_options_filter'),
 				'Good' => Array( 'title'=>'la_col_Good'),
 				'Qty' => Array( 'title'=>'la_col_Qty', 'filter_block' => 'grid_float_range_filter'),
 				'Email' => Array( 'title'=>'la_col_Email'),
-				'Phone' => Array( 'title'=>'la_col_Phone'),
+				'Phone' => Array( 'title'=>'la_col_Phone'),*/
 				'CreatedOn' => Array( 'title'=>'la_col_CreatedOn', 'filter_block' => 'grid_date_range_filter'),
 			),
 		),
 	),
 
 	'ConfigMapping' => Array(
 		'PerPage' => 'Comm_Perpage_Tests',
 		'ShortListPerPage' => 'Comm_Perpage_Tests_Short',
 	),
 );
 
 /*
 
 Don't forget to:
 
 - Add table create statement to install_schema.sql
-
-CREATE TABLE `kx_Tests` (
+	CREATE TABLE Tests (
 	`TestId` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
 	`Title` VARCHAR( 255 ) NOT NULL ,
 	`Description` TEXT NULL ,
 	`Email` VARCHAR( 255 ) NOT NULL ,
 	`Type` TINYINT NOT NULL ,
 	`Phone` VARCHAR( 50 ) NOT NULL ,
 	`Qty` DOUBLE NOT NULL ,
 	`Status` TINYINT NOT NULL ,
 	`CreatedOn` INT NOT NULL ,
 	`Good` TINYINT NOT NULL
 )
 
+- Add permissions for admin gorup to install script (see 'Sections' key above)
+
+
 */
\ No newline at end of file

Property changes on: trunk/custom/units/test/test_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.1.1
\ No newline at end of property
+1.2
\ No newline at end of property
Index: trunk/custom/admin_templates/tests/test_edit.tpl
===================================================================
--- trunk/custom/admin_templates/tests/test_edit.tpl	(revision 7900)
+++ trunk/custom/admin_templates/tests/test_edit.tpl	(revision 7901)
@@ -1,95 +1,94 @@
 <inp2:adm_SetPopupSize width="750" height="570"/>
-<inp2:m_RequireLogin permissions="custom:tests.view" system="1"/>
-<inp2:m_include t="incs/header" body_properties=" onload='reflect_filename();'" />
+<inp2:m_include t="incs/header" body_properties="" />
 
-<inp2:m_ParseBlock name="blue_bar" prefix="test" title_preset="test_edit" module="custom" icon="icon46_tests"/>
+<inp2:m_RenderElement name="combined_header" section="custom:tests" prefix="test" title_preset="test_edit" pagination="0"/>
 
 <!-- ToolBar --->
 <table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
 <tbody>
 	<tr>
   	<td>
   		<script type="text/javascript">
 				a_toolbar = new ToolBar();
 				a_toolbar.AddButton( new ToolBarButton('select', '<inp2:m_phrase label="la_ToolTip_Save" escape="1"/>', function() {
 						submit_event('test','<inp2:test_SaveEvent/>');
 					}
 				));
 				a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel" escape="1"/>', function() {
 						cancel_edit('st','OnCancelEdit','<inp2:st_SaveEvent/>','<inp2:m_Phrase label="la_FormCancelConfirmation" escape="1"/>');
 					}
 				));
 
 				a_toolbar.AddButton( new ToolBarButton('reset_edit', '<inp2:m_phrase label="la_ToolTip_Reset" escape="1"/>', function() {
 						reset_form('test', 'OnReset', '<inp2:m_Phrase label="la_FormResetConfirmation" escape="1"/>');
 					}
 				));
 
 				a_toolbar.AddButton( new ToolBarSeparator('sep1') );
 
 				a_toolbar.AddButton( new ToolBarButton('prev', '<inp2:m_phrase label="la_ToolTip_Prev" escape="1"/>', function() {
 							go_to_id('test', '<inp2:test_PrevId/>');
 						}
 				));
 				a_toolbar.AddButton( new ToolBarButton('next', '<inp2:m_phrase label="la_ToolTip_Next" escape="1"/>', function() {
 							go_to_id('test', '<inp2:test_NextId/>');
 						}
 				));
 
 				a_toolbar.Render();
 
 				<inp2:m_if prefix="test" function="IsSingle"/>
 					a_toolbar.HideButton('prev');
 					a_toolbar.HideButton('next');
 					a_toolbar.HideButton('sep1');
 				<inp2:m_else/>
 					<inp2:m_if prefix="test" function="IsLast"/>
 						a_toolbar.DisableButton('next');
 					<inp2:m_endif/>
 					<inp2:m_if prefix="test" function="IsFirst"/>
 						a_toolbar.DisableButton('prev');
 					<inp2:m_endif/>
 				<inp2:m_endif/>
 			</script>
 		</td>
 
 		<inp2:m_RenderElement name="ml_selector" prefix="test"/>
 	</tr>
 </tbody>
 </table>
 
 <script src="incs/calendar.js"></script>
 
 <inp2:test_SaveWarning name="grid_save_warning"/>
 <inp2:test_ErrorWarning name="form_error_warning"/>
 <div id="scroll_container">
 <table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder" style="border-collapse: separate;">
 	<inp2:m_ParseBlock name="subsection" title="!la_section_Page!"/>
 
 		<inp2:m_ParseBlock name="inp_id_label" prefix="test" field="TestId" title="!la_fld_Id!"/>
 
 		<inp2:m_ParseBlock name="inp_edit_box_ml" prefix="test" field="Title" title="!la_fld_Title!" size="40"/>
 
 		<inp2:m_ParseBlock name="inp_edit_checkbox" prefix="test" field="Good" title="!la_fld_Good!"/>
 
 		<inp2:m_ParseBlock name="inp_edit_textarea" prefix="test" field="Description" title="!la_fld_Description!" cols="50" rows="5"/>
 
 		<inp2:m_ParseBlock name="inp_edit_radio" prefix="test" field="Status" title="la_fld_Status" size="63"/>
 		<inp2:m_ParseBlock name="inp_edit_options" prefix="test" field="Type" title="la_fld_Type" size="63"/>
 
 		<inp2:m_ParseBlock name="inp_edit_date" prefix="test" field="CreatedOn" title="la_fld_CreatedOn"/>
 
 <!--		<inp2:m_ParseBlock name="inp_edit_checkbox" prefix="test" field="IsSystem" title="!la_fld_IsSystemTemplate!" onchange="OnSystemClick()"/>-->
 
 		<inp2:m_ParseBlock name="inp_edit_box" prefix="test" field="Qty" title="!la_fld_Qty!" size="5"/>
 		<inp2:m_ParseBlock name="inp_edit_box" prefix="test" field="Phone" title="!la_fld_Phone!" size="15"/>
 		<inp2:m_ParseBlock name="inp_edit_box" prefix="test" field="Email" title="!la_fld_Email!" size="35"/>
 
 
 
 </table>
 </div>
 
 <inp2:m_include t="incs/footer"/>
 
 

Property changes on: trunk/custom/admin_templates/tests/test_edit.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.1.1
\ No newline at end of property
+1.2
\ No newline at end of property
Index: trunk/custom/admin_templates/tests/test_list.tpl
===================================================================
--- trunk/custom/admin_templates/tests/test_list.tpl	(revision 7900)
+++ trunk/custom/admin_templates/tests/test_list.tpl	(revision 7901)
@@ -1,68 +1,65 @@
 <inp2:m_RequireLogin permissions="proj-cms:all_pages.view" system="1"/>
-<inp2:m_include t="incs/header" nobody="yes"/>
+<inp2:m_include t="incs/header" />
 
-<body class="regular-body">
-<inp2:m_ParseBlock name="section_header" prefix="test" icon="icon46_test" module="custom" title="la_title_Test"/>
-
-<inp2:m_ParseBlock name="blue_bar" prefix="test" test[grid]="Default" pagination="1" title_preset="test_list" module="custom" icon="icon46_test"/>
+<inp2:m_RenderElement name="combined_header" section="custom:tests" prefix="test" title_preset="" pagination="1"/>
 
 <!-- ToolBar --->
 <table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
 <tbody>
 	<tr>
   		<td>
 	  		<table width="100%" cellpadding="0" cellspacing="0">
 	  			<tr>
 	  				<td >
 	  					<script type="text/javascript">
 								a_toolbar = new ToolBar();
 
 								a_toolbar.AddButton( new ToolBarButton('new_item', '<inp2:m_phrase label="la_ToolTip_NewTest" escape="1"/>::<inp2:m_phrase label="la_Add" escape="1"/>',
 										function() {
 //											set_hidden_field('remove_specials[test]', 1);
 											std_precreate_item('test', 'custom/tests/test_edit')
 										}
 									)
 								);
 
 								function edit()
 								{
 									set_hidden_field('remove_specials[test]', 1);
 								  	std_edit_item('test', 'custom/tests/test_edit');
 								}
 
 								a_toolbar.AddButton( new ToolBarButton('edit', '<inp2:m_phrase label="la_ToolTip_Edit" escape="1"/>::<inp2:m_phrase label="la_ShortToolTip_Edit" escape="1"/>', edit) );
 
 
 								a_toolbar.AddButton( new ToolBarButton('delete', '<inp2:m_phrase label="la_ToolTip_Delete" escape="1"/>',
 										function() {
 											std_delete_items('test');
 										} ) );
 
 
 						  		a_toolbar.AddButton( new ToolBarSeparator('sep1') );
 
 
 								a_toolbar.AddButton( new ToolBarButton('view', '<inp2:m_phrase label="la_ToolTip_View" escape="1"/>', function(id) {
 											show_viewmenu(a_toolbar,'view');
 										}
 								) );
 
 								a_toolbar.Render();
 							</script>
 	  				</td>
 
 	  				<inp2:m_RenderElement name="search_main_toolbar" prefix="test" grid="Default"/>
 	  			</tr>
 	  		</table>
 		</td>
 	</tr>
 </tbody>
 </table>
 
 <inp2:m_ParseBlock name="grid" PrefixSpecial="test" IdField="TestId" grid="Default" grid_filters="1"/>
 <script type="text/javascript">
 	Grids['test'].SetDependantToolbarButtons( new Array('edit', 'delete') );
 </script>
 
 <inp2:m_include t="incs/footer"/>
\ No newline at end of file

Property changes on: trunk/custom/admin_templates/tests/test_list.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.1.1
\ No newline at end of property
+1.2
\ No newline at end of property
Index: trunk/custom/install/install_schema.sql
===================================================================
--- trunk/custom/install/install_schema.sql	(revision 7900)
+++ trunk/custom/install/install_schema.sql	(revision 7901)
@@ -1,13 +1,13 @@
 CREATE TABLE Tests (
   `TestId` int(11) NOT NULL auto_increment,
   `Title` varchar(255) NOT NULL default '',
   `Description` text,
   `Email` varchar(255) NOT NULL default '',
-  `Type` tinyint(4) NOT NULL default '0',
+  `Type` tinyint(4) NOT NULL default '1',
   `Phone` varchar(50) NOT NULL default '',
   `Qty` double NOT NULL default '0',
-  `Status` tinyint(4) NOT NULL default '0',
+  `Status` tinyint(4) NOT NULL default '2',
   `CreatedOn` int(11) NOT NULL default '0',
   `Good` tinyint(4) NOT NULL default '0',
   PRIMARY KEY  (`TestId`)
 )

Property changes on: trunk/custom/install/install_schema.sql
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.1.1
\ No newline at end of property
+1.2
\ No newline at end of property
Index: trunk/custom/install/install_data.sql
===================================================================
--- trunk/custom/install/install_data.sql	(revision 7900)
+++ trunk/custom/install/install_data.sql	(revision 7901)
@@ -1 +1 @@
-INSERT INTO Modules (Name, Path, Var, Version, Loaded, LoadOrder, TemplatePath, RootCat, BuildDate) VALUES ('Custom', 'custom/', 'custom', '0.0.1', 1, 2, '', 0, '0');
+INSERT INTO Modules (Name, Path, Var, Version, Loaded, LoadOrder, TemplatePath, RootCat, BuildDate) VALUES ('Custom', 'custom/', 'custom', '0.0.0', 1, 2, '', 0, '0');

Property changes on: trunk/custom/install/install_data.sql
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.1.1
\ No newline at end of property
+1.2
\ No newline at end of property