Refactor and rename

This commit is contained in:
Samuel Georges 2015-07-18 10:27:54 +10:00
parent 068a977c1f
commit 694ab4a08b
5 changed files with 86 additions and 43 deletions

View File

@ -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;
}
}

View File

@ -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;
}

View File

@ -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;

View File

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

View File

@ -12,6 +12,7 @@ fields:
type: fileupload
mode: file
span: left
fileTypes: csv
first_row_titles:
label: First row contains column titles