aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers/updateController.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-08-10 10:55:51 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-08-10 10:55:51 +0200
commit9a5d6245fbeb413766362fd6b2c4f5f5b6a22a22 (patch)
treec6171aa9ba1cb6c52261ac39392ff2ffb2e17a58 /app/Controllers/updateController.php
parent7ed111b1bf152613d17254808a4fcf89f5774297 (diff)
Improve update API
Update script must implement 4 functions: - apply_update() to perform the update (most important). Return true if all is ok, else false. - need_info_update() returns true if we need more info for update, else false. If this function always returns false, you don't need to implement following functions (but it's better to not forget) - ask_info_update() should be a HTML form to ask infos. Method must be post and action must point to _url('update', 'apply') (or leave it blank) - save_info_update() is called for POST requests (to save form from ask_info_update())
Diffstat (limited to 'app/Controllers/updateController.php')
-rw-r--r--app/Controllers/updateController.php37
1 files changed, 22 insertions, 15 deletions
diff --git a/app/Controllers/updateController.php b/app/Controllers/updateController.php
index a94af4417..1095f9da7 100644
--- a/app/Controllers/updateController.php
+++ b/app/Controllers/updateController.php
@@ -84,26 +84,33 @@ class FreshRSS_update_Controller extends Minz_ActionController {
public function applyAction() {
require(UPDATE_FILENAME);
- $res = apply_update();
- if ($res === true) {
- @unlink(UPDATE_FILENAME);
+ if (Minz_Request::isPost()) {
+ save_info_update();
+ }
- // TODO: record last update
+ if (!need_info_update()) {
+ $res = apply_update();
- Minz_Session::_param('notification', array(
- 'type' => 'good',
- 'content' => Minz_Translate::t('update_finished')
- ));
+ if ($res === true) {
+ @unlink(UPDATE_FILENAME);
- Minz_Request::forward(array(), true);
- } else {
- Minz_Session::_param('notification', array(
- 'type' => 'bad',
- 'content' => Minz_Translate::t('update_problem', $res)
- ));
+ // TODO: record last update
+
+ Minz_Session::_param('notification', array(
+ 'type' => 'good',
+ 'content' => Minz_Translate::t('update_finished')
+ ));
- Minz_Request::forward(array('c' => 'update'), true);
+ Minz_Request::forward(array(), true);
+ } else {
+ Minz_Session::_param('notification', array(
+ 'type' => 'bad',
+ 'content' => Minz_Translate::t('update_problem', $res)
+ ));
+
+ Minz_Request::forward(array('c' => 'update'), true);
+ }
}
}
} \ No newline at end of file