Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9b53bcdf0 | ||
|
|
a1385f6785 |
10
README.md
10
README.md
@@ -129,13 +129,13 @@ sudo apt install ntfy
|
||||
**Debian/Ubuntu** (*manual install*)**:**
|
||||
```bash
|
||||
sudo apt install tmux
|
||||
wget https://github.com/binwiederhier/ntfy/releases/download/v1.2.4/ntfy_1.2.4_amd64.deb
|
||||
dpkg -i ntfy_1.2.4_amd64.deb
|
||||
wget https://github.com/binwiederhier/ntfy/releases/download/v1.3.0/ntfy_1.3.0_amd64.deb
|
||||
dpkg -i ntfy_1.3.0_amd64.deb
|
||||
```
|
||||
|
||||
**Fedora/RHEL/CentOS:**
|
||||
```bash
|
||||
rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.2.4/ntfy_1.2.4_amd64.rpm
|
||||
rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.3.0/ntfy_1.3.0_amd64.rpm
|
||||
```
|
||||
|
||||
**Docker:**
|
||||
@@ -150,8 +150,8 @@ go get -u heckel.io/ntfy
|
||||
|
||||
**Manual install** (*any x86_64-based Linux*)**:**
|
||||
```bash
|
||||
wget https://github.com/binwiederhier/ntfy/releases/download/v1.2.4/ntfy_1.2.4_linux_x86_64.tar.gz
|
||||
sudo tar -C /usr/bin -zxf ntfy_1.2.4_linux_x86_64.tar.gz ntfy
|
||||
wget https://github.com/binwiederhier/ntfy/releases/download/v1.3.0/ntfy_1.3.0_linux_x86_64.tar.gz
|
||||
sudo tar -C /usr/bin -zxf ntfy_1.3.0_linux_x86_64.tar.gz ntfy
|
||||
./ntfy
|
||||
```
|
||||
|
||||
|
||||
@@ -278,8 +278,9 @@ li {
|
||||
|
||||
#detail #detailMain {
|
||||
max-width: 900px;
|
||||
margin: 0 auto 50px auto;
|
||||
margin: 0 auto;
|
||||
position: relative; /* required for close button's "position: absolute" */
|
||||
padding-bottom: 50px; /* Chrome and Firefox behave differently regarding bottom margin */
|
||||
}
|
||||
|
||||
#detail #detailCloseButton {
|
||||
|
||||
@@ -73,7 +73,7 @@ const subscribeInternal = (topic, persist, delaySec) => {
|
||||
eventSource.onmessage = (e) => {
|
||||
const event = JSON.parse(e.data);
|
||||
topics[topic]['messages'].push(event);
|
||||
topics[topic]['messages'].sort((a, b) => { return a.time < b.time; }) // Newest first
|
||||
topics[topic]['messages'].sort((a, b) => { return a.time < b.time ? 1 : -1; }); // Newest first
|
||||
if (currentTopic === topic) {
|
||||
rerenderDetailView();
|
||||
}
|
||||
@@ -123,7 +123,7 @@ const fetchCachedMessages = async (topic) => {
|
||||
const message = JSON.parse(line);
|
||||
topics[topic]['messages'].push(message);
|
||||
}
|
||||
topics[topic]['messages'].sort((a, b) => { return a.time < b.time; }) // Newest first
|
||||
topics[topic]['messages'].sort((a, b) => { return a.time < b.time ? 1 : -1; }); // Newest first
|
||||
};
|
||||
|
||||
const showDetail = (topic) => {
|
||||
@@ -258,27 +258,23 @@ if (!window["Notification"] || !window["EventSource"]) {
|
||||
// Reset UI
|
||||
topicField.value = "";
|
||||
|
||||
// Restore topics
|
||||
const storedTopics = JSON.parse(localStorage.getItem('topics') || "[]");
|
||||
if (storedTopics) {
|
||||
storedTopics.forEach((topic) => { subscribeInternal(topic, true, 0); });
|
||||
if (storedTopics.length === 0) {
|
||||
topicsHeader.style.display = 'none';
|
||||
}
|
||||
} else {
|
||||
topicsHeader.style.display = 'none';
|
||||
}
|
||||
|
||||
// (Temporarily) subscribe topic if we navigated to /sometopic URL
|
||||
const match = location.pathname.match(/^\/([-_a-zA-Z0-9]{1,64})$/) // Regex must match Go & Android app!
|
||||
if (match) {
|
||||
currentTopic = match[1];
|
||||
subscribeInternal(currentTopic, false,0);
|
||||
}
|
||||
|
||||
// Restore topics
|
||||
const storedTopics = localStorage.getItem('topics');
|
||||
if (storedTopics) {
|
||||
const storedTopicsArray = JSON.parse(storedTopics);
|
||||
storedTopicsArray.forEach((topic) => { subscribeInternal(topic, true, 0); });
|
||||
if (storedTopicsArray.length === 0) {
|
||||
topicsHeader.style.display = 'none';
|
||||
}
|
||||
if (currentTopic) {
|
||||
currentTopicUnsubscribeOnClose = !storedTopicsArray.includes(currentTopic);
|
||||
}
|
||||
} else {
|
||||
topicsHeader.style.display = 'none';
|
||||
if (currentTopic) {
|
||||
if (!storedTopics.includes(currentTopic)) {
|
||||
subscribeInternal(currentTopic, false,0);
|
||||
currentTopicUnsubscribeOnClose = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user