diff --git a/modules/backend/behaviors/ImportExportController.php b/modules/backend/behaviors/ImportExportController.php index 6ece5fd57..ec1a01f9a 100644 --- a/modules/backend/behaviors/ImportExportController.php +++ b/modules/backend/behaviors/ImportExportController.php @@ -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; - } - } \ No newline at end of file diff --git a/modules/backend/behaviors/importexportcontroller/assets/css/importexport.css b/modules/backend/behaviors/importexportcontroller/assets/css/importexport.css index 653cde46e..d6a657d9e 100644 --- a/modules/backend/behaviors/importexportcontroller/assets/css/importexport.css +++ b/modules/backend/behaviors/importexportcontroller/assets/css/importexport.css @@ -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; } diff --git a/modules/backend/behaviors/importexportcontroller/assets/less/importexport.less b/modules/backend/behaviors/importexportcontroller/assets/less/importexport.less index 89f04e663..5448d4631 100644 --- a/modules/backend/behaviors/importexportcontroller/assets/less/importexport.less +++ b/modules/backend/behaviors/importexportcontroller/assets/less/importexport.less @@ -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; diff --git a/modules/backend/behaviors/importexportcontroller/partials/_import_columns.htm b/modules/backend/behaviors/importexportcontroller/partials/_import_columns.htm index 1969c5189..19b8370a9 100644 --- a/modules/backend/behaviors/importexportcontroller/partials/_import_columns.htm +++ b/modules/backend/behaviors/importexportcontroller/partials/_import_columns.htm @@ -30,7 +30,7 @@