1200 lines
33 KiB
JavaScript
1200 lines
33 KiB
JavaScript
|
export class UserReviewControlViewController extends BaseViewController {
|
||
|
constructor( options = {} ) {
|
||
|
_.defaults( options, {
|
||
|
el: '#user_review_control_view_container',
|
||
|
|
||
|
|
||
|
|
||
|
type_array: null,
|
||
|
status_array: null,
|
||
|
term_array: null,
|
||
|
severity_array: null,
|
||
|
|
||
|
kpi_group_array: null,
|
||
|
original_user_review_data: [],
|
||
|
|
||
|
document_object_type_id: null,
|
||
|
|
||
|
kpi_group_api: null,
|
||
|
|
||
|
user_review_api: null,
|
||
|
|
||
|
kpi_api: null
|
||
|
} );
|
||
|
|
||
|
super( options );
|
||
|
}
|
||
|
|
||
|
init( options ) {
|
||
|
//this._super('initialize', options );
|
||
|
this.edit_view_tpl = 'UserReviewControlEditView.html';
|
||
|
this.permission_id = 'user_review';
|
||
|
this.viewId = 'UserReviewControl';
|
||
|
this.script_name = 'UserReviewControlView';
|
||
|
this.table_name_key = 'user_review_control';
|
||
|
this.context_menu_name = $.i18n._( 'Reviews' );
|
||
|
this.navigation_label = $.i18n._( 'Review' );
|
||
|
this.api = TTAPI.APIUserReviewControl;
|
||
|
this.kpi_group_api = TTAPI.APIKPIGroup;
|
||
|
this.user_review_api = TTAPI.APIUserReview;
|
||
|
this.kpi_api = TTAPI.APIKPI;
|
||
|
this.document_object_type_id = 220;
|
||
|
this.render();
|
||
|
|
||
|
if ( this.sub_view_mode ) {
|
||
|
this.buildContextMenu( true );
|
||
|
} else {
|
||
|
this.buildContextMenu();
|
||
|
}
|
||
|
|
||
|
//call init data in parent view
|
||
|
if ( !this.sub_view_mode ) {
|
||
|
this.initData();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
getCustomContextMenuModel() {
|
||
|
var context_menu_model = {
|
||
|
exclude: ['mass_edit'],
|
||
|
include: [
|
||
|
{
|
||
|
label: $.i18n._( 'Print' ),
|
||
|
id: 'pdf_review_print',
|
||
|
vue_icon: 'tticon tticon-print_black_24dp',
|
||
|
menu_align: 'right',
|
||
|
sort_order: 100
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
return context_menu_model;
|
||
|
}
|
||
|
|
||
|
initOptions() {
|
||
|
var $this = this;
|
||
|
|
||
|
var options = [
|
||
|
{ option_name: 'type', api: this.api },
|
||
|
{ option_name: 'status', api: this.api },
|
||
|
{ option_name: 'term', api: this.api },
|
||
|
{ option_name: 'severity', api: this.api },
|
||
|
];
|
||
|
|
||
|
this.initDropDownOptions( options );
|
||
|
|
||
|
this.kpi_group_api.getKPIGroup( false, false, false, {
|
||
|
onResult: function( res ) {
|
||
|
res = Global.clone( res.getResult() );
|
||
|
|
||
|
//Error: Uncaught TypeError: Cannot set property 'name' of undefined in /interface/html5/#!m=Employee&a=edit&id=41499&tab=Reviews line 60
|
||
|
if ( !res || !res[0] ) {
|
||
|
$this.kpi_group_array = [];
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
res[0].name = '-- ' + $.i18n._( 'Add KPIs' ) + ' --';
|
||
|
|
||
|
var all = {};
|
||
|
all.name = '-- ' + $.i18n._( 'All' ) + ' --';
|
||
|
all.level = 1;
|
||
|
all.id = TTUUID.not_exist_id;
|
||
|
|
||
|
if ( res.hasOwnProperty( '0' ) && res[0].hasOwnProperty( 'children' ) ) {
|
||
|
res[0].children.unshift( all );
|
||
|
} else {
|
||
|
res = [
|
||
|
{ children: [all], id: 0, level: 0, name: '-- ' + $.i18n._( 'Add KPIs' ) + ' --' }
|
||
|
];
|
||
|
}
|
||
|
|
||
|
res = Global.buildTreeRecord( res );
|
||
|
|
||
|
$this.kpi_group_array = res;
|
||
|
|
||
|
}
|
||
|
} );
|
||
|
}
|
||
|
|
||
|
buildEditViewUI() {
|
||
|
|
||
|
super.buildEditViewUI();
|
||
|
|
||
|
var $this = this;
|
||
|
|
||
|
var tab_model = {
|
||
|
'tab_review': {
|
||
|
'label': $.i18n._( 'Review' ),
|
||
|
'html_template': this.getUserReviewTabHtml(),
|
||
|
'is_multi_column': true
|
||
|
},
|
||
|
'tab_attachment': true,
|
||
|
'tab_audit': true,
|
||
|
};
|
||
|
this.setTabModel( tab_model );
|
||
|
|
||
|
this.navigation.AComboBox( {
|
||
|
api_class: TTAPI.APIUserReviewControl,
|
||
|
id: this.script_name + '_navigation',
|
||
|
allow_multiple_selection: false,
|
||
|
layout_name: 'global_kpi_review_control',
|
||
|
navigation_mode: true,
|
||
|
show_search_inputs: true
|
||
|
} );
|
||
|
|
||
|
this.setNavigation();
|
||
|
|
||
|
//Tab 0 start
|
||
|
|
||
|
var tab_review = this.edit_view_tab.find( '#tab_review' );
|
||
|
|
||
|
var tab_review_column1 = tab_review.find( '.first-column' );
|
||
|
var tab_review_column2 = tab_review.find( '.second-column' );
|
||
|
var tab_review_column4 = tab_review.find( '.forth-column' );
|
||
|
|
||
|
this.edit_view_tabs[0] = [];
|
||
|
|
||
|
this.edit_view_tabs[0].push( tab_review_column1 );
|
||
|
this.edit_view_tabs[0].push( tab_review_column2 );
|
||
|
|
||
|
// Employee
|
||
|
var form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
|
||
|
form_item_input.AComboBox( {
|
||
|
api_class: TTAPI.APIUser,
|
||
|
allow_multiple_selection: false,
|
||
|
layout_name: 'global_user',
|
||
|
show_search_inputs: true,
|
||
|
set_empty: true,
|
||
|
field: 'user_id'
|
||
|
} );
|
||
|
|
||
|
var default_args = {};
|
||
|
default_args.permission_section = 'user_review';
|
||
|
form_item_input.setDefaultArgs( default_args );
|
||
|
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Employee' ), form_item_input, tab_review_column1, '' );
|
||
|
|
||
|
// Reviewer
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
|
||
|
form_item_input.AComboBox( {
|
||
|
api_class: TTAPI.APIUser,
|
||
|
allow_multiple_selection: false,
|
||
|
layout_name: 'global_user',
|
||
|
show_search_inputs: true,
|
||
|
set_empty: true,
|
||
|
field: 'reviewer_user_id'
|
||
|
} );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Reviewer' ), form_item_input, tab_review_column1 );
|
||
|
|
||
|
// Status
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
|
||
|
|
||
|
form_item_input.TComboBox( { field: 'status_id' } );
|
||
|
form_item_input.setSourceData( $this.status_array );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Status' ), form_item_input, tab_review_column1 );
|
||
|
|
||
|
// Type
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
|
||
|
|
||
|
form_item_input.TComboBox( { field: 'type_id' } );
|
||
|
form_item_input.setSourceData( $this.type_array );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Type' ), form_item_input, tab_review_column1 );
|
||
|
|
||
|
// Terms
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
|
||
|
|
||
|
form_item_input.TComboBox( { field: 'term_id' } );
|
||
|
form_item_input.setSourceData( $this.term_array );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Terms' ), form_item_input, tab_review_column1 );
|
||
|
|
||
|
// Rating
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
|
||
|
|
||
|
form_item_input.TTextInput( { field: 'rating', width: 50 } );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Rating' ), form_item_input, tab_review_column1, '' );
|
||
|
|
||
|
// Severity
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
|
||
|
|
||
|
form_item_input.TComboBox( { field: 'severity_id' } );
|
||
|
form_item_input.setSourceData( $this.severity_array );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Severity' ), form_item_input, tab_review_column2, '' );
|
||
|
|
||
|
// Start Date
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.DATE_PICKER );
|
||
|
|
||
|
form_item_input.TDatePicker( { field: 'start_date' } );
|
||
|
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Start Date' ), form_item_input, tab_review_column2, '', null );
|
||
|
|
||
|
// End Date
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.DATE_PICKER );
|
||
|
|
||
|
form_item_input.TDatePicker( { field: 'end_date' } );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'End Date' ), form_item_input, tab_review_column2, '', null );
|
||
|
|
||
|
// Due Date
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.DATE_PICKER );
|
||
|
|
||
|
form_item_input.TDatePicker( { field: 'due_date' } );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Due Date' ), form_item_input, tab_review_column2, '', null );
|
||
|
|
||
|
//Tags
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.TAG_INPUT );
|
||
|
|
||
|
form_item_input.TTagInput( { field: 'tag', object_type_id: 320 } );
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Tags' ), form_item_input, tab_review_column2, '', null, null, true );
|
||
|
|
||
|
if ( this.is_add || this.is_edit ) {
|
||
|
// Add KPIs from Groups
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
|
||
|
|
||
|
form_item_input.AComboBox( {
|
||
|
tree_mode: true,
|
||
|
allow_multiple_selection: false,
|
||
|
layout_name: 'global_tree_column',
|
||
|
set_empty: true,
|
||
|
field: 'group_id'
|
||
|
} );
|
||
|
form_item_input.setSourceData( $this.kpi_group_array );
|
||
|
|
||
|
var tab_review_column3 = tab_review.find( '.third-column' ).css( {
|
||
|
'float': 'left',
|
||
|
'margin-top': '10px',
|
||
|
'margin-bottom': '10px'
|
||
|
} );
|
||
|
tab_review_column3.find( '.column-form-item-label' ).css( {
|
||
|
'float': 'left',
|
||
|
'margin-right': '10px',
|
||
|
'margin-top': '5px'
|
||
|
} ).text( $.i18n._( 'Add KPIs from Groups' ) );
|
||
|
tab_review_column3.find( '.column-form-item-input' ).css( { 'float': 'left' } ).append( form_item_input );
|
||
|
|
||
|
this.edit_view_ui_dic[form_item_input.getField()] = form_item_input;
|
||
|
|
||
|
form_item_input.bind( 'formItemChange', function( e, target, doNotValidate ) {
|
||
|
$this.onFormItemChange( target, doNotValidate );
|
||
|
} );
|
||
|
}
|
||
|
|
||
|
// Note
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.TEXT_AREA );
|
||
|
|
||
|
form_item_input.TTextArea( { field: 'note', width: '100%', height: 66 } );
|
||
|
|
||
|
this.addEditFieldToColumn( $.i18n._( 'Note' ), form_item_input, tab_review_column4, 'first_last', null, null, true );
|
||
|
}
|
||
|
|
||
|
initInsideEditorUI() {
|
||
|
//Inside editor
|
||
|
var tab_review = this.edit_view_tab.find( '#tab_review' );
|
||
|
|
||
|
var inside_editor_div = tab_review.find( '.inside-editor-div' );
|
||
|
|
||
|
var args = {
|
||
|
serial: '#',
|
||
|
name: $.i18n._( 'Key Performance Indicator' ) + '<br>(' + $.i18n._('Hover for Description') + ')',
|
||
|
rating: $.i18n._( 'Result' ),
|
||
|
note: $.i18n._( 'Note' )
|
||
|
};
|
||
|
|
||
|
this.editor = Global.loadWidgetByName( FormItemType.INSIDE_EDITOR );
|
||
|
|
||
|
this.editor.InsideEditor( {
|
||
|
addRow: this.insideEditorAddRow,
|
||
|
removeRow: this.insideEditorRemoveRow,
|
||
|
getValue: this.insideEditorGetValue,
|
||
|
setValue: this.insideEditorSetValue,
|
||
|
onFormItemChange: this.onInsideFormItemChange,
|
||
|
parent_controller: this,
|
||
|
api: this.user_review_api,
|
||
|
render: getRender(),
|
||
|
render_args: args,
|
||
|
render_inline_html: true,
|
||
|
row_render: getRowRender()
|
||
|
|
||
|
} );
|
||
|
|
||
|
function getRender() {
|
||
|
return `
|
||
|
<table class="inside-editor-render">
|
||
|
<tr class="title" style="font-weight: bold">
|
||
|
<td style="width: 50px"><%= serial %></td>
|
||
|
<td style="width: 820px"><%= name %></td>
|
||
|
<td style="width: 70px"><%= rating %></td>
|
||
|
<td style="width: 300px;"><%= note %></td>
|
||
|
</tr>
|
||
|
</table>`;
|
||
|
}
|
||
|
|
||
|
function getRowRender() {
|
||
|
return `
|
||
|
<tr class="inside-editor-row data-row">
|
||
|
<td></td>
|
||
|
<td></td>
|
||
|
<td></td>
|
||
|
<td></td>
|
||
|
</tr>`;
|
||
|
}
|
||
|
|
||
|
inside_editor_div.append( this.editor );
|
||
|
}
|
||
|
|
||
|
/* jshint ignore:start */
|
||
|
|
||
|
addEditFieldToColumn( label, widgets, column, firstOrLastRecord, widgetContainer, saveFormItemDiv, setResizeEvent, saveFormItemDivKey, hasKeyEvent, customLabelWidget ) {
|
||
|
|
||
|
var $this = this;
|
||
|
var form_item = $( Global.loadWidgetByName( WidgetNamesDic.EDIT_VIEW_FORM_ITEM ) );
|
||
|
var form_item_label_div = form_item.find( '.edit-view-form-item-label-div' );
|
||
|
var form_item_label = form_item.find( '.edit-view-form-item-label' );
|
||
|
var form_item_input_div = form_item.find( '.edit-view-form-item-input-div' );
|
||
|
|
||
|
if ( customLabelWidget ) {
|
||
|
form_item_label.parent().append( customLabelWidget );
|
||
|
form_item_label.remove();
|
||
|
} else {
|
||
|
form_item_label.text( $.i18n._( label ) );
|
||
|
}
|
||
|
|
||
|
var widget = widgets;
|
||
|
|
||
|
if ( Global.isArray( widgets ) ) {
|
||
|
|
||
|
for ( var i = 0; i < widgets.length; i++ ) {
|
||
|
widget = widgets[i];
|
||
|
widget.css( 'opacity', 0 );
|
||
|
|
||
|
this.edit_view_ui_dic[widget.getField()] = widget;
|
||
|
|
||
|
widget.unbind( 'formItemChange' ).bind( 'formItemChange', function( e, target, doNotValidate ) {
|
||
|
$this.onFormItemChange( target, doNotValidate );
|
||
|
} );
|
||
|
|
||
|
if ( hasKeyEvent ) {
|
||
|
widget.unbind( 'formItemKeyUp' ).bind( 'formItemKeyUp', function( e, target ) {
|
||
|
$this.onFormItemKeyUp( target );
|
||
|
} );
|
||
|
|
||
|
widget.unbind( 'formItemKeyDown' ).bind( 'formItemKeyDown', function( e, target ) {
|
||
|
$this.onFormItemKeyDown( target );
|
||
|
} );
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
|
||
|
widget.css( 'opacity', 0 );
|
||
|
|
||
|
this.edit_view_ui_dic[widget.getField()] = widget;
|
||
|
|
||
|
widget.bind( 'formItemChange', function( e, target, doNotValidate ) {
|
||
|
$this.onFormItemChange( target, doNotValidate );
|
||
|
} );
|
||
|
|
||
|
if ( hasKeyEvent ) {
|
||
|
widget.bind( 'formItemKeyUp', function( e, target ) {
|
||
|
$this.onFormItemKeyUp( target );
|
||
|
} );
|
||
|
|
||
|
widget.bind( 'formItemKeyDown', function( e, target ) {
|
||
|
$this.onFormItemKeyDown( target );
|
||
|
} );
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
if ( Global.isSet( widgetContainer ) ) {
|
||
|
form_item_input_div.append( widgetContainer );
|
||
|
|
||
|
} else {
|
||
|
form_item_input_div.append( widget );
|
||
|
}
|
||
|
|
||
|
if ( setResizeEvent ) {
|
||
|
|
||
|
if ( widget.getField() === 'note' ) {
|
||
|
|
||
|
form_item_input_div.css( 'width', '80%' );
|
||
|
form_item_label_div.css( 'height', '80' );
|
||
|
widget.css( { 'width': '100%', 'resize': 'none' } );
|
||
|
|
||
|
} else {
|
||
|
|
||
|
form_item.bind( 'resize', function() {
|
||
|
|
||
|
if ( form_item_label_div.height() !== form_item.height() && form_item.height() !== 0 ) {
|
||
|
form_item_label_div.css( 'height', form_item.height() );
|
||
|
form_item.unbind( 'resize' );
|
||
|
}
|
||
|
|
||
|
} );
|
||
|
|
||
|
widget.bind( 'setSize', function() {
|
||
|
form_item_label_div.css( 'height', widget.height() + 5 );
|
||
|
} );
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
if ( saveFormItemDiv ) {
|
||
|
|
||
|
if ( Global.isArray( widgets ) ) {
|
||
|
this.edit_view_form_item_dic[widgets[0].getField()] = form_item;
|
||
|
} else {
|
||
|
this.edit_view_form_item_dic[widget.getField()] = form_item;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
column.append( form_item );
|
||
|
//column.append( "<div class='clear-both-div'></div>" );
|
||
|
}
|
||
|
|
||
|
/* jshint ignore:end */
|
||
|
|
||
|
buildSearchFields() {
|
||
|
|
||
|
super.buildSearchFields();
|
||
|
|
||
|
var default_args = {};
|
||
|
default_args.permission_section = 'user_review';
|
||
|
this.search_fields = [
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Employee' ),
|
||
|
in_column: 1,
|
||
|
field: 'user_id',
|
||
|
default_args: default_args,
|
||
|
layout_name: 'global_user',
|
||
|
api_class: TTAPI.APIUser,
|
||
|
multiple: true,
|
||
|
basic_search: true,
|
||
|
adv_search: true,
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Reviewer' ),
|
||
|
in_column: 1,
|
||
|
field: 'reviewer_user_id',
|
||
|
layout_name: 'global_user',
|
||
|
api_class: TTAPI.APIUser,
|
||
|
multiple: true,
|
||
|
basic_search: true,
|
||
|
adv_search: true,
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Type' ),
|
||
|
in_column: 1,
|
||
|
field: 'type_id',
|
||
|
multiple: true,
|
||
|
basic_search: true,
|
||
|
adv_search: true,
|
||
|
layout_name: 'global_option_column',
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Tags' ),
|
||
|
field: 'tag',
|
||
|
basic_search: true,
|
||
|
adv_search: true,
|
||
|
in_column: 1,
|
||
|
object_type_id: 320,
|
||
|
form_item_type: FormItemType.TAG_INPUT
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Status' ),
|
||
|
in_column: 2,
|
||
|
field: 'status_id',
|
||
|
multiple: true,
|
||
|
basic_search: true,
|
||
|
adv_search: true,
|
||
|
layout_name: 'global_option_column',
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Terms' ),
|
||
|
in_column: 2,
|
||
|
field: 'term_id',
|
||
|
multiple: true,
|
||
|
basic_search: true,
|
||
|
adv_search: true,
|
||
|
layout_name: 'global_option_column',
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Severity' ),
|
||
|
in_column: 2,
|
||
|
field: 'severity_id',
|
||
|
multiple: true,
|
||
|
basic_search: true,
|
||
|
adv_search: true,
|
||
|
layout_name: 'global_option_column',
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Start Date' ),
|
||
|
in_column: 1,
|
||
|
field: 'start_date',
|
||
|
basic_search: false,
|
||
|
adv_search: true,
|
||
|
form_item_type: FormItemType.DATE_PICKER
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'End Date' ),
|
||
|
in_column: 1,
|
||
|
field: 'end_date',
|
||
|
basic_search: false,
|
||
|
adv_search: true,
|
||
|
form_item_type: FormItemType.DATE_PICKER
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Due Date' ),
|
||
|
in_column: 1,
|
||
|
field: 'due_date',
|
||
|
basic_search: false,
|
||
|
adv_search: true,
|
||
|
form_item_type: FormItemType.DATE_PICKER
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'KPI' ),
|
||
|
in_column: 2,
|
||
|
field: 'kpi_id',
|
||
|
layout_name: 'global_kpi',
|
||
|
api_class: TTAPI.APIKPI,
|
||
|
multiple: true,
|
||
|
basic_search: false,
|
||
|
adv_search: true,
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Created By' ),
|
||
|
in_column: 2,
|
||
|
field: 'created_by',
|
||
|
layout_name: 'global_user',
|
||
|
api_class: TTAPI.APIUser,
|
||
|
multiple: true,
|
||
|
basic_search: false,
|
||
|
adv_search: true,
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} ),
|
||
|
|
||
|
new SearchField( {
|
||
|
label: $.i18n._( 'Updated By' ),
|
||
|
in_column: 2,
|
||
|
field: 'updated_by',
|
||
|
layout_name: 'global_user',
|
||
|
api_class: TTAPI.APIUser,
|
||
|
multiple: true,
|
||
|
basic_search: false,
|
||
|
adv_search: true,
|
||
|
form_item_type: FormItemType.AWESOME_BOX
|
||
|
} )
|
||
|
];
|
||
|
}
|
||
|
|
||
|
removeEditView() {
|
||
|
super.removeEditView();
|
||
|
this.editor = null;
|
||
|
}
|
||
|
|
||
|
setEditViewDataDone() {
|
||
|
super.setEditViewDataDone();
|
||
|
this.initInsideEditorData();
|
||
|
}
|
||
|
|
||
|
onFormItemChange( target, doNotValidate ) {
|
||
|
var $this = this;
|
||
|
this.setIsChanged( target );
|
||
|
this.setMassEditingFieldsWhenFormChange( target );
|
||
|
var key = target.getField();
|
||
|
var c_value = target.getValue();
|
||
|
switch ( key ) {
|
||
|
case 'group_id':
|
||
|
var filter = {};
|
||
|
filter.filter_data = {};
|
||
|
// why need [c_value, -1], -1 will return all, the filter won't work correct if send -1,remove for testting
|
||
|
filter.filter_data.group_id = [c_value];
|
||
|
this.kpi_api['get' + this.kpi_api.key_name]( filter, false, true, {
|
||
|
onResult: function( res ) {
|
||
|
$this.setInsideEditorData( res );
|
||
|
}
|
||
|
} );
|
||
|
break;
|
||
|
default:
|
||
|
this.current_edit_record[key] = c_value;
|
||
|
if ( !doNotValidate ) {
|
||
|
this.validate();
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
onInsideFormItemChange( target, doNotValidate ) {
|
||
|
target.clearErrorStyle();
|
||
|
|
||
|
var key = target.getField();
|
||
|
var c_value = target.getValue();
|
||
|
switch ( key ) {
|
||
|
case 'rating':
|
||
|
var minimum_rate = parseInt( target.attr( 'minimum_rate' ) );
|
||
|
var maximum_rate = parseInt( target.attr( 'maximum_rate' ) );
|
||
|
if ( c_value !== '' ) {
|
||
|
c_value = parseInt( c_value );
|
||
|
if ( c_value >= minimum_rate && c_value <= maximum_rate ) {
|
||
|
target.clearErrorStyle();
|
||
|
this.parent_controller.setEditMenu();
|
||
|
} else {
|
||
|
target.setErrorStyle( $.i18n._( 'Rating must between' ) + ' ' + minimum_rate + ' ' + $.i18n._( 'and' ) + ' ' + maximum_rate, true );
|
||
|
this.parent_controller.setErrorMenu();
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
initInsideEditorData() {
|
||
|
|
||
|
var $this = this;
|
||
|
var args = {};
|
||
|
args.filter_data = {};
|
||
|
|
||
|
if ( this.current_edit_record.id ) {
|
||
|
|
||
|
args.filter_data.user_review_control_id = this.current_edit_record['id'];
|
||
|
|
||
|
$this.user_review_api['get' + $this.user_review_api.key_name]( args, true, {
|
||
|
onResult: function( res ) {
|
||
|
if ( !$this.edit_view ) {
|
||
|
return;
|
||
|
}
|
||
|
$this.setInsideEditorData( res );
|
||
|
}
|
||
|
} );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* jshint ignore:start */
|
||
|
|
||
|
setInsideEditorData( res ) {
|
||
|
var data = res.getResult();
|
||
|
var len = data.length;
|
||
|
|
||
|
if ( len > 0 ) {
|
||
|
|
||
|
if ( !this.editor ) {
|
||
|
this.initInsideEditorUI();
|
||
|
}
|
||
|
|
||
|
var serial = 1;
|
||
|
for ( var key in data ) {
|
||
|
var row = data[key];
|
||
|
var is_existed = false;
|
||
|
if ( !row.kpi_id ) {
|
||
|
row.kpi_id = row.id;
|
||
|
row.id = false;
|
||
|
}
|
||
|
// the row.kpi_id if existed in this.editor.editor_data?
|
||
|
if ( this.editor.editor_data ) {
|
||
|
|
||
|
for ( var i = 0; i < this.editor.editor_data.length; i++ ) {
|
||
|
var item = this.editor.editor_data[i];
|
||
|
if ( row.kpi_id === item.kpi_id ) {
|
||
|
is_existed = true; // the current row has already displayed.
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ( !is_existed ) {
|
||
|
serial = this.editor.editor_data.length + 1;
|
||
|
row.serial = serial;
|
||
|
this.editor.editor_data.push( row );
|
||
|
}
|
||
|
|
||
|
// serial++;
|
||
|
|
||
|
} else {
|
||
|
row.serial = serial;
|
||
|
data[key] = row;
|
||
|
serial++;
|
||
|
}
|
||
|
|
||
|
if ( !is_existed ) {
|
||
|
this.editor.addRow( row );
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
if ( !this.editor.editor_data ) {
|
||
|
this.original_user_review_data = _.map( data, _.clone );
|
||
|
for ( let i = 0; i < this.original_user_review_data.length; i++ ) {
|
||
|
//Need to convert these jQuery objects to their values so thwt future data change comparisons do not fail.
|
||
|
if ( this.original_user_review_data[i].hasOwnProperty( 'rating' ) && this.original_user_review_data[i].rating !== false ) {
|
||
|
this.original_user_review_data[i].rating = this.original_user_review_data[i].rating.getValue();
|
||
|
}
|
||
|
if ( this.original_user_review_data[i].hasOwnProperty( 'note' ) && this.original_user_review_data[i].note !== false ) {
|
||
|
this.original_user_review_data[i].note = this.original_user_review_data[i].note.getValue();
|
||
|
}
|
||
|
}
|
||
|
this.editor.editor_data = data;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
// $this.editor.setValue( data );
|
||
|
}
|
||
|
|
||
|
/* jshint ignore:end */
|
||
|
|
||
|
// insideEditorSetValue( val ) {
|
||
|
// var len = val.length;
|
||
|
// this.removeAllRows();
|
||
|
//
|
||
|
// if ( len > 0 ) {
|
||
|
// var serial = 1;
|
||
|
// for ( var i = 0; i < val.length; i++ ) {
|
||
|
// if ( Global.isSet( val[i] ) ) {
|
||
|
// var row = val[i];
|
||
|
// row.serial = serial;
|
||
|
// this.addRow( row );
|
||
|
// serial++;
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
//
|
||
|
// },
|
||
|
|
||
|
insideEditorAddRow( data ) {
|
||
|
var $this = this;
|
||
|
if ( !data ) {
|
||
|
// this.getDefaultData();
|
||
|
} else {
|
||
|
var row = this.getRowRender(); //Get Row render
|
||
|
var render = this.getRender(); //get render, should be a table
|
||
|
var widgets = data; //Save each row's widgets
|
||
|
|
||
|
//Build row widgets
|
||
|
|
||
|
// #
|
||
|
var form_item_input = Global.loadWidgetByName( FormItemType.TEXT );
|
||
|
form_item_input.TText( { field: 'serial', width: 50 } );
|
||
|
form_item_input.setValue( data.serial ? data.serial : null );
|
||
|
// widgets[form_item_input.getField()] = form_item_input;
|
||
|
row.children().eq( 0 ).append( form_item_input );
|
||
|
|
||
|
// Key Performance Indicator
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.TEXT );
|
||
|
form_item_input.TText( { field: 'name', width: 600 } );
|
||
|
form_item_input.setValue( data.name ? data.name : null );
|
||
|
form_item_input.attr( 'title', data.description ? data.description : '' );
|
||
|
|
||
|
row.children().eq( 1 ).append( form_item_input );
|
||
|
|
||
|
// Rating
|
||
|
if ( data.type_id == 10 ) {
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
|
||
|
form_item_input.TTextInput( { field: 'rating', width: 40 } );
|
||
|
form_item_input.setValue( data.rating ? data.rating : null );
|
||
|
form_item_input.attr( { 'minimum_rate': data.minimum_rate, 'maximum_rate': data.maximum_rate } );
|
||
|
form_item_input.bind( 'formItemChange', function( e, target, doNotValidate ) {
|
||
|
$this.onFormItemChange( target, doNotValidate );
|
||
|
} );
|
||
|
widgets[form_item_input.getField()] = form_item_input;
|
||
|
row.children().eq( 2 ).append( form_item_input );
|
||
|
|
||
|
this.setWidgetEnableBaseOnParentController( form_item_input );
|
||
|
|
||
|
} else if ( data.type_id == 20 ) {
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.CHECKBOX );
|
||
|
form_item_input.TCheckbox( { field: 'rating' } );
|
||
|
form_item_input.setValue( data.rating ? ( data.rating >= 1 ? true : false ) : null ); //Rating is numeric, so make sure we pass true/false to TCheckbox.
|
||
|
widgets[form_item_input.getField()] = form_item_input;
|
||
|
row.children().eq( 2 ).append( form_item_input );
|
||
|
|
||
|
this.setWidgetEnableBaseOnParentController( form_item_input );
|
||
|
}
|
||
|
|
||
|
// Note
|
||
|
form_item_input = Global.loadWidgetByName( FormItemType.TEXT_AREA );
|
||
|
form_item_input.TTextArea( {
|
||
|
field: 'note',
|
||
|
style: { width: '300px', height: '20px', 'min-height': '10px' }
|
||
|
} );
|
||
|
form_item_input.setValue( data.note ? data.note : null );
|
||
|
widgets[form_item_input.getField()] = form_item_input;
|
||
|
row.children().eq( 3 ).css( 'text-align', 'right' ).append( form_item_input );
|
||
|
this.setWidgetEnableBaseOnParentController( form_item_input );
|
||
|
|
||
|
// end
|
||
|
|
||
|
if ( this.rows_widgets_array.length === 0 ) {
|
||
|
$( render ).append( row );
|
||
|
} else {
|
||
|
// Get all rows and insert new row according to it's display_order
|
||
|
let rows = render.find( 'tr' ).get();
|
||
|
|
||
|
data.display_order = parseInt( data.display_order ) || 0;
|
||
|
|
||
|
for ( let i = 0; i < rows.length; i++ ) {
|
||
|
// Loop looks for the correct spot to insert the new row based on the value of display_order.
|
||
|
// If the last row is undefined or the value of display_order is less than the row to be inserted and the row after this is undefined or has a higher display_order, insert it there.
|
||
|
if ( ( i === 0 || $( rows[i] ).attr( 'data-order' ) <= data.display_order ) && ( rows[i + 1] === undefined || $( rows[i + 1] ).attr( 'data-order' ) >= data.display_order ) ) {
|
||
|
$( rows[i] ).after( row );
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Now that the rows are in the correct order, renumber them.
|
||
|
rows = render.find( 'tr' ).get();
|
||
|
let order_number = 1;
|
||
|
for ( let i = 0; i < rows.length; i++ ) {
|
||
|
if ( i !== 0 ) {
|
||
|
$( rows[i] ).find( "td:first" ).text( order_number );
|
||
|
order_number++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ( this.parent_controller.is_viewing ) {
|
||
|
row.find( '.control-icon' ).hide();
|
||
|
}
|
||
|
|
||
|
this.rows_widgets_array.push( widgets );
|
||
|
|
||
|
this.addIconsEvent( row ); //Bind event to add and minus icon
|
||
|
this.removeLastRowLine();
|
||
|
|
||
|
// Attach display_order to the <tr> for easy reordering after adding new KPI groups.
|
||
|
row.attr('data-order', data.display_order);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
insideEditorRemoveRow( row ) {
|
||
|
var index = row[0].rowIndex - 1;
|
||
|
var remove_id = this.rows_widgets_array[index].current_edit_item.id;
|
||
|
if ( TTUUID.isUUID( remove_id ) && remove_id != TTUUID.zero_id && remove_id != TTUUID.not_exist_id ) {
|
||
|
this.delete_ids.push( remove_id );
|
||
|
}
|
||
|
row.remove();
|
||
|
this.rows_widgets_array.splice( index, 1 );
|
||
|
this.removeLastRowLine();
|
||
|
}
|
||
|
|
||
|
onSaveResult( result ) {
|
||
|
var $this = this;
|
||
|
if ( result.isValid() ) {
|
||
|
var result_data = result.getResult();
|
||
|
if ( result_data === true ) {
|
||
|
$this.refresh_id = $this.current_edit_record.id;
|
||
|
} else if ( TTUUID.isUUID( result_data ) && result_data != TTUUID.zero_id && result_data != TTUUID.not_exist_id ) {
|
||
|
$this.refresh_id = result_data;
|
||
|
}
|
||
|
|
||
|
$this.saveInsideEditorData( function() {
|
||
|
$this.search();
|
||
|
$this.onSaveDone( result );
|
||
|
|
||
|
$this.removeEditView();
|
||
|
} );
|
||
|
|
||
|
} else {
|
||
|
$this.setErrorMenu();
|
||
|
$this.setErrorTips( result );
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// onSaveAndContinueResult( result ) {
|
||
|
// var $this = this;
|
||
|
// if ( result.isValid() ) {
|
||
|
// var result_data = result.getResult();
|
||
|
// if ( result_data === true ) {
|
||
|
// $this.refresh_id = $this.current_edit_record.id;
|
||
|
//
|
||
|
// } else if ( TTUUID.isUUID( result_data ) && result_data != TTUUID.zero_id && result_data != TTUUID.not_exist_id ) {
|
||
|
// $this.refresh_id = result_data;
|
||
|
// }
|
||
|
//
|
||
|
// $this.saveInsideEditorData( function() {
|
||
|
// $this.search( false );
|
||
|
// $this.onEditClick( $this.refresh_id, true );
|
||
|
//
|
||
|
// $this.onSaveAndContinueDone( result );
|
||
|
// } );
|
||
|
//
|
||
|
// } else {
|
||
|
// $this.setErrorTips( result );
|
||
|
// $this.setErrorMenu();
|
||
|
// }
|
||
|
// },
|
||
|
|
||
|
onEditClick( editId, noRefreshUI ) {
|
||
|
var $this = this;
|
||
|
if ( $this.editor ) {
|
||
|
$this.editor.remove();
|
||
|
$this.editor = null;
|
||
|
}
|
||
|
|
||
|
super.onEditClick( editId, noRefreshUI );
|
||
|
}
|
||
|
|
||
|
saveInsideEditorData( callBack ) {
|
||
|
var $this = this;
|
||
|
|
||
|
if ( !this.editor ) {
|
||
|
callBack();
|
||
|
} else {
|
||
|
var data = this.editor.getValue( this.refresh_id );
|
||
|
let changed_data = this.getChangedRecords( data, this.original_user_review_data, [] );
|
||
|
|
||
|
if ( Array.isArray( changed_data ) && changed_data.length > 0 ) {
|
||
|
this.user_review_api.setUserReview( changed_data, {
|
||
|
onResult: function( res ) {
|
||
|
callBack();
|
||
|
}
|
||
|
} );
|
||
|
} else {
|
||
|
callBack();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
insideEditorGetValue( current_edit_item_id ) {
|
||
|
var len = this.rows_widgets_array.length;
|
||
|
for ( var i = 0; i < len; i++ ) {
|
||
|
var row = this.rows_widgets_array[i];
|
||
|
if ( row.rating ) {
|
||
|
row.rating = row.rating.getValue();
|
||
|
}
|
||
|
row.note = row.note.getValue();
|
||
|
|
||
|
row.user_review_control_id = current_edit_item_id;
|
||
|
|
||
|
this.rows_widgets_array[i] = row;
|
||
|
}
|
||
|
|
||
|
return this.rows_widgets_array;
|
||
|
}
|
||
|
|
||
|
_continueDoCopyAsNew() {
|
||
|
|
||
|
var $this = this;
|
||
|
this.is_add = true;
|
||
|
|
||
|
LocalCacheData.current_doing_context_action = 'copy_as_new';
|
||
|
|
||
|
if ( Global.isSet( this.edit_view ) ) {
|
||
|
|
||
|
this.current_edit_record.id = '';
|
||
|
var navigation_div = this.edit_view.find( '.navigation-div' );
|
||
|
navigation_div.css( 'display', 'none' );
|
||
|
if ( this.editor ) {
|
||
|
this.editor.remove();
|
||
|
this.editor = null;
|
||
|
}
|
||
|
this.setEditMenu();
|
||
|
this.setTabStatus();
|
||
|
this.is_changed = false;
|
||
|
ProgressBar.closeOverlay();
|
||
|
|
||
|
} else {
|
||
|
super._continueDoCopyAsNew();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
onSaveAndNewResult( result ) {
|
||
|
var $this = this;
|
||
|
if ( result.isValid() ) {
|
||
|
var result_data = result.getResult();
|
||
|
if ( result_data === true ) {
|
||
|
$this.refresh_id = $this.current_edit_record.id;
|
||
|
|
||
|
} else if ( TTUUID.isUUID( result_data ) && result_data != TTUUID.zero_id && result_data != TTUUID.not_exist_id ) {
|
||
|
$this.refresh_id = result_data;
|
||
|
}
|
||
|
|
||
|
$this.saveInsideEditorData( function() {
|
||
|
$this.search( false );
|
||
|
if ( $this.editor ) {
|
||
|
$this.editor.remove();
|
||
|
$this.editor = null;
|
||
|
}
|
||
|
$this.onAddClick( true );
|
||
|
} );
|
||
|
|
||
|
} else {
|
||
|
$this.setErrorTips( result );
|
||
|
$this.setErrorMenu();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
onSaveAndCopyResult( result ) {
|
||
|
var $this = this;
|
||
|
if ( result.isValid() ) {
|
||
|
var result_data = result.getResult();
|
||
|
if ( result_data === true ) {
|
||
|
$this.refresh_id = $this.current_edit_record.id;
|
||
|
|
||
|
} else if ( TTUUID.isUUID( result_data ) && result_data != TTUUID.zero_id && result_data != TTUUID.not_exist_id ) {
|
||
|
$this.refresh_id = result_data;
|
||
|
}
|
||
|
|
||
|
$this.saveInsideEditorData( function() {
|
||
|
$this.search( false );
|
||
|
if ( $this.editor ) {
|
||
|
$this.editor.remove();
|
||
|
$this.editor = null;
|
||
|
}
|
||
|
$this.onCopyAsNewClick();
|
||
|
} );
|
||
|
|
||
|
} else {
|
||
|
$this.setErrorTips( result );
|
||
|
$this.setErrorMenu();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// onSaveAndNextResult( result ) {
|
||
|
// var $this = this;
|
||
|
// if ( result.isValid() ) {
|
||
|
// var result_data = result.getResult();
|
||
|
// if ( result_data === true ) {
|
||
|
// $this.refresh_id = $this.current_edit_record.id;
|
||
|
// } else if ( TTUUID.isUUID( result_data ) && result_data != TTUUID.zero_id && result_data != TTUUID.not_exist_id ) {
|
||
|
// $this.refresh_id = result_data;
|
||
|
// }
|
||
|
//
|
||
|
// $this.saveInsideEditorData( function() {
|
||
|
// $this.onRightArrowClick();
|
||
|
// $this.search( false );
|
||
|
// $this.onSaveAndNextDone( result );
|
||
|
// } );
|
||
|
//
|
||
|
// } else {
|
||
|
// $this.setErrorTips( result );
|
||
|
// $this.setErrorMenu();
|
||
|
// }
|
||
|
// },
|
||
|
|
||
|
onRightArrowClick() {
|
||
|
if ( this.editor ) {
|
||
|
this.editor.remove();
|
||
|
this.editor = null;
|
||
|
}
|
||
|
super.onRightArrowClick();
|
||
|
}
|
||
|
|
||
|
onLeftArrowClick() {
|
||
|
if ( this.editor ) {
|
||
|
this.editor.remove();
|
||
|
this.editor = null;
|
||
|
}
|
||
|
super.onLeftArrowClick();
|
||
|
}
|
||
|
|
||
|
searchDone() {
|
||
|
super.searchDone();
|
||
|
TTPromise.resolve( 'ReviewView', 'init' );
|
||
|
}
|
||
|
|
||
|
setDefaultMenuReportRelatedIcons( context_btn, grid_selected_length, pId ) {
|
||
|
if ( !this.payStubReportIconsValidate() ) {
|
||
|
ContextMenuManager.hideMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, false )
|
||
|
}
|
||
|
|
||
|
if ( grid_selected_length > 0 && this.viewOwnerOrChildPermissionValidate() ) {
|
||
|
ContextMenuManager.disableMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, true );
|
||
|
} else {
|
||
|
ContextMenuManager.disableMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, false );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
setCustomDefaultMenuIcon( id, context_btn, grid_selected_length ) {
|
||
|
switch ( id ) {
|
||
|
case 'pdf_review_print':
|
||
|
if ( grid_selected_length > 0 && this.viewOwnerOrChildPermissionValidate() ) {
|
||
|
ContextMenuManager.disableMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, true );
|
||
|
} else {
|
||
|
ContextMenuManager.disableMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, false );
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
doFormIFrameCall( postData ) {
|
||
|
Global.APIFileDownload( 'APIKPIReport', 'getKPIReport', postData );
|
||
|
}
|
||
|
|
||
|
onCustomContextClick( id ) {
|
||
|
var $this = this;
|
||
|
|
||
|
switch ( id ) {
|
||
|
case 'pdf_review_print':
|
||
|
var grid_selected_id_array;
|
||
|
|
||
|
var ids = [];
|
||
|
if ( $this.edit_view && $this.current_edit_record.id ) {
|
||
|
ids.push( $this.current_edit_record.id );
|
||
|
} else {
|
||
|
grid_selected_id_array = this.getGridSelectIdArray();
|
||
|
$.each( grid_selected_id_array, function( index, value ) {
|
||
|
var grid_selected_row = $this.getRecordFromGridById( value );
|
||
|
ids.push( grid_selected_row.id );
|
||
|
} );
|
||
|
}
|
||
|
|
||
|
this.doFormIFrameCall( { 0: { 'user_review_control_id': ids }, 1: 'pdf_review_print' } );
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
getUserReviewTabHtml() {
|
||
|
return `<div id="tab_review" class="edit-view-tab-outside">
|
||
|
<div class="edit-view-tab" id="tab_review_content_div">
|
||
|
<div class="first-column"></div>
|
||
|
<div class="second-column"></div>
|
||
|
<div class="third-column full-width-column">
|
||
|
<div class="third-column-form-item" style="margin-left: 40%">
|
||
|
<div class="column-form-item-label"></div>
|
||
|
<div class="column-form-item-input"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="inside-editor-div full-width-column"></div>
|
||
|
<div class="forth-column full-width-column border-column"></div>
|
||
|
</div>
|
||
|
</div>`;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
UserReviewControlViewController.loadSubView = function( container, beforeViewLoadedFun, afterViewLoadedFun ) {
|
||
|
Global.loadViewSource( 'UserReviewControl', 'SubUserReviewControlView.html', function( result ) {
|
||
|
var args = {};
|
||
|
var template = _.template( result );
|
||
|
|
||
|
if ( Global.isSet( beforeViewLoadedFun ) ) {
|
||
|
beforeViewLoadedFun();
|
||
|
}
|
||
|
if ( Global.isSet( container ) ) {
|
||
|
container.html( template( args ) );
|
||
|
if ( Global.isSet( afterViewLoadedFun ) ) {
|
||
|
TTPromise.wait( 'BaseViewController', 'initialize', function() {
|
||
|
afterViewLoadedFun( sub_user_review_control_view_controller );
|
||
|
} );
|
||
|
}
|
||
|
}
|
||
|
} );
|
||
|
};
|