From 32f2140394566bc4a7b5d9c8f54f8a0821e4c41f Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Wed, 4 Dec 2019 14:44:54 +0100 Subject: [locationinfo] less lovely javascript more not so lovely php - same function just in backend --- modules-available/locationinfo/page.inc.php | 20 ++++- .../templates/page-config-panel-url.html | 92 ++++++++++------------ 2 files changed, 61 insertions(+), 51 deletions(-) diff --git a/modules-available/locationinfo/page.inc.php b/modules-available/locationinfo/page.inc.php index f849aa1d..13d7d459 100644 --- a/modules-available/locationinfo/page.inc.php +++ b/modules-available/locationinfo/page.inc.php @@ -417,6 +417,7 @@ class Page_LocationInfo extends Page $bookmarkUrls = Request::post('bookmarkUrls', [], 'array'); $bookmarkString = ''; for ($i = 0; $i < count($bookmarkNames); $i++) { + if ($bookmarkNames[$i] == '' || $bookmarkUrls[$i] == '') continue; $bookmarkString .= rawurlencode($bookmarkNames[$i]); $bookmarkString .= ","; $bookmarkString .= rawurlencode($bookmarkUrls[$i]); @@ -433,7 +434,7 @@ class Page_LocationInfo extends Page 'split-login' => Request::post('split-login', 0, 'bool'), 'browser' => Request::post('browser', 'slx-browser', 'string'), 'interactive' => Request::post('interactive', '0', 'bool'), - 'bookmarks' => $bookmarkString, + 'bookmarks' => $bookmarkString ? $bookmarkString : '', ); return array('config' => $conf, 'locationids' => []); } @@ -1026,6 +1027,21 @@ class Page_LocationInfo extends Page 'overrides' => json_encode($config['overrides']), )); } elseif ($panel['paneltype'] === 'URL') { + + $bookmarksArray = []; + if ($config['bookmarks'] !== '') { + $bookmarksConfig = explode(' ', $config['bookmarks']); + foreach ($bookmarksConfig AS $bookmark) { + $bookmark = explode(',', $bookmark); + $name = rawurldecode($bookmark[0]); + $url = rawurldecode($bookmark[1]); + $bookmarksArray[] = [ + 'name' => $name, + 'url' => $url, + ]; + } + } + Render::addTemplate('page-config-panel-url', array( 'new' => $id === 'new', 'uuid' => $id, @@ -1038,7 +1054,7 @@ class Page_LocationInfo extends Page 'split-login_checked' => $config['split-login'] ? 'checked' : '', 'browser' => $config['browser'], 'interactive_checked' => $config['interactive'] ? 'checked' : '', - 'bookmarks' => $config['bookmarks'], + 'bookmarks' => $bookmarksArray, )); } else { Render::addTemplate('page-config-panel-summary', array( diff --git a/modules-available/locationinfo/templates/page-config-panel-url.html b/modules-available/locationinfo/templates/page-config-panel-url.html index e34f0477..7b82199e 100644 --- a/modules-available/locationinfo/templates/page-config-panel-url.html +++ b/modules-available/locationinfo/templates/page-config-panel-url.html @@ -166,19 +166,11 @@
-
+
-
- -
-
- -
-
+
@@ -189,6 +181,39 @@

+ + + {{#bookmarks}} +
+
+ +
+
+ +
+
+ +
+
+ {{/bookmarks}}
@@ -205,16 +230,12 @@ -- cgit v1.2.3-55-g7522