Refactor and rename
This commit is contained in:
parent
068a977c1f
commit
694ab4a08b
|
|
@ -55,18 +55,31 @@ class ImportExportController extends ControllerBehavior
|
|||
$this->config = $this->makeConfig($controller->importExportConfig, $this->requiredConfig);
|
||||
|
||||
/*
|
||||
* Import
|
||||
* Import form widget
|
||||
*/
|
||||
$modelClass = $this->getConfig('import[modelClass]');
|
||||
$this->importModel = new $modelClass;
|
||||
|
||||
$columnConfig = $this->getConfig('import[list]');
|
||||
$this->importColumns = $this->makeListColumns($columnConfig);
|
||||
|
||||
$this->importUploadFormWidget = $this->makeImportUploadFormWidget();
|
||||
$this->importUploadFormWidget->bindToController();
|
||||
if ($this->importUploadFormWidget = $this->makeImportUploadFormWidget()) {
|
||||
$this->importUploadFormWidget->bindToController();
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Controller actions
|
||||
//
|
||||
|
||||
public function import()
|
||||
{
|
||||
$this->prepareVars();
|
||||
}
|
||||
|
||||
public function export()
|
||||
{
|
||||
// TBA
|
||||
}
|
||||
|
||||
//
|
||||
// Importing
|
||||
//
|
||||
|
||||
/**
|
||||
* Prepares the view data.
|
||||
* @return void
|
||||
|
|
@ -74,12 +87,10 @@ class ImportExportController extends ControllerBehavior
|
|||
public function prepareVars()
|
||||
{
|
||||
$this->vars['importUploadFormWidget'] = $this->importUploadFormWidget;
|
||||
$this->vars['importColumns'] = $this->importColumns;
|
||||
}
|
||||
$this->vars['importColumns'] = $this->getImportDbColumns();
|
||||
|
||||
public function import()
|
||||
{
|
||||
$this->prepareVars();
|
||||
// Make these variables to widgets
|
||||
$this->controller->vars += $this->vars;
|
||||
}
|
||||
|
||||
public function importRender()
|
||||
|
|
@ -87,6 +98,56 @@ class ImportExportController extends ControllerBehavior
|
|||
return $this->importExportMakePartial('import');
|
||||
}
|
||||
|
||||
public function importGetModel()
|
||||
{
|
||||
if ($this->importModel !== null) {
|
||||
return $this->importModel;
|
||||
}
|
||||
|
||||
$modelClass = $this->getConfig('import[modelClass]');
|
||||
return $this->importModel = new $modelClass;
|
||||
}
|
||||
|
||||
protected function getImportDbColumns()
|
||||
{
|
||||
if ($this->importColumns !== null) {
|
||||
return $this->importColumns;
|
||||
}
|
||||
$columnConfig = $this->getConfig('import[list]');
|
||||
return $this->importColumns = $this->makeListColumns($columnConfig);
|
||||
}
|
||||
|
||||
protected function getImportFileColumns()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected function makeImportUploadFormWidget()
|
||||
{
|
||||
// first_row_titles FALSE is generic columns (1,2,3,4,5..)
|
||||
|
||||
$widgetConfig = $this->makeConfig('~/modules/backend/behaviors/importexportcontroller/partials/fields_import.yaml');
|
||||
$widgetConfig->model = $this->importGetModel();
|
||||
$widgetConfig->alias = 'importUploadForm';
|
||||
|
||||
$widget = $this->makeWidget('Backend\Widgets\Form', $widgetConfig);
|
||||
|
||||
$widget->bindEvent('form.beforeRefresh', function($holder) {
|
||||
$holder->data = [];
|
||||
});
|
||||
|
||||
return $widget;
|
||||
}
|
||||
|
||||
//
|
||||
// Exporting
|
||||
//
|
||||
|
||||
|
||||
//
|
||||
// Helpers
|
||||
//
|
||||
|
||||
/**
|
||||
* Controller accessor for making partials within this behavior.
|
||||
* @param string $partial
|
||||
|
|
@ -118,23 +179,4 @@ class ImportExportController extends ControllerBehavior
|
|||
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function makeImportUploadFormWidget()
|
||||
{
|
||||
|
||||
// first_row_titles FALSE is generic columns (1,2,3,4,5..)
|
||||
|
||||
$widgetConfig = $this->makeConfig('~/modules/backend/behaviors/importexportcontroller/partials/fields_import.yaml');
|
||||
$widgetConfig->model = $this->importModel;
|
||||
$widgetConfig->alias = 'importUploadForm';
|
||||
|
||||
$widget = $this->makeWidget('Backend\Widgets\Form', $widgetConfig);
|
||||
|
||||
$widget->bindEvent('form.beforeRefresh', function($holder) {
|
||||
$holder->data = [];
|
||||
});
|
||||
|
||||
return $widget;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.import-behavior .import-file-columns,
|
||||
.import-behavior .import-record-columns {
|
||||
.import-behavior .import-db-columns {
|
||||
height: 400px;
|
||||
background: #f0f0f0;
|
||||
padding: 5px;
|
||||
|
|
@ -29,12 +29,12 @@
|
|||
margin-top: -10px;
|
||||
}
|
||||
.import-behavior .import-column-bindings > ul > li,
|
||||
.import-behavior .import-record-columns > ul > li {
|
||||
.import-behavior .import-db-columns > ul > li {
|
||||
cursor: pointer;
|
||||
}
|
||||
.import-behavior ul li.dragged,
|
||||
.import-behavior .import-file-columns > ul > li,
|
||||
.import-behavior .import-record-columns > ul > li {
|
||||
.import-behavior .import-db-columns > ul > li {
|
||||
background: #ffffff;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 3px;
|
||||
|
|
@ -42,10 +42,10 @@
|
|||
}
|
||||
.import-behavior ul li.dragged div.import-column-name > span,
|
||||
.import-behavior .import-file-columns > ul > li div.import-column-name > span,
|
||||
.import-behavior .import-record-columns > ul > li div.import-column-name > span,
|
||||
.import-behavior .import-db-columns > ul > li div.import-column-name > span,
|
||||
.import-behavior ul li.dragged > span,
|
||||
.import-behavior .import-file-columns > ul > li > span,
|
||||
.import-behavior .import-record-columns > ul > li > span {
|
||||
.import-behavior .import-db-columns > ul > li > span {
|
||||
display: block;
|
||||
padding: 10px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
}
|
||||
|
||||
.import-file-columns,
|
||||
.import-record-columns {
|
||||
.import-db-columns {
|
||||
height: 400px;
|
||||
background: #f0f0f0;
|
||||
padding: 5px;
|
||||
|
|
@ -44,13 +44,13 @@
|
|||
}
|
||||
|
||||
.import-column-bindings > ul > li,
|
||||
.import-record-columns > ul > li {
|
||||
.import-db-columns > ul > li {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
ul li.dragged,
|
||||
.import-file-columns > ul > li,
|
||||
.import-record-columns > ul > li {
|
||||
.import-db-columns > ul > li {
|
||||
background: @color-import-column-bg;
|
||||
border: 1px solid @color-import-column-border;
|
||||
border-radius: 3px;
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<div class="col-md-6">
|
||||
Record Columns
|
||||
|
||||
<div class="import-record-columns">
|
||||
<div class="import-db-columns">
|
||||
<ul>
|
||||
<?php foreach ($importColumns as $column => $label): ?>
|
||||
<li data-column-name="<?= e($column) ?>">
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
</div>
|
||||
|
||||
<script>
|
||||
$('.import-record-columns > ul, .import-column-bindings > ul').sortable({
|
||||
$('.import-db-columns > ul, .import-column-bindings > ul').sortable({
|
||||
group: 'import-fields',
|
||||
usePlaceholderClone: true
|
||||
})
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ fields:
|
|||
type: fileupload
|
||||
mode: file
|
||||
span: left
|
||||
fileTypes: csv
|
||||
|
||||
first_row_titles:
|
||||
label: First row contains column titles
|
||||
|
|
|
|||
Loading…
Reference in New Issue