Skip to content

Commit 380ff6b

Browse files
authored
Merge pull request #17 from dmstr/feature/cleanup-return-urls
removed Url::previous, Url::remember
2 parents 8a0d9e1 + fa96f73 commit 380ff6b

File tree

8 files changed

+37
-70
lines changed

8 files changed

+37
-70
lines changed

src/controllers/base/HtmlController.php

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ public function actionIndex()
3636

3737
Tabs::clearLocalStorage();
3838

39-
Url::remember();
4039
Yii::$app->session['__crudReturnUrl'] = null;
4140

4241
return $this->render(
@@ -57,8 +56,6 @@ public function actionIndex()
5756
*/
5857
public function actionView($id)
5958
{
60-
Yii::$app->session['__crudReturnUrl'] = Url::previous();
61-
Url::remember();
6259
Tabs::rememberActiveState();
6360

6461
return $this->render(
@@ -80,7 +77,7 @@ public function actionCreate()
8077

8178
try {
8279
if ($model->load($_POST) && $model->save()) {
83-
return $this->redirect(Url::previous());
80+
return $this->redirect(['view', 'id'=>$model->id]);
8481
} elseif (!Yii::$app->request->isPost) {
8582
$model->load($_GET);
8683
}
@@ -104,7 +101,7 @@ public function actionUpdate($id)
104101
$model = $this->findModel($id);
105102

106103
if ($model->load($_POST) && $model->save()) {
107-
return $this->redirect(Url::previous());
104+
return $this->redirect('index');
108105
} else {
109106
return $this->render(
110107
'update',
@@ -130,22 +127,9 @@ public function actionDelete($id)
130127
} catch (Exception $e) {
131128
$msg = (isset($e->errorInfo[2])) ? $e->errorInfo[2] : $e->getMessage();
132129
Yii::$app->getSession()->addFlash('error', $msg);
133-
return $this->redirect(Url::previous());
134130
}
135131

136-
// TODO: improve detection
137-
$isPivot = strstr('$id', ',');
138-
if ($isPivot == true) {
139-
return $this->redirect(Url::previous());
140-
} elseif (isset(Yii::$app->session['__crudReturnUrl']) && Yii::$app->session['__crudReturnUrl'] != '/') {
141-
Url::remember(null);
142-
$url = Yii::$app->session['__crudReturnUrl'];
143-
Yii::$app->session['__crudReturnUrl'] = null;
144-
145-
return $this->redirect($url);
146-
} else {
147-
return $this->redirect(['index']);
148-
}
132+
return $this->redirect('index');
149133
}
150134

151135
/**

src/controllers/base/LessController.php

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
use dmstr\modules\prototype\models\search\Less as LessSearch;
1010
use Exception;
1111
use Yii;
12-
use yii\filters\AccessControl;
1312
use yii\helpers\ArrayHelper;
14-
use yii\helpers\Url;
1513
use yii\web\Controller;
1614
use yii\web\HttpException;
1715

@@ -37,8 +35,6 @@ public function actionIndex()
3735
$dataProvider = $searchModel->search($_GET);
3836

3937
Tabs::clearLocalStorage();
40-
41-
Url::remember();
4238
Yii::$app->session['__crudReturnUrl'] = null;
4339

4440
return $this->render(
@@ -59,11 +55,6 @@ public function actionIndex()
5955
*/
6056
public function actionView($id)
6157
{
62-
Yii::$app->session['__crudReturnUrl'] = Url::previous();
63-
64-
#Url::remember();
65-
#Tabs::rememberActiveState();
66-
6758
return $this->render(
6859
'view',
6960
[
@@ -83,7 +74,7 @@ public function actionCreate()
8374

8475
try {
8576
if ($model->load($_POST) && $model->save()) {
86-
return $this->redirect(Url::previous());
77+
return $this->redirect(['view', 'id' => $model->id]);
8778
} elseif (!Yii::$app->request->isPost) {
8879
$model->load($_GET);
8980
}
@@ -108,7 +99,7 @@ public function actionUpdate($id)
10899
if ($model->load($_POST) && $model->save()) {
109100
Yii::$app->session->addFlash('success', 'Record has been updated');
110101
if (ArrayHelper::getValue($_POST, 'subaction') != 'apply') {
111-
return $this->redirect(Url::previous());
102+
return $this->redirect(['view', 'id' => $model->id]);
112103
}
113104
}
114105
return $this->render(
@@ -130,26 +121,15 @@ public function actionUpdate($id)
130121
public function actionDelete($id)
131122
{
132123
try {
133-
$this->findModel($id)->delete();
124+
if ($this->findModel($id)->delete()) {
125+
Yii::$app->getSession()->addFlash('info', "Record #$id deleted");
126+
}
134127
} catch (Exception $e) {
135128
$msg = (isset($e->errorInfo[2])) ? $e->errorInfo[2] : $e->getMessage();
136129
Yii::$app->getSession()->addFlash('error', $msg);
137-
return $this->redirect(Url::previous());
138130
}
139131

140-
// TODO: improve detection
141-
$isPivot = strstr('$id', ',');
142-
if ($isPivot == true) {
143-
return $this->redirect(Url::previous());
144-
} elseif (isset(Yii::$app->session['__crudReturnUrl']) && Yii::$app->session['__crudReturnUrl'] != '/') {
145-
Url::remember(null);
146-
$url = Yii::$app->session['__crudReturnUrl'];
147-
Yii::$app->session['__crudReturnUrl'] = null;
148-
149-
return $this->redirect($url);
150-
} else {
151-
return $this->redirect(['index']);
152-
}
132+
return $this->redirect('index');
153133
}
154134

155135
/**

src/controllers/base/TwigController.php

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ public function actionIndex()
3636
$dataProvider = $searchModel->search($_GET);
3737

3838
Tabs::clearLocalStorage();
39-
40-
Url::remember();
4139
Yii::$app->session['__crudReturnUrl'] = null;
4240

4341
return $this->render('index',
@@ -56,8 +54,6 @@ public function actionIndex()
5654
*/
5755
public function actionView($id)
5856
{
59-
Yii::$app->session['__crudReturnUrl'] = Url::previous();
60-
Url::remember();
6157
Tabs::rememberActiveState();
6258

6359
return $this->render('view',
@@ -141,24 +137,13 @@ public function actionDelete($id)
141137
{
142138
try {
143139
$this->findModel($id)->delete();
140+
Yii::$app->getSession()->addFlash('info', 'Record deleted.');
144141
} catch (Exception $e) {
145142
$msg = (isset($e->errorInfo[2])) ? $e->errorInfo[2] : $e->getMessage();
146143
Yii::$app->getSession()->addFlash('error', $msg);
147-
return $this->redirect(Url::previous());
148-
}
149-
150-
// TODO: improve detection
151-
$isPivot = strstr('$id', ',');
152-
if ($isPivot == true) {
153-
return $this->redirect(Url::previous());
154-
} elseif (isset(Yii::$app->session['__crudReturnUrl']) && Yii::$app->session['__crudReturnUrl'] != '/') {
155-
Url::remember(null);
156-
$url = Yii::$app->session['__crudReturnUrl'];
157-
Yii::$app->session['__crudReturnUrl'] = null;
158144

159-
return $this->redirect($url);
160-
} else {
161-
return $this->redirect(['index']);
162145
}
146+
147+
return $this->redirect('index');
163148
}
164149
}

src/models/Less.php

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,24 @@ public function afterSave($insert, $changedAttributes)
4646
}
4747

4848
public function beforeSave($insert)
49+
{
50+
if (!$this->validateLess()) {
51+
return false;
52+
}
53+
54+
return parent::beforeSave($insert);
55+
}
56+
57+
public function beforeDelete()
58+
{
59+
if (!$this->validateLess()) {
60+
Yii::$app->session->addFlash('error', Yii::t('prototype', 'Could not delete record, due to validation errors'));
61+
return false;
62+
}
63+
return parent::beforeDelete();
64+
}
65+
66+
private function validateLess()
4967
{
5068
$entryFile = Yii::$app->settings->get('registerPrototypeAssetKey', 'app.assets', 'default') . '-main.less';
5169

@@ -71,18 +89,20 @@ public function beforeSave($insert)
7189
$file = $exportPath . $key . '.less';
7290
$content = $value;
7391
if (file_put_contents($file, $content) === false) {
74-
Yii::$app->session->addFlash('warning', Yii::t('prototype', 'Error while checking file {file}', ['file' => $file]));
92+
Yii::$app->session->addFlash('warning', Yii::t('prototype', 'Error while checking file {file}',
93+
['file' => $file]));
7594
return false;
7695
}
7796
}
7897

7998
try {
8099
$result = $converter->convert($entryFile, $exportPath);
81100
} catch (\Exception $exception) {
101+
Yii::error($exception->getMessage(), __METHOD__);
82102
$this->addError('value', $exception->getMessage());
83103
return false;
84104
}
85105

86-
return parent::beforeSave($insert); // TODO: Change the autogenerated stub
106+
return true;
87107
}
88108
}

src/views/html/create.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<div class="pull-left">
2525
<?= Html::a(
2626
Yii::t('prototype', 'Cancel'),
27-
Url::previous(),
27+
'index',
2828
['class' => 'btn btn-default']
2929
) ?>
3030
</div>

src/views/less/create.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<div class="pull-left">
2525
<?= Html::a(
2626
Yii::t('prototype', 'Cancel'),
27-
Url::previous(),
27+
'index',
2828
['class' => 'btn btn-default']
2929
) ?>
3030
</div>

src/views/twig/create.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<div class="pull-left">
2525
<?= Html::a(
2626
Yii::t('prototype', 'Cancel'),
27-
Url::previous(),
27+
'index',
2828
['class' => 'btn btn-default']) ?>
2929
</div>
3030
</div>

src/widgets/TwigWidget.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ private function generateKey()
8686
*/
8787
public function run()
8888
{
89-
Url::remember('', $this->generateKey());
90-
9189
// create temporary file
9290
$model = $this->_model;
9391
$twigCode = ($model ? $model->value : null);

0 commit comments

Comments
 (0)