diff --git a/_embed/public/js/common.js b/_embed/public/js/common.js
index f3dd8a57..9ae6a028 100644
--- a/_embed/public/js/common.js
+++ b/_embed/public/js/common.js
@@ -180,19 +180,28 @@ function deleteEvent(event) {
return false;
}
-var searchEvent = function(event) {
- let value = this.value,
- search = document.getElementById('search'),
- scrollable = document.querySelector('#search > div'),
- box = document.querySelector('#search > div div');
+function resetSearchText() {
+ let box = document.querySelector('#search > div div');
- if (value.length == 0) {
- box.innerHTML = "Search or use one of your supported commands: " + user.Commands.join(", ") + ".";
+ if (user.AllowCommands) {
+ box.innerHTML = `Search or use one of your supported commands: ${user.Commands.join(", ")} `;
+ } else {
+ box.innerHTML = "Type and press enter to search.";
+ }
+}
+
+function searchEvent(event) {
+ if (this.value.length == 0) {
+ resetSearchText();
return;
}
- let pieces = value.split(' ');
- let supported = false;
+ let value = this.value,
+ search = document.getElementById('search'),
+ scrollable = document.querySelector('#search > div'),
+ box = document.querySelector('#search > div div'),
+ pieces = value.split(' '),
+ supported = false;
user.Commands.forEach(function(cmd) {
if (cmd == pieces[0]) {
@@ -200,7 +209,7 @@ var searchEvent = function(event) {
}
});
- if (!supported) {
+ if (!supported || !user.AllowCommands) {
box.innerHTML = "Press enter to search."
} else {
box.innerHTML = "Press enter to execute."
@@ -210,8 +219,9 @@ var searchEvent = function(event) {
box.innerHTML = '';
search.classList.add('ongoing');
- if (supported) {
- var conn = new WebSocket('ws://' + window.location.host + window.location.pathname + '?command=true');
+ if (supported && user.AllowCommands) {
+ let conn = new WebSocket('ws://' + window.location.host + window.location.pathname + '?command=true');
+
conn.onopen = function() {
conn.send(value);
};
@@ -225,27 +235,69 @@ var searchEvent = function(event) {
search.classList.remove('ongoing');
reloadListing();
}
- } else {
- box.innerHTML = '
';
- let ul = box.querySelector('ul');
- var conn = new WebSocket('ws://' + window.location.host + window.location.pathname + '?search=true');
- conn.onopen = function() {
- conn.send(value);
- };
+ return;
+ }
- conn.onmessage = function(event) {
- ul.innerHTML += '' + event.data + '';
- scrollable.scrollTop = scrollable.scrollHeight;
- }
+ box.innerHTML = '';
- conn.onclose = function(event) {
- search.classList.remove('ongoing');
- }
+ let ul = box.querySelector('ul'),
+ conn = new WebSocket('ws://' + window.location.host + window.location.pathname + '?search=true');
+
+ conn.onopen = function() {
+ conn.send(value);
+ };
+
+ conn.onmessage = function(event) {
+ ul.innerHTML += '' + event.data + '';
+ scrollable.scrollTop = scrollable.scrollHeight;
+ }
+
+ conn.onclose = function(event) {
+ search.classList.remove('ongoing');
}
}
}
+function setupSearch() {
+ let search = document.getElementById("search"),
+ searchInput = search.querySelector("input"),
+ searchDiv = search.querySelector("div"),
+ hover = false,
+ focus = false;
+
+ resetSearchText();
+
+ searchInput.addEventListener('focus', event => {
+ focus = true;
+ search.classList.add('active');
+ });
+
+ searchDiv.addEventListener('mouseover', event => {
+ hover = true;
+ search.classList.add('active');
+ });
+
+ searchInput.addEventListener('blur', event => {
+ focus = false;
+ if (hover) return;
+ search.classList.remove('active');
+ });
+
+ search.addEventListener('mouseleave', event => {
+ hover = false;
+ if (focus) return;
+ search.classList.remove('active');
+ });
+
+ search.addEventListener("click", event => {
+ search.classList.add("active");
+ search.querySelector("input").focus();
+ });
+
+ searchInput.addEventListener('keyup', searchEvent);
+}
+
/* * * * * * * * * * * * * * * *
* *
* BOOTSTRAP *
@@ -265,5 +317,6 @@ document.addEventListener("DOMContentLoaded", function(event) {
buttons.delete.addEventListener("click", deleteEvent);
}
+ setupSearch();
return false;
});
\ No newline at end of file
diff --git a/_embed/public/js/listing.js b/_embed/public/js/listing.js
index 985e13ac..f8338b00 100644
--- a/_embed/public/js/listing.js
+++ b/_embed/public/js/listing.js
@@ -259,7 +259,7 @@ var redefineDownloadURLs = function() {
}
-document.addEventListener('listing', event => {
+document.addEventListener('DOMContentLoaded', event => {
// Handles the current view mode and adds the event to the button
handleViewType(document.getCookie("view-list"));
document.getElementById("view").addEventListener("click", viewEvent);
@@ -283,43 +283,7 @@ document.addEventListener('listing', event => {
}
});
- if (user.AllowCommands) {
- let search = document.getElementById("search"),
- searchInput = search.querySelector("input"),
- searchDiv = search.querySelector("div"),
- hover = false,
- focus = false;
-
- searchInput.addEventListener('focus', event => {
- focus = true;
- search.classList.add('active');
- });
-
- searchDiv.addEventListener('mouseover', event => {
- hover = true;
- search.classList.add('active');
- });
-
- searchInput.addEventListener('blur', event => {
- focus = false;
- if (hover) return;
- search.classList.remove('active');
- });
-
- search.addEventListener('mouseleave', event => {
- hover = false;
- if (focus) return;
- search.classList.remove('active');
- });
-
- search.addEventListener("click", event => {
- search.classList.add("active");
- search.querySelector("input").focus();
- });
-
- document.querySelector('#search > div div').innerHTML = "Search or use one of your supported commands: " + user.Commands.join(", ") + ".";
- document.querySelector('#search input').addEventListener('keyup', searchEvent);
- }
+
if (user.AllowEdit) {
// Enables rename button
diff --git a/_embed/templates/base.tmpl b/_embed/templates/base.tmpl
index 86892bc0..179095a5 100644
--- a/_embed/templates/base.tmpl
+++ b/_embed/templates/base.tmpl
@@ -32,16 +32,14 @@
- {{ if .User.AllowCommands }}
storage
-
Write your git, mercurial or svn command and press enter.
+
Loading...
autorenew
- {{ end }}
exit_to_app Logout