From 44f999c0cb6e62affec2a2e9817a3abb10a3a75b Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Fri, 17 Jan 2020 00:09:23 +0100 Subject: [sysconfig] Screensaver: Add a full fledged back button experience Processing of Screensaver_Text is now only handled in the Screensaver_text preprocess --- .../sysconfig/addmodule_screensaver.inc.php | 25 +++++++++++++++------- .../sysconfig/templates/screensaver-start.html | 3 ++- .../sysconfig/templates/screensaver-text.html | 9 +++++--- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/modules-available/sysconfig/addmodule_screensaver.inc.php b/modules-available/sysconfig/addmodule_screensaver.inc.php index 7417c200..b8e5d3cd 100644 --- a/modules-available/sysconfig/addmodule_screensaver.inc.php +++ b/modules-available/sysconfig/addmodule_screensaver.inc.php @@ -12,7 +12,10 @@ class Screensaver_Start extends AddModule_Base protected function preprocessInternal() { /* Load or initialise session data */ - if ($this->edit !== false) { + if (Request::get('back', 'false', 'string') !== 'false') + /* If coming via the back button, load the session data */ + $this->session_data = Session::get('data'); + elseif ($this->edit !== false) { $this->session_data = array( 'title' => $this->edit->title(), 'qss' => $this->edit->getData('qss'), @@ -62,7 +65,6 @@ class Screensaver_Start extends AddModule_Base 'qss' => $this->session_data['qss'], )); } - } class Screensaver_Text extends AddModule_Base @@ -85,6 +87,13 @@ class Screensaver_Text extends AddModule_Base Session::set('data', $this->session_data); Session::save(); + + $next = Request::post('next', '', 'string'); + + if ($next === '') + Util::redirect('?do=SysConfig&action=addmodule&step=Screensaver_Finish'); + elseif ($next === 'start') + Util::redirect('?do=SysConfig&action=addmodule&step=Screensaver_Start&back=true'); } protected function renderInternal() @@ -113,15 +122,18 @@ class Screensaver_Text extends AddModule_Base $data['text_value'] = $this->session_data['texts']['text-' . $next]; $data['text_locked_value'] = $this->session_data['texts']['text-' . $next . '-locked']; $data['inherit_locked'] = $this->session_data['texts'][$next . '-inherit']; + $data['step'] = 'Screensaver_Text'; + /* Set next and prev pages */ if ($next === 'idle-kill') { $data['next'] = 'no-timeout'; - $data['step'] = 'Screensaver_Text'; + $data['prev'] = 'start'; } elseif ($next === 'no-timeout') { $data['next'] = 'shutdown'; - $data['step'] = 'Screensaver_Text'; + $data['prev'] = 'idle-kill'; } elseif ($next === 'shutdown') { - $data['step'] = 'Screensaver_Finish'; + $data['next'] = ''; + $data['prev'] = 'no-timeout'; $data['lastStep'] = true; } @@ -136,9 +148,6 @@ class Screensaver_Finish extends AddModule_Base /* Get session data */ $session_data = Session::get('data'); - /* Process the last step */ - Screensaver_Helper::processScreensaverText($session_data, Request::post('id', '', 'string')); - if (empty($session_data['title'])) { Message::addError('missing-title'); Util::redirect('?do=SysConfig'); diff --git a/modules-available/sysconfig/templates/screensaver-start.html b/modules-available/sysconfig/templates/screensaver-start.html index ab1382bd..38610365 100644 --- a/modules-available/sysconfig/templates/screensaver-start.html +++ b/modules-available/sysconfig/templates/screensaver-start.html @@ -89,7 +89,8 @@
- {{lang_back}} + {{lang_back}}
diff --git a/modules-available/sysconfig/templates/screensaver-text.html b/modules-available/sysconfig/templates/screensaver-text.html index 1aa45a90..9fd0cea4 100644 --- a/modules-available/sysconfig/templates/screensaver-text.html +++ b/modules-available/sysconfig/templates/screensaver-text.html @@ -1,6 +1,6 @@
- + @@ -47,7 +47,7 @@
- {{lang_back}} +