@@ -119,6 +119,8 @@ DatabaseTable.prototype.cmdDeleteTable=function(ev){var $target=$(ev.currentTarg
119119$ . oc . confirm ( $target . data ( 'confirm' ) , this . proxy ( this . deleteConfirmed ) ) }
120120DatabaseTable . prototype . cmdUnModifyForm = function ( ) { var $masterTabPane = this . getMasterTabsActivePane ( )
121121this . unmodifyTab ( $masterTabPane ) }
122+ DatabaseTable . prototype . cmdAddIdColumn = function ( ev ) { var $target = $ ( ev . currentTarget ) , added = this . addIdColumn ( $target )
123+ if ( ! added ) { alert ( $target . closest ( 'form' ) . attr ( 'data-lang-id-exists' ) ) } }
122124DatabaseTable . prototype . cmdAddTimestamps = function ( ev ) { var $target = $ ( ev . currentTarget ) , added = this . addTimeStampColumns ( $target , [ 'created_at' , 'updated_at' ] )
123125if ( ! added ) { alert ( $target . closest ( 'form' ) . attr ( 'data-lang-timestamps-exist' ) ) } }
124126DatabaseTable . prototype . cmdAddSoftDelete = function ( ev ) { var $target = $ ( ev . currentTarget ) , added = this . addTimeStampColumns ( $target , [ 'deleted_at' ] )
@@ -135,10 +137,10 @@ if(column=='allow_null'&&value){updatedRow.primary_key=0}
135137if ( column == 'primary_key' && ! value ) { updatedRow . auto_increment = 0 }
136138$target . table ( 'setRowValues' , rowIndex , updatedRow ) }
137139DatabaseTable . prototype . onTableLoaded = function ( ) { $ ( document ) . trigger ( 'render' )
138- var $masterTabPane = this . getMasterTabsActivePane ( ) , $form = $masterTabPane . find ( 'form' ) , $toolbar = $masterTabPane . find ( 'div[data-control=table] div.toolbar' ) , $button = $ ( '<a class="btn oc-icon-clock-o builder-custom-table-button" data-builder-command="databaseTable:cmdAddTimestamps"></a>' )
139- $button . text ( $form . attr ( 'data-lang-add-timestamps ' ) ) ; $toolbar . append ( $button )
140- $button = $ ( '<a class="btn oc-icon-refresh builder-custom-table-button" data-builder-command="databaseTable:cmdAddSoftDelete"></a>' )
141- $button . text ( $form . attr ( 'data-lang-add-soft-delete' ) ) ; $toolbar . append ( $button ) }
140+ var $masterTabPane = this . getMasterTabsActivePane ( ) , $form = $masterTabPane . find ( 'form' ) , $toolbar = $masterTabPane . find ( 'div[data-control=table] div.toolbar' ) , $addIdButton = $ ( '<a class="btn oc-icon-clock-o builder-custom-table- button" data-builder-command="databaseTable:cmdAddIdColumn"></a>' ) , $addTimestampsButton = $ ( '<a class="btn oc-icon-clock-o builder-custom-table-button" data-builder-command="databaseTable:cmdAddTimestamps"></a>' ) , $addSoftDeleteButton = $ ( '<a class="btn oc-icon-refresh builder-custom-table-button" data-builder-command="databaseTable:cmdAddSoftDelete "></a>')
141+ $addIdButton . text ( $form . attr ( 'data-lang-add-id ' ) ) ; $toolbar . append ( $addIdButton )
142+ $addTimestampsButton . text ( $form . attr ( ' data-lang-add-timestamps' ) ) ; $toolbar . append ( $addTimestampsButton )
143+ $addSoftDeleteButton . text ( $form . attr ( 'data-lang-add-soft-delete' ) ) ; $toolbar . append ( $addSoftDeleteButton ) }
142144DatabaseTable . prototype . registerHandlers = function ( ) { this . indexController . $masterTabs . on ( 'oc.tableCellChanged' , this . proxy ( this . onTableCellChanged ) ) }
143145DatabaseTable . prototype . validateTable = function ( $target ) { var tableObj = this . getTableControlObject ( $target )
144146tableObj . unfocusTable ( )
@@ -167,10 +169,19 @@ tableObj.unfocusTable()
167169var data = this . getTableData ( $target ) , result = [ ]
168170for ( var index in data ) { if ( data [ index ] . name !== undefined ) { result . push ( $ . trim ( data [ index ] . name ) ) } }
169171return result }
172+ DatabaseTable . prototype . addIdColumn = function ( $target ) { var existingColumns = this . getColumnNames ( $target ) , added = false
173+ if ( existingColumns . indexOf ( 'id' ) === - 1 ) { var tableObj = this . getTableControlObject ( $target ) , currentData = this . getTableData ( $target ) , rowData = { name :'id' , type :'integer' , unsigned :true , auto_increment :true , primary_key :true , }
174+ if ( currentData . length - 1 || currentData [ 0 ] . name || currentData [ 0 ] . type || currentData [ 0 ] . length || currentData [ 0 ] . unsigned || currentData [ 0 ] . nullable || currentData [ 0 ] . auto_increment || currentData [ 0 ] . primary_key || currentData [ 0 ] . default ) { tableObj . addRecord ( 'bottom' , true ) }
175+ tableObj . setRowValues ( currentData . length - 1 , rowData )
176+ tableObj . addRecord ( 'bottom' , false )
177+ tableObj . deleteRecord ( )
178+ added = true }
179+ if ( added ) { $target . trigger ( 'change' ) }
180+ return added }
170181DatabaseTable . prototype . addTimeStampColumns = function ( $target , columns )
171182{ var existingColumns = this . getColumnNames ( $target ) , added = false
172183for ( var index in columns ) { var column = columns [ index ]
173- if ( $ . inArray ( column , existingColumns ) == - 1 ) { this . addTimeStampColumn ( $target , column )
184+ if ( existingColumns . indexOf ( column ) = ==- 1 ) { this . addTimeStampColumn ( $target , column )
174185added = true } }
175186if ( added ) { $target . trigger ( 'change' ) }
176187return added }
@@ -810,4 +821,4 @@ return $input.val()}
810821LocalizationProcessor . prototype . removeLocalizationInput = function ( ) { if ( ! this . localizationInput ) { return }
811822this . localizationInput . dispose ( )
812823this . localizationInput = null }
813- $ . oc . table . processor . builderLocalization = LocalizationProcessor ; } ( window . jQuery ) ;
824+ $ . oc . table . processor . builderLocalization = LocalizationProcessor ; } ( window . jQuery ) ;
0 commit comments