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:
2025-10-30 11:43:06 -05:00
parent 0ce353ea9d
commit 91d52d2de5
1692 changed files with 202851 additions and 0 deletions

View File

@@ -0,0 +1,191 @@
import {TotalTile} from './TotalTile.js?v=2';
import {getQueryParams} from './utils/DataSource.js?v=2';
import {handleAjaxError} from './utils/ErrorHandler.js?v=2';
import {fireEvent} from './utils/Event.js?v=2';
export class Map {
constructor(mapParams) {
this.config = mapParams;
this.totalTile = new TotalTile();
this.regions = {};
const onRegionTipShow = this.onRegionTipShow.bind(this);
const onRegionClick = this.onRegionClick.bind(this);
$('#world-map-markers').vectorMap({
map: 'world_mill_en',
normalizeFunction: 'polynomial',
hoverOpacity: 0.7,
regionsSelectable: false,
markersSelectable: false,
zoomOnScroll: false,
hoverColor: false,
series: {
regions: [
{
values: {},
scale: ['#4e6964', '#01EE99'],
normalizeFunction: 'polynomial'
}
]
},
regionStyle: {
initial: {
fill: '#575678'
},
selected: {
fill: '#01EE99'
}
},
onRegionTipShow: function(e, el, code) {
onRegionTipShow(el, code);
},
onRegionClick: function(e, code) {
onRegionClick(code);
},
backgroundColor: '#131220'
});
const onDateFilterChanged = this.onDateFilterChanged.bind(this);
window.addEventListener('dateFilterChanged', onDateFilterChanged, false);
if (!this.config.sequential) {
this.loadData();
}
}
startLoader() {
}
onRegionTipShow(tipEl, value) {
const regionValue = this.mapObject.series.regions[0].values[value];
const phrase = this.getTooltipString(regionValue);
tipEl.html(`${tipEl.html()} - ${phrase}`);
}
onRegionClick(value) {
if (this.regions[value] !== undefined && this.regions[value][this.config.tooltipField] > 0) {
const url = `/country/${this.regions[value].id}`;
if (event.ctrlKey || event.metaKey) {
window.open(url, '_blank');
} else {
window.location.href = url;
}
}
}
getCountriesRegionsFromResponse(records) {
const me = this;
const regions = {};
this.regions = {};
records.forEach(rec => {
const country = rec.iso;
if (!regions[country]) {
regions[country] = 0;
this.regions[country] = 0;
}
const value = me.getRegionValue(rec);
regions[country] = value;
this.regions[country] = {
[this.config.tooltipField]: value,
id: rec.id,
};
});
return regions;
}
getRegionValue(record) {
const field = this.config.tooltipField;
const value = record[field];
return value;
}
selectRegions(regions) {
const map = this.mapObject;
//Remove countries which does not exist in the vectormap: MU, BH, etc...
for (const [key, value] of Object.entries(regions)) {
if (!map.regions.hasOwnProperty(key)) {
delete regions[key];
}
}
//https://github.com/bjornd/jvectormap/issues/376
map.series.regions[0].params.min = undefined;
map.series.regions[0].params.max = undefined;
map.series.regions[0].clear();
map.series.regions[0].setValues(regions);
}
onDateFilterChanged() {
this.loadData();
}
loadData() {
const me = this;
const params = this.config.getParams();
const token = document.head.querySelector('[name=\'csrf-token\'][content]').content;
const data = getQueryParams(params);
fireEvent('dateFilterChangedCaught');
$.ajax({
type: 'get',
url: `/admin/loadMap?token=${token}`,
data: data,
scope: me,
success: me.onCountriesListLoaded,
error: handleAjaxError,
complete: function() {
fireEvent('dateFilterChangedCompleted');
},
});
}
onCountriesListLoaded(data, status) {
if ('success' == status) {
const me = this.scope;
const tableId = 'countries-table';
me.totalTile.update(tableId, me.config.tileId, data.length);
const regions = me.getCountriesRegionsFromResponse(data);
me.selectRegions(regions);
}
}
getTooltipString(value) {
value = value ? value : 0;
let string = this.config.tooltipString;
if (1 !== value) {
string += 's';
}
const tooltipPhrase = `${value} ${string}`;
return tooltipPhrase;
}
get mapObject() {
return $('#world-map-markers').vectorMap('get', 'mapObject');
}
}