@@ -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-hashtag 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 ( )
@@ -155,7 +157,8 @@ if(data.builderResponseData.operation!='delete'){$masterTabPane.find('input[name
155157this . updateMasterTabIdAndTitle ( $masterTabPane , data . builderResponseData )
156158this . unhideFormDeleteButton ( $masterTabPane )
157159this . getTableList ( ) . fileList ( 'markActive' , data . builderResponseData . tabId )
158- this . getIndexController ( ) . unchangeTab ( $masterTabPane ) }
160+ this . getIndexController ( ) . unchangeTab ( $masterTabPane )
161+ this . updateTable ( data . builderResponseData ) }
159162else { this . forceCloseTab ( $masterTabPane ) }
160163$ . oc . builder . dataRegistry . clearCache ( data . builderResponseData . pluginCode , 'model-columns' ) }
161164DatabaseTable . prototype . getTableList = function ( ) { return $ ( '#layout-side-panel form[data-content-id=database] [data-control=filelist]' ) }
@@ -166,10 +169,19 @@ tableObj.unfocusTable()
166169var data = this . getTableData ( $target ) , result = [ ]
167170for ( var index in data ) { if ( data [ index ] . name !== undefined ) { result . push ( $ . trim ( data [ index ] . name ) ) } }
168171return 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 }
169181DatabaseTable . prototype . addTimeStampColumns = function ( $target , columns )
170182{ var existingColumns = this . getColumnNames ( $target ) , added = false
171183for ( var index in columns ) { var column = columns [ index ]
172- if ( $ . inArray ( column , existingColumns ) == - 1 ) { this . addTimeStampColumn ( $target , column )
184+ if ( existingColumns . indexOf ( column ) = ==- 1 ) { this . addTimeStampColumn ( $target , column )
173185added = true } }
174186if ( added ) { $target . trigger ( 'change' ) }
175187return added }
@@ -178,6 +190,9 @@ tableObj.addRecord('bottom',true)
178190tableObj . setRowValues ( currentData . length - 1 , rowData )
179191tableObj . addRecord ( 'bottom' , false )
180192tableObj . deleteRecord ( ) }
193+ DatabaseTable . prototype . updateTable = function ( data ) { var tabsObject = this . getMasterTabsObject ( ) , tabs = $ ( '#builder-master-tabs' ) . data ( 'oc.tab' ) , tab = tabs . findByIdentifier ( data . tabId )
194+ tabsObject . updateTab ( tab , data . tableName , data . tab )
195+ this . onTableLoaded ( ) }
181196$ . oc . builder . entityControllers . databaseTable = DatabaseTable ; } ( window . jQuery ) ; + function ( $ ) { "use strict" ; if ( $ . oc . builder === undefined )
182197$ . oc . builder = { }
183198if ( $ . oc . builder . entityControllers === undefined )
@@ -806,4 +821,4 @@ return $input.val()}
806821LocalizationProcessor . prototype . removeLocalizationInput = function ( ) { if ( ! this . localizationInput ) { return }
807822this . localizationInput . dispose ( )
808823this . localizationInput = null }
809- $ . oc . table . processor . builderLocalization = LocalizationProcessor ; } ( window . jQuery ) ;
824+ $ . oc . table . processor . builderLocalization = LocalizationProcessor ; } ( window . jQuery ) ;
0 commit comments