From dc8d6ad1401636fc87f8fa06d591afc2cc403d0f Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 16 Dec 2021 08:10:01 +0100 Subject: [PATCH] Update has its own controller class --- application/controllers/Update.php | 67 +++++++++++++++++++ .../pages/{instance_update.php => update.php} | 0 2 files changed, 67 insertions(+) create mode 100644 application/controllers/Update.php rename application/views/pages/{instance_update.php => update.php} (100%) diff --git a/application/controllers/Update.php b/application/controllers/Update.php new file mode 100644 index 00000000..a495af1d --- /dev/null +++ b/application/controllers/Update.php @@ -0,0 +1,67 @@ + + * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org + * @since v1.1.0 + * ---------------------------------------------------------------------------- */ + +/** + * Update controller. + * + * Handles the update related operations. + * + * @package Controllers + */ +class Update extends EA_Controller { + /** + * Update constructor. + */ + public function __construct() + { + parent::__construct(); + + $this->load->model('admins_model'); + $this->load->model('settings_model'); + $this->load->model('services_model'); + $this->load->model('providers_model'); + $this->load->model('customers_model'); + + $this->load->library('instance'); + } + + /** + * This method will update the instance to the latest available version in the server. + * + * IMPORTANT: The code files must exist in the server, this method will not fetch any new files but will update + * the database schema. + * + * This method can be used either by loading the page in the browser or by an ajax request. But it will answer with + * JSON encoded data. + */ + public function index() + { + try + { + if (cannot('edit', PRIV_SYSTEM_SETTINGS)) + { + show_error('Forbidden', 403); + } + + $this->instance->migrate(); + + $view = ['success' => TRUE]; + } + catch (Throwable $e) + { + $view = ['success' => FALSE, 'exception' => $e->getMessage()]; + } + + $this->load->view('pages/update', $view); + } +} diff --git a/application/views/pages/instance_update.php b/application/views/pages/update.php similarity index 100% rename from application/views/pages/instance_update.php rename to application/views/pages/update.php