Compare commits

...

7 commits

Author SHA1 Message Date
Ryo Hanafusa
6681145bf9
Merge 061b549d16 into 8a432ac937 2024-11-12 18:00:27 +00:00
Ionys
8a432ac937
fix(status page): Make sure the group deletion is correctly handled when groupIDList is empty (#5340)
Some checks failed
Auto Test / check-linters (push) Has been cancelled
Auto Test / armv7-simple-test (18, ARMv7) (push) Has been cancelled
Auto Test / armv7-simple-test (20, ARMv7) (push) Has been cancelled
Auto Test / e2e-test (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
validate / json-yaml-validate (push) Has been cancelled
validate / validate (push) Has been cancelled
Auto Test / auto-test (18, ARM64) (push) Has been cancelled
Auto Test / auto-test (18, macos-latest) (push) Has been cancelled
Auto Test / auto-test (18, ubuntu-latest) (push) Has been cancelled
Auto Test / auto-test (18, windows-latest) (push) Has been cancelled
Auto Test / auto-test (20, ARM64) (push) Has been cancelled
Auto Test / auto-test (20, macos-latest) (push) Has been cancelled
Auto Test / auto-test (20, ubuntu-latest) (push) Has been cancelled
Auto Test / auto-test (20, windows-latest) (push) Has been cancelled
2024-11-12 19:00:09 +01:00
Ryo Hanafusa
061b549d16 send url always because it's used in showLink 2024-10-28 11:33:40 +00:00
Ryo Hanafusa
d3c3808dae revert showLink without the unused if-statement surrounding ignoreSendUrl 2024-10-28 11:33:02 +00:00
Ryo Hanafusa
61c68e2305
Merge branch 'master' into fix-issue-3794 2024-10-28 12:08:42 +09:00
Ryo Hanafusa
2fb3638bd7 convert sendUrl number -> boolean in toPublicJSON 2024-10-27 08:18:46 +00:00
Ryo Hanafusa
9af201924f Use the element's value for initial value to keep the changes in the dialog 2024-10-26 09:02:32 +00:00
3 changed files with 19 additions and 22 deletions

View file

@ -48,14 +48,11 @@ class Monitor extends BeanModel {
let obj = { let obj = {
id: this.id, id: this.id,
name: this.name, name: this.name,
sendUrl: this.sendUrl, sendUrl: !!this.sendUrl,
url: this.url,
type: this.type, type: this.type,
}; };
if (this.sendUrl) {
obj.url = this.url;
}
if (showTags) { if (showTags) {
obj.tags = await this.getTags(); obj.tags = await this.getTags();
} }

View file

@ -220,13 +220,17 @@ module.exports.statusPageSocketHandler = (socket) => {
// Delete groups that are not in the list // Delete groups that are not in the list
log.debug("socket", "Delete groups that are not in the list"); log.debug("socket", "Delete groups that are not in the list");
const slots = groupIDList.map(() => "?").join(","); if (groupIDList.length === 0) {
await R.exec("DELETE FROM `group` WHERE status_page_id = ?", [ statusPage.id ]);
} else {
const slots = groupIDList.map(() => "?").join(",");
const data = [ const data = [
...groupIDList, ...groupIDList,
statusPage.id statusPage.id
]; ];
await R.exec(`DELETE FROM \`group\` WHERE id NOT IN (${slots}) AND status_page_id = ?`, data); await R.exec(`DELETE FROM \`group\` WHERE id NOT IN (${slots}) AND status_page_id = ?`, data);
}
const server = UptimeKumaServer.getInstance(); const server = UptimeKumaServer.getInstance();

View file

@ -10,7 +10,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="my-3 form-check"> <div class="my-3 form-check">
<input id="show-clickable-link" v-model="monitor.isClickAble" class="form-check-input" type="checkbox" @click="toggleLink(monitor.group_index, monitor.monitor_index)" /> <input id="show-clickable-link" v-model="monitor.isClickable" class="form-check-input" type="checkbox" @click="toggleLink(monitor.group_index, monitor.monitor_index)" />
<label class="form-check-label" for="show-clickable-link"> <label class="form-check-label" for="show-clickable-link">
{{ $t("Show Clickable Link") }} {{ $t("Show Clickable Link") }}
</label> </label>
@ -54,6 +54,9 @@ export default {
monitor: { monitor: {
id: null, id: null,
name: null, name: null,
monitor_index: null,
group_index: null,
isClickable: null,
}, },
}; };
}, },
@ -77,7 +80,7 @@ export default {
name: monitor.element.name, name: monitor.element.name,
monitor_index: monitor.index, monitor_index: monitor.index,
group_index: group.index, group_index: group.index,
isClickAble: this.showLink(monitor), isClickable: this.showLink(monitor),
}; };
this.MonitorSettingDialog.show(); this.MonitorSettingDialog.show();
@ -98,17 +101,10 @@ export default {
* Attempts to guess if a link should be shown based upon if * Attempts to guess if a link should be shown based upon if
* sendUrl is set and if the URL is default or not. * sendUrl is set and if the URL is default or not.
* @param {object} monitor Monitor to check * @param {object} monitor Monitor to check
* @param {boolean} ignoreSendUrl Should the presence of the sendUrl
* property be ignored. This will only work in edit mode.
* @returns {boolean} Should the link be shown? * @returns {boolean} Should the link be shown?
*/ */
showLink(monitor, ignoreSendUrl = false) { showLink(monitor) {
// We must check if there are any elements in monitorList to return monitor.element.sendUrl && monitor.element.url && monitor.element.url !== "https://";
// prevent undefined errors if it hasn't been loaded yet
if (this.$parent.editMode && ignoreSendUrl && Object.keys(this.$root.monitorList).length) {
return this.$root.monitorList[monitor.element.id].type === "http" || this.$root.monitorList[monitor.element.id].type === "keyword" || this.$root.monitorList[monitor.element.id].type === "json-query";
}
return monitor.element.sendUrl && monitor.element.url && monitor.element.url !== "https://" && !this.editMode;
}, },
}, },
}; };