Page MenuHomeIn-Portal Phabricator

custom
No OneTemporary

File Metadata

Created
Wed, Apr 30, 5:59 AM
Index: branches/RC/custom/units/test/test_config.php
===================================================================
--- branches/RC/custom/units/test/test_config.php (revision 11828)
+++ branches/RC/custom/units/test/test_config.php (revision 11829)
@@ -1,186 +1,184 @@
<?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,
'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!'),
- 'edit_status_labels' => Array('test'=>'!la_title_EditingTest!'),
+ 'TitlePresets' => Array (
+ 'default' => Array (
+ 'new_status_labels' => Array ('test' => '!la_title_AddingTest!'),
+ 'edit_status_labels' => Array ('test' => '!la_title_EditingTest!'),
),
- 'test_edit'=>Array(
- 'prefixes' => Array('test'),
- 'format' => '#test_status# #test_titlefield#',
- ),
+ 'test_list' => Array ('prefixes' => Array ('test_List'), 'format' => '#section_label#'),
+ '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(
'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' => 1,
'type' => stTREE,
),
),
'TitleField' => 'LastName', // 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' => 0),
'Title' => Array('type' => 'string','not_null' => '1','default' => '', 'required'=>true, 'max_len'=>255),
'Description' => Array('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => null),
'Email' => Array(
'type' => 'string', 'formatter'=>'kFormatter',
'regexp'=> '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i',
'sample_value' => 'email@domain.com',
'not_null' => 1, 'default' => '',
'error_msgs' => Array('invalid_format'=>'!la_invalid_email!')
),
'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', 'formatter' => 'kFormatter', 'default' => '', 'using_fck' => 1, '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('type' => 'int', 'formatter' => 'kDateFormatter', 'time_format' => '', 'input_time_format' => '', '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
),
'BirthTime' => Array(
'type' => 'int', 'formatter' => 'kDateFormatter',
'date_format' => '', 'input_date_format' => '',
'default' => null
),
'Image' => Array(
'type'=>'string', 'formatter'=>'kUploadFormatter',
'max_size'=>MAX_UPLOAD_SIZE, // in Bytes !
'file_types'=>'*.jpg;*.gif;*.png', 'files_description'=>'!la_ImageFiles!',
'upload_dir'=>'/system/user_files/', // relative to project's home
'as_image'=>true, 'thumb_width'=>100, 'thumb_height'=>100,
'multiple'=>false, // false or max number of files - will be stored as serialized array of paths
'direct_links'=>false, // use direct file urls or send files through wrapper (requires mod_mime_magic)
'required' => 1, 'default' => null
),
'DataFile' => Array(
'type'=>'string', 'formatter'=>'kUploadFormatter',
'max_size'=>MAX_UPLOAD_SIZE, // in Bytes !
'file_types'=>'*.*',
'files_description'=>'!la_AllFiles!',
'upload_dir'=>'/system/user_files/', // relative to project's home
'as_image'=>false,
'multiple'=>5, // false or max number of files - will be stored as serialized array of paths
'direct_links'=>true, // use direct file urls or send files through wrapper (requires mod_mime_magic)
'default' => null
),
),
- 'Grids' => Array(
- 'Default' => Array(
-// 'Icons' => Array('default'=>'icon16_custom.gif'),
- 'Fields' => Array(
- 'TestId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'width'=>50 ),
- 'Title' => Array( 'title'=>'la_col_TestName', 'width'=>100),
+ 'Grids' => Array (
+ 'Default' => Array (
+// 'Icons' => Array ('default'=>'icon16_custom.gif'),
+ 'Fields' => Array (
+ 'TestId' => Array ('title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter'),
+ 'Title' => Array ('title'=>'la_col_TestName'),
'Image' => Array ('title' => 'la_col_Image', 'data_block' => 'grid_image_td'),
- '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', 'header_block' => 'grid_column_title_no_sorting', 'filter_block' => 'grid_float_range_filter'),
- 'Email' => Array( 'title'=>'la_col_Email', 'width'=>70),
- 'Phone' => Array( 'title'=>'la_col_Phone', 'width'=>80),
- 'CreatedOn' => Array( 'title'=>'la_col_CreatedOn', 'filter_block' => 'grid_date_range_filter', 'width'=>110),
- 'Description' => Array('title' => 'la_col_Description', 'width'=>150),
- //'BirthTime' => Array ('title' => 'la_col_BirthTime', 'filter_block' => 'grid_date_range_filter'),
+ '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', 'header_block' => 'grid_column_title_no_sorting', 'filter_block' => 'grid_float_range_filter'),
+ 'Email' => Array ('title'=>'la_col_Email'),
+ 'Phone' => Array ('title'=>'la_col_Phone'),
+ 'CreatedOn' => Array ('title'=>'la_col_CreatedOn', 'filter_block' => 'grid_date_range_filter'),
+ 'Description' => Array ('title' => 'la_col_Description'),
+// 'BirthTime' => Array ('title' => 'la_col_BirthTime', '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 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
Index: branches/RC/custom/admin_templates/tests/test_list.tpl
===================================================================
--- branches/RC/custom/admin_templates/tests/test_list.tpl (revision 11828)
+++ branches/RC/custom/admin_templates/tests/test_list.tpl (revision 11829)
@@ -1,84 +1,109 @@
<inp2:m_include t="incs/header" />
-<inp2:m_RenderElement name="combined_header" section="custom:tests" prefix="test" pagination="1"/>
+<inp2:m_RenderElement name="combined_header" prefix="test" section="custom:tests" title_preset="test_list" 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"/>',
+ 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() {
std_precreate_item('test', 'custom/tests/test_edit')
}
)
);
- function edit()
- {
+ function edit() {
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(
+ '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"/>',
+ 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.AddButton( new ToolBarSeparator('sep2') );
+ a_toolbar.AddButton( new ToolBarSeparator('sep1') );
- a_toolbar.AddButton( new ToolBarButton('export', '<inp2:m_phrase label="la_ToolTip_Export" escape="1"/>', function() {
+ a_toolbar.AddButton(
+ new ToolBarButton(
+ 'export',
+ '<inp2:m_phrase label="la_ToolTip_Export" escape="1"/>',
+ function() {
std_csv_export('test', 'Default', 'export/export_progress');
}
- ) );
+ )
+ );
- a_toolbar.AddButton( new ToolBarButton('import', '<inp2:m_phrase label="la_ToolTip_Import" escape="1"/>', function() {
+ a_toolbar.AddButton(
+ new ToolBarButton(
+ 'import',
+ '<inp2:m_phrase label="la_ToolTip_Import" escape="1"/>',
+ function() {
std_csv_import('test', 'Default', 'import/import_start');
}
- ) );
+ )
+ );
+
+ a_toolbar.AddButton( new ToolBarSeparator('sep2') );
+
+ 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>
<style type="text/css">
.red-row td.Status {
background-color: red;
}
</style>
<inp2:m_DefineElement name="grid_image_td">
<img src="<inp2:Field name='$field' format='resize:120x120'/>" <inp2:Field name='$field' format='resize:120x120;img_size' no_special='1'/> alt=""/><br />
</inp2:m_DefineElement>
<inp2:m_RenderElement name="grid" PrefixSpecial="test" IdField="TestId" grid="Default" grid_filters="1" limited_heights="true" max_row_height="100"/>
<script type="text/javascript">
Grids['test'].SetDependantToolbarButtons( new Array('edit', 'delete') );
</script>
<inp2:m_include t="incs/footer"/>
\ No newline at end of file

Event Timeline