feat(cloudron): add tirreno package artifacts
- Add CloudronStack/output/CloudronPackages-Artifacts/tirreno/ directory and its contents - Includes package manifest, Dockerfile, source code, documentation, and build artifacts - Add tirreno-1761840148.tar.gz as a build artifact - Add tirreno-cloudron-package-1761841304.tar.gz as the Cloudron package - Include all necessary files for the tirreno Cloudron package This adds the complete tirreno Cloudron package artifacts to the repository.
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
import {SearchLine} from '../parts/SearchLine.js';
|
||||
import {Tooltip} from '../parts/Tooltip.js?v=2';
|
||||
|
||||
export class BasePage {
|
||||
constructor(name, single = false) {
|
||||
this.initCommonUi();
|
||||
|
||||
if (name) {
|
||||
this.name = name;
|
||||
if (single) {
|
||||
let path = (this.name !== 'user') ? this.name : 'id';
|
||||
this.id = parseInt(window.location.pathname.replace('/' + path + '/', ''), 10);
|
||||
const key = this.name + 'Id';
|
||||
this.getParams = () => {
|
||||
return {[key]: this.id};
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
initCommonUi() {
|
||||
new SearchLine();
|
||||
|
||||
document.addEventListener('keyup', e => {
|
||||
if (e.key !== '/' || e.ctrlKey || e.metaKey) return;
|
||||
if (/^(?:input|textarea|select|button)$/i.test(e.target.tagName)) return;
|
||||
|
||||
e.preventDefault();
|
||||
document.getElementById('auto-complete').focus();
|
||||
});
|
||||
|
||||
const initTooltip = this.initTooltip;
|
||||
if (initTooltip) {
|
||||
Tooltip.init();
|
||||
}
|
||||
|
||||
const closeNotificationButtons = this.closeNotificationButtons;
|
||||
if (closeNotificationButtons && closeNotificationButtons.length) {
|
||||
const onCloseNotificationButtonClick = this.onCloseNotificationButtonClick.bind(this);
|
||||
closeNotificationButtons.forEach(
|
||||
button => button.addEventListener('click', onCloseNotificationButtonClick, false)
|
||||
);
|
||||
}
|
||||
|
||||
this.procedureNotifications.forEach(notification => {
|
||||
const btn = notification.querySelector('.delete');
|
||||
if (!btn) return;
|
||||
btn.addEventListener('click', () => {notification.remove();}, false);
|
||||
});
|
||||
}
|
||||
|
||||
onCloseNotificationButtonClick() {
|
||||
const notification = event.target.closest('.notification.system');
|
||||
if (notification) {
|
||||
notification.remove();
|
||||
}
|
||||
}
|
||||
|
||||
getDevicesGridParams() {
|
||||
return {
|
||||
url: '/admin/loadDevices',
|
||||
tileId: 'totalDevices',
|
||||
tableId: 'devices-table',
|
||||
panelType: 'device',
|
||||
|
||||
isSortable: false,
|
||||
|
||||
getParams: this.getParams,
|
||||
};
|
||||
}
|
||||
|
||||
getIpsGridParams() {
|
||||
return {
|
||||
url: '/admin/loadIps',
|
||||
tileId: 'totalIps',
|
||||
tableId: 'ips-table',
|
||||
|
||||
isSortable: false,
|
||||
orderByLastseen: true,
|
||||
|
||||
getParams: this.getParams,
|
||||
};
|
||||
}
|
||||
|
||||
getEventsGridParams() {
|
||||
return {
|
||||
url: '/admin/loadEvents',
|
||||
tileId: 'totalEvents',
|
||||
tableId: 'user-events-table',
|
||||
panelType: 'event',
|
||||
|
||||
isSortable: false,
|
||||
|
||||
getParams: this.getParams,
|
||||
};
|
||||
}
|
||||
|
||||
getUsersGridParams() {
|
||||
return {
|
||||
url: '/admin/loadUsers',
|
||||
tileId: 'totalUsers',
|
||||
tableId: 'users-table',
|
||||
|
||||
isSortable: false,
|
||||
|
||||
getParams: this.getParams,
|
||||
};
|
||||
}
|
||||
|
||||
getIspsGridParams() {
|
||||
return {
|
||||
url: '/admin/loadIsps',
|
||||
tableId: 'isps-table',
|
||||
|
||||
isSortable: false,
|
||||
|
||||
getParams: this.getParams,
|
||||
};
|
||||
}
|
||||
|
||||
getMapParams() {
|
||||
return {
|
||||
getParams: this.getParams,
|
||||
tooltipString: 'event',
|
||||
tooltipField: 'total_visit',
|
||||
tileId: 'totalCountries',
|
||||
};
|
||||
}
|
||||
|
||||
getBarChartParams() {
|
||||
return {
|
||||
getParams: () => ({
|
||||
mode: this.name,
|
||||
id: this.id,
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
getChartParams(datesFilter, searchFilter) {
|
||||
return {
|
||||
getParams: () => {
|
||||
const mode = this.name;
|
||||
const dateRange = datesFilter.getValue();
|
||||
const searchValue = searchFilter.getValue();
|
||||
|
||||
return {mode, dateRange, searchValue};
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
getSelfDetails() {
|
||||
return {
|
||||
getParams: this.getParams,
|
||||
};
|
||||
}
|
||||
|
||||
get initTooltip() {
|
||||
return true;
|
||||
}
|
||||
|
||||
get closeNotificationButtons() {
|
||||
return document.querySelectorAll('.notification.system:not(.is-hidden) .delete');
|
||||
}
|
||||
|
||||
get procedureNotifications() {
|
||||
return document.querySelectorAll('#success-procedure-notification, #error-procedure-notification');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user