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,84 @@
 | 
			
		||||
import {Loader} from './Loader.js?v=2';
 | 
			
		||||
import {handleAjaxError} from './utils/ErrorHandler.js?v=2';
 | 
			
		||||
import {fireEvent} from './utils/Event.js?v=2';
 | 
			
		||||
 | 
			
		||||
export class DashboardTile {
 | 
			
		||||
 | 
			
		||||
    constructor(tilesParams) {
 | 
			
		||||
        const me = this;
 | 
			
		||||
        this.config = tilesParams;
 | 
			
		||||
 | 
			
		||||
        this.loader = new Loader();
 | 
			
		||||
 | 
			
		||||
        if (!this.config.sequential) {
 | 
			
		||||
            const onDateFilterChanged = this.onDateFilterChanged.bind(this);
 | 
			
		||||
            window.addEventListener('dateFilterChanged', onDateFilterChanged, false);
 | 
			
		||||
 | 
			
		||||
            this.initLoad();
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    startLoader() {
 | 
			
		||||
        const el = document.querySelector(`.${this.config.mode} .title`);
 | 
			
		||||
        this.loader.start(el);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    loadData() {
 | 
			
		||||
        const me     = this;
 | 
			
		||||
        const token  = document.head.querySelector('[name=\'csrf-token\'][content]').content;
 | 
			
		||||
 | 
			
		||||
        let params   = this.config.getParams().dateRange;
 | 
			
		||||
        params.mode  = this.config.mode;
 | 
			
		||||
 | 
			
		||||
        if (!this.config.sequential) {
 | 
			
		||||
            this.startLoader();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        fireEvent('dateFilterChangedCaught');
 | 
			
		||||
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            url: `/admin/loadDashboardStat?token=${token}`,
 | 
			
		||||
            type: 'get',
 | 
			
		||||
            scope: me,
 | 
			
		||||
            data: params,
 | 
			
		||||
            success: me.onLoad,
 | 
			
		||||
            error: handleAjaxError,
 | 
			
		||||
            complete: function() {
 | 
			
		||||
                fireEvent('dateFilterChangedCompleted');
 | 
			
		||||
            },
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    onLoad(data, status) {
 | 
			
		||||
        if ('success' == status) {
 | 
			
		||||
            this.scope.loader.stop();
 | 
			
		||||
 | 
			
		||||
            const frag = document.createDocumentFragment();
 | 
			
		||||
 | 
			
		||||
            const period = document.createElement('p');
 | 
			
		||||
            if (this.scope.config.mode === 'totalUsersForReview') {
 | 
			
		||||
                period.className = 'periodTotalYellow';
 | 
			
		||||
            } else if (this.scope.config.mode === 'totalBlockedUsers') {
 | 
			
		||||
                period.className = 'periodTotalRed';
 | 
			
		||||
            } else {
 | 
			
		||||
                period.className = 'periodTotal';
 | 
			
		||||
            }
 | 
			
		||||
            period.textContent = data.total;
 | 
			
		||||
 | 
			
		||||
            const total = document.createElement('p');
 | 
			
		||||
            total.className = 'allTimeTotal';
 | 
			
		||||
            total.textContent = data.allTimeTotal;
 | 
			
		||||
 | 
			
		||||
            frag.appendChild(period);
 | 
			
		||||
            frag.appendChild(total);
 | 
			
		||||
 | 
			
		||||
            const el = document.querySelector(`.${this.scope.config.mode} .title`);
 | 
			
		||||
            el.replaceChildren(frag);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    onDateFilterChanged() {
 | 
			
		||||
        this.loadData();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user