Skip to content

Commit 694ab4a

Browse files
committed
Refactor and rename
1 parent 068a977 commit 694ab4a

File tree

5 files changed

+84
-41
lines changed

5 files changed

+84
-41
lines changed

modules/backend/behaviors/ImportExportController.php

Lines changed: 73 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -55,38 +55,99 @@ public function __construct($controller)
5555
$this->config = $this->makeConfig($controller->importExportConfig, $this->requiredConfig);
5656

5757
/*
58-
* Import
58+
* Import form widget
5959
*/
60-
$modelClass = $this->getConfig('import[modelClass]');
61-
$this->importModel = new $modelClass;
60+
if ($this->importUploadFormWidget = $this->makeImportUploadFormWidget()) {
61+
$this->importUploadFormWidget->bindToController();
62+
}
63+
}
6264

63-
$columnConfig = $this->getConfig('import[list]');
64-
$this->importColumns = $this->makeListColumns($columnConfig);
65+
//
66+
// Controller actions
67+
//
6568

66-
$this->importUploadFormWidget = $this->makeImportUploadFormWidget();
67-
$this->importUploadFormWidget->bindToController();
69+
public function import()
70+
{
71+
$this->prepareVars();
6872
}
6973

74+
public function export()
75+
{
76+
// TBA
77+
}
78+
79+
//
80+
// Importing
81+
//
82+
7083
/**
7184
* Prepares the view data.
7285
* @return void
7386
*/
7487
public function prepareVars()
7588
{
7689
$this->vars['importUploadFormWidget'] = $this->importUploadFormWidget;
77-
$this->vars['importColumns'] = $this->importColumns;
78-
}
90+
$this->vars['importColumns'] = $this->getImportDbColumns();
7991

80-
public function import()
81-
{
82-
$this->prepareVars();
92+
// Make these variables to widgets
93+
$this->controller->vars += $this->vars;
8394
}
8495

8596
public function importRender()
8697
{
8798
return $this->importExportMakePartial('import');
8899
}
89100

101+
public function importGetModel()
102+
{
103+
if ($this->importModel !== null) {
104+
return $this->importModel;
105+
}
106+
107+
$modelClass = $this->getConfig('import[modelClass]');
108+
return $this->importModel = new $modelClass;
109+
}
110+
111+
protected function getImportDbColumns()
112+
{
113+
if ($this->importColumns !== null) {
114+
return $this->importColumns;
115+
}
116+
$columnConfig = $this->getConfig('import[list]');
117+
return $this->importColumns = $this->makeListColumns($columnConfig);
118+
}
119+
120+
protected function getImportFileColumns()
121+
{
122+
123+
}
124+
125+
protected function makeImportUploadFormWidget()
126+
{
127+
// first_row_titles FALSE is generic columns (1,2,3,4,5..)
128+
129+
$widgetConfig = $this->makeConfig('~/modules/backend/behaviors/importexportcontroller/partials/fields_import.yaml');
130+
$widgetConfig->model = $this->importGetModel();
131+
$widgetConfig->alias = 'importUploadForm';
132+
133+
$widget = $this->makeWidget('Backend\Widgets\Form', $widgetConfig);
134+
135+
$widget->bindEvent('form.beforeRefresh', function($holder) {
136+
$holder->data = [];
137+
});
138+
139+
return $widget;
140+
}
141+
142+
//
143+
// Exporting
144+
//
145+
146+
147+
//
148+
// Helpers
149+
//
150+
90151
/**
91152
* Controller accessor for making partials within this behavior.
92153
* @param string $partial
@@ -118,23 +179,4 @@ protected function makeListColumns($config)
118179

119180
return $result;
120181
}
121-
122-
protected function makeImportUploadFormWidget()
123-
{
124-
125-
// first_row_titles FALSE is generic columns (1,2,3,4,5..)
126-
127-
$widgetConfig = $this->makeConfig('~/modules/backend/behaviors/importexportcontroller/partials/fields_import.yaml');
128-
$widgetConfig->model = $this->importModel;
129-
$widgetConfig->alias = 'importUploadForm';
130-
131-
$widget = $this->makeWidget('Backend\Widgets\Form', $widgetConfig);
132-
133-
$widget->bindEvent('form.beforeRefresh', function($holder) {
134-
$holder->data = [];
135-
});
136-
137-
return $widget;
138-
}
139-
140182
}

modules/backend/behaviors/importexportcontroller/assets/css/importexport.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
1515
}
1616
.import-behavior .import-file-columns,
17-
.import-behavior .import-record-columns {
17+
.import-behavior .import-db-columns {
1818
height: 400px;
1919
background: #f0f0f0;
2020
padding: 5px;
@@ -29,23 +29,23 @@
2929
margin-top: -10px;
3030
}
3131
.import-behavior .import-column-bindings > ul > li,
32-
.import-behavior .import-record-columns > ul > li {
32+
.import-behavior .import-db-columns > ul > li {
3333
cursor: pointer;
3434
}
3535
.import-behavior ul li.dragged,
3636
.import-behavior .import-file-columns > ul > li,
37-
.import-behavior .import-record-columns > ul > li {
37+
.import-behavior .import-db-columns > ul > li {
3838
background: #ffffff;
3939
border: 1px solid #cccccc;
4040
border-radius: 3px;
4141
margin-bottom: 5px;
4242
}
4343
.import-behavior ul li.dragged div.import-column-name > span,
4444
.import-behavior .import-file-columns > ul > li div.import-column-name > span,
45-
.import-behavior .import-record-columns > ul > li div.import-column-name > span,
45+
.import-behavior .import-db-columns > ul > li div.import-column-name > span,
4646
.import-behavior ul li.dragged > span,
4747
.import-behavior .import-file-columns > ul > li > span,
48-
.import-behavior .import-record-columns > ul > li > span {
48+
.import-behavior .import-db-columns > ul > li > span {
4949
display: block;
5050
padding: 10px;
5151
}

modules/backend/behaviors/importexportcontroller/assets/less/importexport.less

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
}
2727

2828
.import-file-columns,
29-
.import-record-columns {
29+
.import-db-columns {
3030
height: 400px;
3131
background: #f0f0f0;
3232
padding: 5px;
@@ -44,13 +44,13 @@
4444
}
4545

4646
.import-column-bindings > ul > li,
47-
.import-record-columns > ul > li {
47+
.import-db-columns > ul > li {
4848
cursor: pointer;
4949
}
5050

5151
ul li.dragged,
5252
.import-file-columns > ul > li,
53-
.import-record-columns > ul > li {
53+
.import-db-columns > ul > li {
5454
background: @color-import-column-bg;
5555
border: 1px solid @color-import-column-border;
5656
border-radius: 3px;

modules/backend/behaviors/importexportcontroller/partials/_import_columns.htm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<div class="col-md-6">
3131
Record Columns
3232

33-
<div class="import-record-columns">
33+
<div class="import-db-columns">
3434
<ul>
3535
<?php foreach ($importColumns as $column => $label): ?>
3636
<li data-column-name="<?= e($column) ?>">
@@ -44,7 +44,7 @@
4444
</div>
4545

4646
<script>
47-
$('.import-record-columns > ul, .import-column-bindings > ul').sortable({
47+
$('.import-db-columns > ul, .import-column-bindings > ul').sortable({
4848
group: 'import-fields',
4949
usePlaceholderClone: true
5050
})

modules/backend/behaviors/importexportcontroller/partials/fields_import.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ fields:
1212
type: fileupload
1313
mode: file
1414
span: left
15+
fileTypes: csv
1516

1617
first_row_titles:
1718
label: First row contains column titles

0 commit comments

Comments
 (0)