Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 17 additions & 6 deletions assets/js/build-min.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ DatabaseTable.prototype.cmdDeleteTable=function(ev){var $target=$(ev.currentTarg
$.oc.confirm($target.data('confirm'),this.proxy(this.deleteConfirmed))}
DatabaseTable.prototype.cmdUnModifyForm=function(){var $masterTabPane=this.getMasterTabsActivePane()
this.unmodifyTab($masterTabPane)}
DatabaseTable.prototype.cmdAddIdColumn=function(ev){var $target=$(ev.currentTarget),added=this.addIdColumn($target)
if(!added){alert($target.closest('form').attr('data-lang-id-exists'))}}
DatabaseTable.prototype.cmdAddTimestamps=function(ev){var $target=$(ev.currentTarget),added=this.addTimeStampColumns($target,['created_at','updated_at'])
if(!added){alert($target.closest('form').attr('data-lang-timestamps-exist'))}}
DatabaseTable.prototype.cmdAddSoftDelete=function(ev){var $target=$(ev.currentTarget),added=this.addTimeStampColumns($target,['deleted_at'])
Expand All @@ -135,10 +137,10 @@ if(column=='allow_null'&&value){updatedRow.primary_key=0}
if(column=='primary_key'&&!value){updatedRow.auto_increment=0}
$target.table('setRowValues',rowIndex,updatedRow)}
DatabaseTable.prototype.onTableLoaded=function(){$(document).trigger('render')
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>')
$button.text($form.attr('data-lang-add-timestamps'));$toolbar.append($button)
$button=$('<a class="btn oc-icon-refresh builder-custom-table-button" data-builder-command="databaseTable:cmdAddSoftDelete"></a>')
$button.text($form.attr('data-lang-add-soft-delete'));$toolbar.append($button)}
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>')
$addIdButton.text($form.attr('data-lang-add-id'));$toolbar.append($addIdButton)
$addTimestampsButton.text($form.attr('data-lang-add-timestamps'));$toolbar.append($addTimestampsButton)
$addSoftDeleteButton.text($form.attr('data-lang-add-soft-delete'));$toolbar.append($addSoftDeleteButton)}
DatabaseTable.prototype.registerHandlers=function(){this.indexController.$masterTabs.on('oc.tableCellChanged',this.proxy(this.onTableCellChanged))}
DatabaseTable.prototype.validateTable=function($target){var tableObj=this.getTableControlObject($target)
tableObj.unfocusTable()
Expand Down Expand Up @@ -167,10 +169,19 @@ tableObj.unfocusTable()
var data=this.getTableData($target),result=[]
for(var index in data){if(data[index].name!==undefined){result.push($.trim(data[index].name))}}
return result}
DatabaseTable.prototype.addIdColumn=function($target){var existingColumns=this.getColumnNames($target),added=false
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,}
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)}
tableObj.setRowValues(currentData.length-1,rowData)
tableObj.addRecord('bottom',false)
tableObj.deleteRecord()
added=true}
if(added){$target.trigger('change')}
return added}
DatabaseTable.prototype.addTimeStampColumns=function($target,columns)
{var existingColumns=this.getColumnNames($target),added=false
for(var index in columns){var column=columns[index]
if($.inArray(column,existingColumns)==-1){this.addTimeStampColumn($target,column)
if(existingColumns.indexOf(column)===-1){this.addTimeStampColumn($target,column)
added=true}}
if(added){$target.trigger('change')}
return added}
Expand Down Expand Up @@ -810,4 +821,4 @@ return $input.val()}
LocalizationProcessor.prototype.removeLocalizationInput=function(){if(!this.localizationInput){return}
this.localizationInput.dispose()
this.localizationInput=null}
$.oc.table.processor.builderLocalization=LocalizationProcessor;}(window.jQuery);
$.oc.table.processor.builderLocalization=LocalizationProcessor;}(window.jQuery);
67 changes: 58 additions & 9 deletions assets/js/builder.index.entity.databasetable.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@
this.unmodifyTab($masterTabPane)
}

DatabaseTable.prototype.cmdAddIdColumn = function(ev) {
var $target = $(ev.currentTarget),
added = this.addIdColumn($target)

if (!added) {
alert($target.closest('form').attr('data-lang-id-exists'))
}
}

DatabaseTable.prototype.cmdAddTimestamps = function(ev) {
var $target = $(ev.currentTarget),
added = this.addTimeStampColumns($target, ['created_at', 'updated_at'])
Expand Down Expand Up @@ -159,14 +168,18 @@
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>')
$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>')

$button.text($form.attr('data-lang-add-timestamps'));
$toolbar.append($button)
$addIdButton.text($form.attr('data-lang-add-id'));
$toolbar.append($addIdButton)

$button = $('<a class="btn oc-icon-refresh builder-custom-table-button" data-builder-command="databaseTable:cmdAddSoftDelete"></a>')
$button.text($form.attr('data-lang-add-soft-delete'));
$toolbar.append($button)
$addTimestampsButton.text($form.attr('data-lang-add-timestamps'));
$toolbar.append($addTimestampsButton)

$addSoftDeleteButton.text($form.attr('data-lang-add-soft-delete'));
$toolbar.append($addSoftDeleteButton)
}

// INTERNAL METHODS
Expand Down Expand Up @@ -257,6 +270,42 @@
return result
}

DatabaseTable.prototype.addIdColumn = function($target) {
var existingColumns = this.getColumnNames($target),
added = false

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,
}

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)
}

tableObj.setRowValues(currentData.length - 1, rowData)

// Forces the table to apply values
// from the data source
tableObj.addRecord('bottom', false)
tableObj.deleteRecord()

added = true
}

if (added) {
$target.trigger('change')
}

return added
}

DatabaseTable.prototype.addTimeStampColumns = function($target, columns)
{
var existingColumns = this.getColumnNames($target),
Expand All @@ -265,7 +314,7 @@
for (var index in columns) {
var column = columns[index]

if ($.inArray(column, existingColumns) == -1) {
if (existingColumns.indexOf(column) === -1) {
this.addTimeStampColumn($target, column)
added = true
}
Expand All @@ -289,7 +338,7 @@
}

tableObj.addRecord('bottom', true)
tableObj.setRowValues(currentData.length-1, rowData)
tableObj.setRowValues(currentData.length - 1, rowData)

// Forces the table to apply values
// from the data source
Expand All @@ -311,4 +360,4 @@

$.oc.builder.entityControllers.databaseTable = DatabaseTable;

}(window.jQuery);
}(window.jQuery);
4 changes: 3 additions & 1 deletion behaviors/indexdatabasetableoperations/partials/_tab.htm
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
'data-window-close-confirm' => e(trans('backend::lang.form.confirm_tab_close')),
'data-entity' => 'database',
'onsubmit' => 'return false',
'data-lang-add-id' => e(trans('rainlab.builder::lang.database.btn_add_id')),
'data-lang-add-timestamps' => e(trans('rainlab.builder::lang.database.btn_add_timestamps')),
'data-lang-add-soft-delete' => e(trans('rainlab.builder::lang.database.btn_add_soft_deleting')),
'data-lang-id-exists' => e(trans('rainlab.builder::lang.database.id_exists')),
'data-lang-timestamps-exist' => e(trans('rainlab.builder::lang.database.timestamps_exist')),
'data-lang-soft-deleting-exist' => e(trans('rainlab.builder::lang.database.soft_deleting_exist')),
]) ?>
<?= $form->render() ?>
<input type="hidden" name="plugin_code" value="<?= e($pluginCode) ?>">
<input type="hidden" name="table_name" value="<?= e($tableName) ?>">
<?= Form::close() ?>
<?= Form::close() ?>
2 changes: 2 additions & 0 deletions lang/en/lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,10 @@
'tab_new_table' => 'New table',
'btn_add_column' => 'Add column',
'btn_delete_column' => 'Delete column',
'btn_add_id' => 'Add ID',
'btn_add_timestamps' => 'Add timestamps',
'btn_add_soft_deleting' => 'Add soft deleting support',
'id_exists' => 'ID column already exists in the table.',
'timestamps_exist' => 'created_at and deleted_at columns already exist in the table.',
'soft_deleting_exist' => 'deleted_at column already exists in the table.',
'confirm_delete' => 'Delete the table?',
Expand Down