17.10.2020, 19:26
(14.10.2020, 22:31)buuuudzik Wrote: Currently it is possible to show only specified schedulers and hide holidays:
http://4n.lv:7999/scada-vis/schedulers?id=1&nohol
http://4n.lv:7999/scada-vis/schedulers?id=1,2&nohol
To allow further customization I've added yesteday another param support:
http://4n.lv:7999/scada-vis/schedulers?simple
http://4n.lv:7999/scada-vis/schedulers?i...hol&simple
But to use it you must add below code section to your Custom Javascript:
Code:$(function () {
// Simplify and limit scheduler form
if (location.href.match(/\/schedulers(.+)simple/g)) {
function setCustomSchedulerView() {
const inSchedulers = document.body.classList.contains("schedulers");
if (inSchedulers) {
const eventForm = document.getElementById("event-form");
if (!eventForm) return;
const findOnForm = (selector) => eventForm.querySelector(selector);
const hideEl = (el) => (el.style.display = "none");
const disableEl = (el) => (el.disabled = true);
const doOnSelector = (selector, handler) => {
const el = findOnForm(selector);
if (el) handler(el);
};
const doOnGlobalSelector = (selector, handler) => {
const el = document.querySelector(selector);
if (el) handler(el);
};
const doOnSelectorBeforeLabel = (selector, handler) => {
const el = findOnForm(selector);
if (
el &&
el.previousElementSibling &&
el.previousElementSibling.tagName === "LABEL"
)
handler(el.previousElementSibling);
};
const doOnSelectorAndParent = (selector, parentSelector, handler) => {
let el = findOnForm(selector);
if (el) {
handler(el);
let parent = null;
let limit = 10;
while (!parent && limit > 0) {
el = el.parentElement;
if (el && el.matches(parentSelector)) parent = el;
if (!el || parent) break;
limit--;
}
if (parent) handler(parent);
}
};
const hideSelector = (selector) => doOnSelector(selector, hideEl);
const hideGlobalSelector = (selector) => doOnGlobalSelector(selector, hideEl);
const hideSelectorAndParent = (selector, parentSelector) =>
doOnSelectorAndParent(selector, parentSelector, hideEl);
const hideSelectorBeforeLabel = (selector) =>
doOnSelectorBeforeLabel(selector, hideEl);
const disableSelector = (selector) => doOnSelector(selector, disableEl);
const disableGlobalSelector = (selector) => doOnGlobalSelector(selector, disableEl);
const disableSelectorAndParent = (selector, parentSelector) =>
doOnSelectorAndParent(selector, parentSelector, disableEl);
const schedulerFormElementsConfig = [
// style can be one from: "visible", "hidden", "disabled"
{
name: "active",
style: "hidden",
selector: "#event-active",
parent: ".checkbox",
},
{
name: "name",
style: "disabled",
selector: "#event-name",
},
{
name: "type",
style: "visible",
selector: "#event-type",
},
{
name: "type-sunrise-sunset",
style: "visible",
selector: "#event-type-sunrise-sunset",
},
{
name: "daysofweek",
style: "hidden",
selector: "#event-daysofweek",
},
{
name: "dayweeknrs",
style: "hidden",
selector: "#event-dayweeknrs",
},
{
name: "daysofmonth",
style: "hidden",
selector: "#event-daysofmonth",
},
{
name: "months",
style: "hidden",
selector: "#event-months",
},
{
name: "holidays",
style: "hidden",
selector: "#event-holidays",
},
{
name: "year",
style: "hidden",
selector: "#event-year",
parent: ".checkbox",
},
{
name: "value-bool",
style: "disabled",
selector: "#event-value-bool",
},
{
name: "value-color",
style: "disabled",
selector: "#event-value-color",
},
{
name: "value-spinner",
style: "disabled",
selector: "#event-value-spinner",
},
{
name: "value-slider",
style: "disabled",
selector: "#event-value-slider",
},
{
name: "value-enums",
style: "disabled",
selector: "#event-value-enums",
},
{
name: "value-text",
style: "disabled",
selector: "#event-value-text",
},
{
name: "value-lighting",
style: "disabled",
selector: "#event-value-lighting",
},
];
schedulerFormElementsConfig.forEach((config) => {
switch (config.style) {
case "hidden":
if (!config.parent) {
hideSelector(config.selector);
hideSelectorBeforeLabel(config.selector);
} else {
hideSelectorAndParent(config.selector, config.parent);
hideSelectorBeforeLabel(config.parent);
}
break;
case "disabled":
if (!config.parent) {
disableSelector(config.selector);
} else {
disableSelectorAndParent(config.selector, config.parent);
}
break;
case "visible":
default:
}
});
const schedulerGlobalButtonsConfig = [
{
name: "logout",
style: "hidden",
selector: ".btn-logout",
},
{
name: "home",
style: "hidden",
selector: ".btn-home",
},
{
name: "scheduler-edit",
style: "hidden",
selector: ".scheduler-edit",
},
{
name: "add",
style: "hidden",
selector: "#event-add",
},
{
name: "delete",
style: "hidden",
selector: ".actions .delete",
},
];
schedulerGlobalButtonsConfig.forEach((config) => {
switch (config.style) {
case "hidden":
hideGlobalSelector(config.selector);
break;
case "disabled":
disableGlobalSelector(config.selector);
break;
case "visible":
default:
}
});
}
}
setCustomSchedulerView();
}
});
Every element you can customize by setting "visible", "hidden" or "disabled".
I can't access the virtual LM , what's the username and password? , with admin user and admin password no access