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,137 @@
 | 
			
		||||
import {Loader} from '../Loader.js?v=2';
 | 
			
		||||
import {BaseChart}  from './BaseChart.js?v=2';
 | 
			
		||||
import {
 | 
			
		||||
    COLOR_LIGHT_GREEN,
 | 
			
		||||
    COLOR_GREEN,
 | 
			
		||||
    X_AXIS_SERIFS,
 | 
			
		||||
} from '../utils/Constants.js?v=2';
 | 
			
		||||
 | 
			
		||||
export class BaseSparklineChart extends BaseChart {
 | 
			
		||||
    constructor(chartParams) {
 | 
			
		||||
        super(chartParams);
 | 
			
		||||
 | 
			
		||||
        this.charts = null;
 | 
			
		||||
 | 
			
		||||
        if (!this.loaders) {
 | 
			
		||||
            this.loaders = [];
 | 
			
		||||
            this.elems.forEach(el => {this.loaders[el] = new Loader();});
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    getOptions() {
 | 
			
		||||
        const tooltipsPlugin = this.tooltipsPlugin({cursorMemo: this.cursorMemo}, 'day', '0');
 | 
			
		||||
        return {
 | 
			
		||||
            width: 200,
 | 
			
		||||
            height: 30,
 | 
			
		||||
            pxAlign: false,
 | 
			
		||||
            cursor: {
 | 
			
		||||
                show: false
 | 
			
		||||
            },
 | 
			
		||||
            select: {
 | 
			
		||||
                show: false,
 | 
			
		||||
            },
 | 
			
		||||
            legend: {
 | 
			
		||||
                show: false,
 | 
			
		||||
            },
 | 
			
		||||
            scales: {
 | 
			
		||||
                x: {time: false},
 | 
			
		||||
            },
 | 
			
		||||
            axes: [
 | 
			
		||||
                {show: false},
 | 
			
		||||
                {show: false}
 | 
			
		||||
            ],
 | 
			
		||||
            cursor: this.cursorMemo.get(),
 | 
			
		||||
            plugins: [tooltipsPlugin],
 | 
			
		||||
            series: [
 | 
			
		||||
                {
 | 
			
		||||
                    label: 'Day',
 | 
			
		||||
                    scale: 'DAY',
 | 
			
		||||
                    value: '{YYYY}-{MM}-{DD}',
 | 
			
		||||
                    stroke: '#8180a0',
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    label: 'This week',
 | 
			
		||||
                    stroke: COLOR_GREEN,
 | 
			
		||||
                    fill: COLOR_LIGHT_GREEN,
 | 
			
		||||
                    points: {show: false}
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    label: 'Previous week',
 | 
			
		||||
                    stroke: 'rgba(129,128,160,0.7)',
 | 
			
		||||
                    fill: 'rgba(129,128,160,0.03)',
 | 
			
		||||
                    points: {show: false}
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    onChartLoaded(data, status, resolution) {
 | 
			
		||||
        if ('success' == status) {
 | 
			
		||||
            data = this.getData(data);
 | 
			
		||||
 | 
			
		||||
            this.stopLoader();
 | 
			
		||||
 | 
			
		||||
            this.charts = [];
 | 
			
		||||
 | 
			
		||||
            this.elems.forEach(el => {
 | 
			
		||||
                const lines = [data.time, data[el], data[el + 'Prev']];
 | 
			
		||||
                this.charts.push(new uPlot(this.getOptions(), lines, this.getChartBlock(el)));
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    startLoader() {
 | 
			
		||||
        if (!this.loaders) {
 | 
			
		||||
            this.loaders = [];
 | 
			
		||||
            this.elems.forEach(el => this.loaders[el] = new Loader());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.elems.forEach(name => {
 | 
			
		||||
            const el = document.createElement('p');
 | 
			
		||||
            const block = this.getChartBlock(name);
 | 
			
		||||
 | 
			
		||||
            block.classList.remove('is-hidden');
 | 
			
		||||
            block.replaceChildren(el);
 | 
			
		||||
 | 
			
		||||
            const p = block.querySelector('p');
 | 
			
		||||
 | 
			
		||||
            this.loaders[name].start(p);
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    stopLoader() {
 | 
			
		||||
        this.elems.forEach(el => {
 | 
			
		||||
            this.loaders[el].stop();
 | 
			
		||||
            this.getChartBlock(el).querySelector('p').classList.add('is-hidden');
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    getData(data) {
 | 
			
		||||
        return {
 | 
			
		||||
            'time':                 data[0],
 | 
			
		||||
            'totalDevices':         data[1],
 | 
			
		||||
            'totalIps':             data[2],
 | 
			
		||||
            'totalSessions':        data[3],
 | 
			
		||||
            'totalEvents':          data[4],
 | 
			
		||||
            'totalDevicesPrev':     data[5],
 | 
			
		||||
            'totalIpsPrev':         data[6],
 | 
			
		||||
            'totalSessionsPrev':    data[7],
 | 
			
		||||
            'totalEventsPrev':      data[8],
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    getChartBlock(cls) {
 | 
			
		||||
        return document.querySelector(`td.${cls} p.session-stat`);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    get chartBlocks() {
 | 
			
		||||
        const result = {};
 | 
			
		||||
        this.elems.forEach(el => {result[el] = this.getChartBlock(el);});
 | 
			
		||||
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    get elems() {
 | 
			
		||||
        return ['totalDevices', 'totalIps', 'totalSessions', 'totalEvents'];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user