diff options
| author | 2014-08-10 10:55:51 +0200 | |
|---|---|---|
| committer | 2014-08-10 10:55:51 +0200 | |
| commit | 9a5d6245fbeb413766362fd6b2c4f5f5b6a22a22 (patch) | |
| tree | c6171aa9ba1cb6c52261ac39392ff2ffb2e17a58 /app/Controllers/updateController.php | |
| parent | 7ed111b1bf152613d17254808a4fcf89f5774297 (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.php | 37 |
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 |
