222 lines
6.2 KiB
JavaScript
222 lines
6.2 KiB
JavaScript
|
import '@/global/widgets/filebrowser/TImage';
|
||
|
import '@/global/widgets/filebrowser/TImageAdvBrowser';
|
||
|
|
||
|
export class GridTestViewController extends BaseViewController {
|
||
|
constructor( options = {} ) {
|
||
|
_.defaults( options, {
|
||
|
el: '#grid_test_view_container',
|
||
|
|
||
|
// _required_files: ['TImage', 'TImageAdvBrowser'],
|
||
|
|
||
|
user_api: null,
|
||
|
user_group_api: null,
|
||
|
company_api: null,
|
||
|
user_id_array: null,
|
||
|
grid_container_id: null
|
||
|
} );
|
||
|
|
||
|
super( options );
|
||
|
}
|
||
|
|
||
|
init( options ) {
|
||
|
this.edit_view_tpl = 'GridTestEditView.html';
|
||
|
this.permission_id = 'user';
|
||
|
this.viewId = 'GridTest';
|
||
|
this.script_name = 'GridTestView';
|
||
|
this.table_name_key = 'grid_test';
|
||
|
this.context_menu_name = $.i18n._( 'Grid Test' );
|
||
|
this.navigation_label = $.i18n._( 'AwesomBox Test' );
|
||
|
this.api = TTAPI.APIUser;
|
||
|
this.select_company_id = LocalCacheData.getCurrentCompany().id;
|
||
|
this.user_group_api = TTAPI.APIUserGroup;
|
||
|
this.company_api = TTAPI.APICompany;
|
||
|
this.user_id_array = [];
|
||
|
|
||
|
this.edit_view_grid_array = [];
|
||
|
|
||
|
this.grid_container_id = TTUUID.generateUUID();
|
||
|
this.render();
|
||
|
this.buildContextMenu();
|
||
|
this.initData();
|
||
|
}
|
||
|
|
||
|
setCurrentEditRecordData() {
|
||
|
this.collectUIDataToCurrentEditRecord();
|
||
|
this.setEditViewDataDone();
|
||
|
}
|
||
|
|
||
|
clearEditViewData() {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
buildEditViewUI() {
|
||
|
var $this = this;
|
||
|
|
||
|
if( ContextMenuManager.getMenu( this.determineContextMenuMountAttributes().id ) === undefined ) {
|
||
|
this.buildContextMenu();
|
||
|
} else {
|
||
|
Debug.Warn( 'Context Menu ('+ this.determineContextMenuMountAttributes().id +') already exists for: '+ this.viewId, 'AwesomeBoxTestView.js', 'AwesomeBoxTestView', 'buildEditViewUI', 10 );
|
||
|
}
|
||
|
|
||
|
var tab_model = {
|
||
|
'tab_employee': { 'label': $.i18n._( 'AWESOMEBOX TESTING VIEW' ) },
|
||
|
};
|
||
|
this.setTabModel( tab_model );
|
||
|
|
||
|
//Tab 0 start
|
||
|
|
||
|
var tab_employee = this.edit_view_tab.find( '#tab_employee' );
|
||
|
|
||
|
var tab_employee_column1 = tab_employee.find( '.first-column' );
|
||
|
|
||
|
this.edit_view_tabs[0] = [];
|
||
|
this.edit_view_tabs[0].push( tab_employee_column1 );
|
||
|
|
||
|
var $div_grid_container = $( '<div id="' + this.grid_container_id + '">' );
|
||
|
tab_employee_column1.append( $div_grid_container );
|
||
|
|
||
|
/** build the test grids **/
|
||
|
var $grid = this.addGrid( 1 );
|
||
|
$div_grid_container.append( $grid );
|
||
|
$grid.setData( this.getFakeData( 1 ) );
|
||
|
|
||
|
var column_header_text_array = [
|
||
|
'column name',
|
||
|
'column name2',
|
||
|
'column name3',
|
||
|
'column name4',
|
||
|
'column name5',
|
||
|
'column name6'
|
||
|
];
|
||
|
var $grid = this.addGrid( 6, column_header_text_array );
|
||
|
$div_grid_container.append( $grid );
|
||
|
$grid.setData( this.getFakeData( 6, true ) );
|
||
|
|
||
|
var $grid = this.addGrid( 12 );
|
||
|
$div_grid_container.append( $grid );
|
||
|
$grid.setData( this.getFakeData( 12 ) );
|
||
|
|
||
|
var $grid = this.addGrid( 40 );
|
||
|
$div_grid_container.append( $grid );
|
||
|
$grid.setData( this.getFakeData( 40 ) );
|
||
|
|
||
|
for ( var i = 0; i < this.edit_view_grid_array.length; i++ ) {
|
||
|
this.edit_view_grid_array[i].setGridColumnsWidth();
|
||
|
}
|
||
|
|
||
|
TTPromise.resolve( 'Gridtest', 'init' );
|
||
|
}
|
||
|
|
||
|
getGridSetup() {
|
||
|
var setup = {
|
||
|
container_selector: '.edit-view-tab',
|
||
|
sub_grid_mode: true,
|
||
|
onResizeGrid: true,
|
||
|
onSelectRow: function() {
|
||
|
},
|
||
|
onCellSelect: function() {
|
||
|
},
|
||
|
onSelectAll: function() {
|
||
|
},
|
||
|
ondblClickRow: function( e ) {
|
||
|
},
|
||
|
onRightClickRow: function( rowId ) {
|
||
|
},
|
||
|
height: 200
|
||
|
};
|
||
|
return setup;
|
||
|
}
|
||
|
|
||
|
addGrid( column_count, column_header_text_array ) {
|
||
|
var container_selector = 'test_grid_' + column_count;
|
||
|
$( '#' + this.grid_container_id ).append( $( '<table id="' + container_selector + '" >' ) );
|
||
|
|
||
|
var column_info_array = [];
|
||
|
for ( var n = 0; n < column_count; n++ ) {
|
||
|
var letter = ( n + 10 ).toString( 36 );
|
||
|
var text = 'Column ' + letter;
|
||
|
if ( column_header_text_array ) {
|
||
|
text = column_header_text_array[n];
|
||
|
}
|
||
|
column_info_array.push( {
|
||
|
name: letter,
|
||
|
index: letter,
|
||
|
label: text,
|
||
|
width: 100,
|
||
|
sortable: false,
|
||
|
title: false
|
||
|
} );
|
||
|
}
|
||
|
|
||
|
var $grid = new TTGrid( container_selector, this.getGridSetup(), column_info_array );
|
||
|
this.edit_view_grid_array.push( $grid );
|
||
|
return $grid;
|
||
|
}
|
||
|
|
||
|
getFakeData( column_count, randomize ) {
|
||
|
var data = [];
|
||
|
for ( var n = 0; n < 4; n++ ) {
|
||
|
var data_element = {};
|
||
|
for ( var m = 0; m < column_count; m++ ) {
|
||
|
var letter = ( m + 10 ).toString( 36 );
|
||
|
if ( randomize ) {
|
||
|
data_element[letter] = TTUUID.generateUUID();
|
||
|
} else {
|
||
|
data_element[letter] = 'content';
|
||
|
}
|
||
|
|
||
|
}
|
||
|
data.push( data_element );
|
||
|
}
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
buildSearchFields() {
|
||
|
super.buildSearchFields();
|
||
|
this.search_fields = [];
|
||
|
}
|
||
|
|
||
|
getCustomContextMenuModel() {
|
||
|
var context_menu_model = {
|
||
|
exclude: ['default'],
|
||
|
include: [
|
||
|
'edit',
|
||
|
'cancel'
|
||
|
]
|
||
|
};
|
||
|
|
||
|
return context_menu_model;
|
||
|
}
|
||
|
|
||
|
//override that forces same data to grid at all times.
|
||
|
search() {
|
||
|
var result_data = JSON.parse( '[{"id":"11e85213-a799-d200-b041-123456abcdef","status":"Active","employee_number":100,"first_name":"Mr.","last_name":"FAKE","full_name":"Administrator, Mr.","home_phone":"471-438-3900","is_owner":true,"is_child":false},' +
|
||
|
'{"id":"11e85213-ad34-e0e0-8541-123456abcdef","status":"Active","employee_number":13,"first_name":"Tristen","last_name":"Braun","full_name":"FAKE Braun, Tristen","home_phone":"527-500-4852","is_owner":false,"is_child":true},' +
|
||
|
'{"id":"11e85213-af64-d0e0-9b00-123456abcdef","status":"Active","employee_number":20,"first_name":"Jane","last_name":"Doe","full_name":"FAKE Doe, Jane","home_phone":"477-443-9650","is_owner":false,"is_child":true},' +
|
||
|
'{"id":"11e85213-ac44-1830-9908-123456abcdef","status":"Active","employee_number":10,"first_name":"John","last_name":"Doe","full_name":"FAKE Doe, John","home_phone":"464-547-9452","is_owner":false,"is_child":true}]' );
|
||
|
this.user_id_array = result_data;
|
||
|
result_data = this.processResultData( result_data );
|
||
|
this.grid.setData( result_data );
|
||
|
this.grid.setGridColumnsWidth();
|
||
|
this.current_edit_record = result_data[0];
|
||
|
this.setCurrentEditViewState( 'edit' );
|
||
|
|
||
|
TTPromise.add( 'Gridtest', 'init' );
|
||
|
var $this = this;
|
||
|
TTPromise.wait( 'Gridtest', 'init', function() {
|
||
|
$this.initEditView();
|
||
|
} );
|
||
|
|
||
|
this.initEditViewUI( this.viewId, this.edit_view_tpl );
|
||
|
}
|
||
|
|
||
|
setEditViewDataDone() {
|
||
|
var $this = this;
|
||
|
setTimeout( function() {
|
||
|
$this.setTabOVisibility( true );
|
||
|
$( '.edit-view-tab-bar' ).css( 'opacity', 1 );
|
||
|
}, 2500 );
|
||
|
}
|
||
|
|
||
|
}
|