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,142 @@
|
||||
import {
|
||||
renderUserActionButtons,
|
||||
renderUserReviewedStatus,
|
||||
} from './DataRenderers.js?v=2';
|
||||
import {handleAjaxError} from './utils/ErrorHandler.js?v=2';
|
||||
import {replaceAll} from './utils/String.js?v=2';
|
||||
|
||||
export class SingleReviewButton {
|
||||
|
||||
constructor(userId) {
|
||||
this.userId = userId;
|
||||
|
||||
const me = this;
|
||||
const onButtonClick = this.onButtonClick.bind(this);
|
||||
|
||||
if (me.legitFraudButtonsBlock) {
|
||||
//Get HTML w/ new fraud&legit buttons
|
||||
let fraud = null;
|
||||
if ('true' == me.legitFraudButtonsBlock.dataset.userFraud) fraud = true;
|
||||
if ('false' == me.legitFraudButtonsBlock.dataset.userFraud) fraud = false;
|
||||
|
||||
const record = {reviewed: true, accountid: me.userId, fraud: fraud};
|
||||
|
||||
me.legitFraudButtonsBlock.replaceChildren(renderUserActionButtons(record, false));
|
||||
}
|
||||
|
||||
if (me.reviewedButton) {
|
||||
this.reviewedButton.addEventListener('click', onButtonClick, false);
|
||||
}
|
||||
|
||||
if (me.legitButton) {
|
||||
this.legitButton.addEventListener('click', onButtonClick, false);
|
||||
}
|
||||
|
||||
if (me.fraudButton) {
|
||||
this.fraudButton.addEventListener('click', onButtonClick, false);
|
||||
}
|
||||
}
|
||||
|
||||
onButtonClick(e) {
|
||||
e.preventDefault();
|
||||
|
||||
const me = this;
|
||||
const target = e.target;
|
||||
const url = '/admin/manageUser';
|
||||
const token = document.head.querySelector('[name=\'csrf-token\'][content]').content;
|
||||
const data = {userId: this.userId, type: target.dataset.type, token: token};
|
||||
|
||||
target.classList.add('is-loading');
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: url,
|
||||
data: data,
|
||||
scope: me,
|
||||
target: target,
|
||||
success: me.onSuccess,
|
||||
error: handleAjaxError,
|
||||
dataType: 'json'
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
onSuccess() {
|
||||
const me = this.scope;
|
||||
|
||||
const target = this.target;
|
||||
const type = target.dataset.type;
|
||||
|
||||
target.classList.remove('is-loading');
|
||||
|
||||
if ('reviewed-button' === target.id) {
|
||||
//Get HTML w/ new fraud&legit buttons
|
||||
const record = {reviewed: true, accountid: me.userId};
|
||||
|
||||
const div = target.closest('div.head-button');
|
||||
div.replaceChildren(renderUserActionButtons(record, false));
|
||||
|
||||
const onButtonClick = me.onButtonClick.bind(me);
|
||||
|
||||
if (me.legitButton) {
|
||||
me.legitButton.addEventListener('click', onButtonClick, false);
|
||||
}
|
||||
|
||||
if (me.fraudButton) {
|
||||
me.fraudButton.addEventListener('click', onButtonClick, false);
|
||||
}
|
||||
}
|
||||
|
||||
const buttonType = target.dataset.buttonType;
|
||||
if ('fraudButton' === buttonType) {
|
||||
let reviewStatus = '';
|
||||
if ('fraud' === type) {
|
||||
reviewStatus = 'Blacklisted';
|
||||
me.fraudButton.classList.replace('is-neutral', 'is-highlighted');
|
||||
me.fraudButton.setAttribute('disabled', '');
|
||||
|
||||
me.legitButton.classList.replace('is-highlighted', 'is-neutral');
|
||||
me.legitButton.removeAttribute('disabled');
|
||||
} else {
|
||||
reviewStatus = 'Whitelisted';
|
||||
me.legitButton.classList.replace('is-neutral', 'is-highlighted');
|
||||
me.legitButton.setAttribute('disabled', '');
|
||||
|
||||
me.fraudButton.classList.replace('is-highlighted', 'is-neutral');
|
||||
me.fraudButton.removeAttribute('disabled');
|
||||
}
|
||||
const tile = document.querySelector('#user-id-tile');
|
||||
const title = tile.querySelector('#review-status span').title;
|
||||
|
||||
const record = {
|
||||
fraud: (reviewStatus === 'Blacklisted'),
|
||||
latest_decision: title,
|
||||
};
|
||||
|
||||
tile.querySelector('#review-status').replaceChildren(renderUserReviewedStatus(record));
|
||||
|
||||
const userTitleSpan = document.querySelector('h1 span');
|
||||
|
||||
userTitleSpan.textContent = (reviewStatus === 'Blacklisted') ? 'X' : 'OK';
|
||||
userTitleSpan.classList.remove('high', 'medium', 'low', 'empty');
|
||||
userTitleSpan.classList.add((reviewStatus === 'Blacklisted') ? 'low' : 'high');
|
||||
}
|
||||
}
|
||||
|
||||
get legitFraudButtonsBlock() {
|
||||
return document.getElementById('legit-fraud-buttons-block');
|
||||
}
|
||||
|
||||
get fraudButton() {
|
||||
return document.querySelector('[data-type="fraud"]');
|
||||
}
|
||||
|
||||
get legitButton() {
|
||||
return document.querySelector('[data-type="legit"]');
|
||||
}
|
||||
|
||||
get reviewedButton() {
|
||||
return document.getElementById('reviewed-button');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user