From 4d120b829ad657dc329282ae6969cf1b988e544c Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Wed, 29 Nov 2017 11:31:26 +0100
Subject: [js] Move all our fixes into one file, add browser history/URL fix
for messages
Hides all the ugly message[]= entries from the URL string, so copy/paste won't
show the message out of context again
---
inc/render.inc.php | 5 ++---
script/collapse.js | 3 ---
script/fileselect.js | 20 --------------------
script/slx-fixes.js | 42 ++++++++++++++++++++++++++++++++++++++++++
4 files changed, 44 insertions(+), 26 deletions(-)
delete mode 100644 script/collapse.js
delete mode 100644 script/fileselect.js
create mode 100644 script/slx-fixes.js
diff --git a/inc/render.inc.php b/inc/render.inc.php
index 53e2f314..13262c1d 100644
--- a/inc/render.inc.php
+++ b/inc/render.inc.php
@@ -107,8 +107,7 @@ class Render
-
-
+
';
foreach ($modules as $module) {
$files = $module->getScripts($module != $pageModule);
@@ -213,7 +212,7 @@ class Render
*/
public static function parse($template, $params = false, $module = false)
{
- if ($module === false) {
+ if ($module === false && class_exists('Page')) {
$module = Page::getModule()->getIdentifier();
}
// Load html snippet
diff --git a/script/collapse.js b/script/collapse.js
deleted file mode 100644
index ca026f87..00000000
--- a/script/collapse.js
+++ /dev/null
@@ -1,3 +0,0 @@
-$('.slx-decollapse').click(function () {
- $(this).siblings('.collapse').removeClass('collapse');
-});
\ No newline at end of file
diff --git a/script/fileselect.js b/script/fileselect.js
deleted file mode 100644
index 13711fd5..00000000
--- a/script/fileselect.js
+++ /dev/null
@@ -1,20 +0,0 @@
-$(document).on('change', '.btn-file :file', function() {
- var input = $(this);
- var numFiles = input.get(0).files ? input.get(0).files.length : 1;
- var label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
- input.trigger('fileselect', [numFiles, label]);
-});
-
-$(document).ready(function() {
- $('.btn-file :file').on('fileselect', function(event, numFiles, label) {
- var input = $(this).parents('.upload-ex').find(':text');
- var log = numFiles > 1 ? numFiles + ' files selected' : label;
- if (input.length) {
- input.val(log);
- }
- });
-});
-
-$('.upload-ex :text').click(function () {
- $(this).parents('.upload-ex').find(':file').click();
-});
\ No newline at end of file
diff --git a/script/slx-fixes.js b/script/slx-fixes.js
new file mode 100644
index 00000000..12db9c79
--- /dev/null
+++ b/script/slx-fixes.js
@@ -0,0 +1,42 @@
+// Give file select dialogs a modern style and feel
+$(document).on('change', '.btn-file :file', function() {
+ var input = $(this);
+ var numFiles = input.get(0).files ? input.get(0).files.length : 1;
+ var label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
+ input.trigger('fileselect', [numFiles, label]);
+});
+$(document).ready(function() {
+ $('.btn-file :file').on('fileselect', function(event, numFiles, label) {
+ var input = $(this).parents('.upload-ex').find(':text');
+ var log = numFiles > 1 ? numFiles + ' files selected' : label;
+ if (input.length) {
+ input.val(log);
+ }
+ });
+});
+$('.upload-ex :text').click(function () {
+ $(this).parents('.upload-ex').find(':file').click();
+});
+
+// Replace message query params in URL, so you won't see them again if you bookmark or share the link
+if (history && history.replaceState && window && window.location && window.location.search && window.location.search.indexOf('message[]=') !== -1) {
+ var str = window.location.search;
+ console.log('TRUE: ' + str);
+ do {
+ var repl = str.match(/([\?&])message\[\]=[^&]+(&|$)/);
+ console.log(repl);
+ if (!repl) break;
+ if (repl[2].length === 0) {
+ str = str.replace(repl[0], '');
+ } else {
+ str = str.replace(repl[0], repl[1]);
+ }
+ console.log('Replace: ' + str);
+ } while (1);
+ history.replaceState(null, null, window.location.pathname + str);
+}
+
+// Simple decollapse functionality for tables
+$('.slx-decollapse').click(function () {
+ $(this).siblings('.collapse').removeClass('collapse');
+});
\ No newline at end of file
--
cgit v1.2.3-55-g7522