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,206 @@
|
||||
import {Loader} from '../Loader.js?v=2';
|
||||
import {Tooltip} from '../Tooltip.js?v=2';
|
||||
import {fireEvent} from '../utils/Event.js?v=2';
|
||||
import {handleAjaxError} from '../utils/ErrorHandler.js?v=2';
|
||||
|
||||
export class BasePanel {
|
||||
|
||||
constructor(eventParams) {
|
||||
this.enrichment = eventParams.enrichment;
|
||||
this.type = eventParams.type;
|
||||
this.url = eventParams.url;
|
||||
this.cardId = eventParams.cardId;
|
||||
this.panelClosed = eventParams.panelClosed;
|
||||
this.closePanel = eventParams.closePanel;
|
||||
this.rowClicked = eventParams.rowClicked;
|
||||
|
||||
this.loader = new Loader();
|
||||
|
||||
this.itemId = null;
|
||||
|
||||
const onCloseDetailsPanel = this.onCloseDetailsPanel.bind(this);
|
||||
window.addEventListener(this.closePanel, onCloseDetailsPanel, false);
|
||||
|
||||
const onTableRowClicked = this.onTableRowClicked.bind(this);
|
||||
window.addEventListener(this.rowClicked, onTableRowClicked, false);
|
||||
|
||||
const onKeydown = this.onKeydown.bind(this);
|
||||
window.addEventListener('keydown', onKeydown, false);
|
||||
|
||||
const onCloseButtonClick = this.onCloseButtonClick.bind(this);
|
||||
this.closeButton.addEventListener('click', onCloseButtonClick, false);
|
||||
|
||||
if (this.enrichment) {
|
||||
const onEnrichmentButtonClick = this.onEnrichmentButtonClick.bind(this);
|
||||
this.reenrichmentButton.addEventListener('click', onEnrichmentButtonClick, false);
|
||||
}
|
||||
|
||||
this.allPanels = {
|
||||
'event': {id: 'event-card', closeEvent: 'eventPanelClosed'},
|
||||
'logbook': {id: 'logbook-card',closeEvent: 'logbookPanelClosed'},
|
||||
'email': {id: 'email-card', closeEvent: 'emailPanelClosed'},
|
||||
'device': {id: 'device-card', closeEvent: 'devicePanelClosed'},
|
||||
'phone': {id: 'phone-card', closeEvent: 'phonePanelClosed'},
|
||||
};
|
||||
}
|
||||
|
||||
//https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
|
||||
onKeydown(e) {
|
||||
// procced keydown even if event was processed
|
||||
|
||||
switch (e.key) {
|
||||
case 'Esc': // IE/Edge specific value
|
||||
case 'Escape': {
|
||||
this.close();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Cancel the default action to avoid it being handled twice
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
onEnrichmentButtonClick(e) {
|
||||
this.contentDiv.classList.add('is-hidden');
|
||||
this.loaderDiv.classList.remove('is-hidden');
|
||||
this.card.classList.remove('is-hidden');
|
||||
|
||||
const el = this.loaderDiv;
|
||||
this.loader.start(el);
|
||||
|
||||
this.reenrichmentButton.setAttribute('disabled', '');
|
||||
this.reenrichmentButton.classList.add('is-hidden');
|
||||
|
||||
const onEnrichmentLoaded = this.onEnrichmentLoaded.bind(this);
|
||||
const token = document.head.querySelector('[name=\'csrf-token\'][content]').content;
|
||||
|
||||
$.ajax({
|
||||
url: '/admin/reenrichment',
|
||||
type: 'post',
|
||||
data: {type: this.type, entityId: this.itemId, token: token},
|
||||
success: onEnrichmentLoaded,
|
||||
error: handleAjaxError,
|
||||
});
|
||||
}
|
||||
|
||||
onEnrichmentLoaded(data, status) {
|
||||
if ('success' !== status || 0 === data.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.loadData(this.itemId);
|
||||
}
|
||||
|
||||
onCloseButtonClick(e) {
|
||||
e.preventDefault();
|
||||
this.close();
|
||||
}
|
||||
|
||||
onCloseDetailsPanel() {
|
||||
this.close();
|
||||
}
|
||||
|
||||
loadData(id) {
|
||||
this.contentDiv.classList.add('is-hidden');
|
||||
this.loaderDiv.classList.remove('is-hidden');
|
||||
this.card.classList.remove('is-hidden');
|
||||
|
||||
const el = this.loaderDiv;
|
||||
this.loader.start(el);
|
||||
|
||||
const onDetailsLoaded = this.onDetailsLoaded.bind(this);
|
||||
const token = document.head.querySelector('[name=\'csrf-token\'][content]').content;
|
||||
|
||||
$.ajax({
|
||||
url: this.url,
|
||||
type: 'get',
|
||||
data: {id: id, token: token},
|
||||
success: onDetailsLoaded,
|
||||
error: handleAjaxError,
|
||||
});
|
||||
}
|
||||
|
||||
onTableRowClicked({detail}) {
|
||||
this.itemId = detail.itemId;
|
||||
this.loadData(this.itemId);
|
||||
}
|
||||
|
||||
onDetailsLoaded(data, status) {
|
||||
|
||||
if ('success' !== status || 0 === data.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
data = this.proceedData(data);
|
||||
|
||||
if (this.enrichment && data.hasOwnProperty('checked') && this.reenrichmentButton) {
|
||||
if (data.checked === false && data.enrichable) {
|
||||
this.reenrichmentButton.removeAttribute('disabled');
|
||||
this.reenrichmentButton.classList.remove('is-hidden');
|
||||
} else {
|
||||
this.reenrichmentButton.setAttribute('disabled', '');
|
||||
this.reenrichmentButton.classList.add('is-hidden');
|
||||
}
|
||||
}
|
||||
|
||||
this.loader.stop();
|
||||
this.contentDiv.classList.remove('is-hidden');
|
||||
this.loaderDiv.classList.add('is-hidden');
|
||||
|
||||
let span = null;
|
||||
//todo: foreach and arrow fn ?
|
||||
for (const key in data) {
|
||||
span = this.card.querySelector(`#details_${key}`);
|
||||
if (span) {
|
||||
if (data[key] instanceof Node) {
|
||||
span.replaceChildren(data[key]);
|
||||
} else {
|
||||
span.innerHTML = data[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.initTooltips();
|
||||
}
|
||||
|
||||
initTooltips() {
|
||||
Tooltip.addTooltipsToEventDetailsPanel();
|
||||
}
|
||||
|
||||
proceedData(data) {
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
close() {
|
||||
fireEvent(this.panelClosed);
|
||||
this.card.classList.add('is-hidden');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
get loaderDiv() {
|
||||
return this.card.querySelector('div.text-loader');
|
||||
}
|
||||
|
||||
get contentDiv() {
|
||||
return this.card.querySelector('div.content');
|
||||
}
|
||||
|
||||
get card() {
|
||||
return document.querySelector(`.details-card#${this.cardId}`);
|
||||
}
|
||||
|
||||
get closeButton() {
|
||||
return this.card.querySelector('.delete');
|
||||
}
|
||||
|
||||
get reenrichmentButton() {
|
||||
return this.card.querySelector('.reenrichment-button');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import {BasePanel} from './BasePanel.js?v=2';
|
||||
import {
|
||||
renderDeviceWithOs,
|
||||
renderBrowser,
|
||||
renderLanguage,
|
||||
renderDate,
|
||||
renderBoolean,
|
||||
renderUserAgent,
|
||||
} from '../DataRenderers.js?v=2';
|
||||
|
||||
export class DevicePanel extends BasePanel {
|
||||
|
||||
constructor() {
|
||||
let eventParams = {
|
||||
//enrichment: true,
|
||||
enrichemnt: false,
|
||||
type: 'device',
|
||||
url: '/admin/deviceDetails',
|
||||
cardId: 'device-card',
|
||||
panelClosed: 'devicePanelClosed',
|
||||
closePanel: 'closeDevicePanel',
|
||||
rowClicked: 'deviceTableRowClicked',
|
||||
};
|
||||
super(eventParams);
|
||||
}
|
||||
|
||||
proceedData(data) {
|
||||
let browser_name = data.browser_name;
|
||||
let browser_version = data.browser_version;
|
||||
browser_name = (browser_name !== null && browser_name !== undefined) ? browser_name : '';
|
||||
browser_version = (browser_version !== null && browser_version !== undefined) ? browser_version : '';
|
||||
|
||||
const device_record = {
|
||||
ua: data.ua,
|
||||
os_name: data.os_name,
|
||||
os_version: data.os_version,
|
||||
device_name: data.device,
|
||||
browser: `${browser_name} ${browser_version}`,
|
||||
lang: data.lang
|
||||
};
|
||||
data.device = renderDeviceWithOs(device_record);
|
||||
data.browser = renderBrowser(device_record);
|
||||
data.lang = renderLanguage(device_record);
|
||||
data.device_created = renderDate(data.created);
|
||||
|
||||
data.ua_modified = renderBoolean(data.modified);
|
||||
data.ua = renderUserAgent(data);
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
import {BasePanel} from './BasePanel.js?v=2';
|
||||
import {
|
||||
renderEmail,
|
||||
renderReputation,
|
||||
renderBoolean,
|
||||
renderDefaultIfEmptyElement,
|
||||
renderDate,
|
||||
renderClickableDomain,
|
||||
renderHttpCode,
|
||||
} from '../DataRenderers.js?v=2';
|
||||
|
||||
export class EmailPanel extends BasePanel {
|
||||
|
||||
constructor() {
|
||||
let eventParams = {
|
||||
enrichment: true,
|
||||
type: 'email',
|
||||
url: '/admin/emailDetails',
|
||||
cardId: 'email-card',
|
||||
panelClosed: 'emailPanelClosed',
|
||||
closePanel: 'closeEmailPanel',
|
||||
rowClicked: 'emailTableRowClicked',
|
||||
};
|
||||
super(eventParams);
|
||||
}
|
||||
|
||||
proceedData(data) {
|
||||
data.email = renderEmail(data, 'long');
|
||||
data.reputation = renderReputation(data);
|
||||
|
||||
// to 'No breach'
|
||||
data.data_breach = renderBoolean(data.data_breach === null ? null : !data.data_breach);
|
||||
// to 'No Profiles'
|
||||
// data.profiles = renderBoolean(data.profiles === null ? null : data.profiles === 0);
|
||||
data.data_breaches = renderDefaultIfEmptyElement(data.data_breaches);
|
||||
|
||||
data.earliest_breach = renderDate(data.earliest_breach);
|
||||
data.fraud_detected = renderBoolean(data.fraud_detected);
|
||||
data.blockemails = renderBoolean(data.blockemails);
|
||||
// TODO: return alert_list back in next release
|
||||
//data.alert_list = renderBoolean(data.alert_list);
|
||||
data.domain_contact_email = renderBoolean(data.domain_contact_email);
|
||||
|
||||
data.free_email_provider = renderBoolean(data.free_email_provider);
|
||||
|
||||
const domain_record = {
|
||||
domain: data.domain,
|
||||
id: data.domain_id,
|
||||
};
|
||||
data.domain = renderClickableDomain(domain_record, 'long');
|
||||
data.blockdomains = renderBoolean(data.blockdomains);
|
||||
data.disabled = renderBoolean(data.disabled);
|
||||
data.mx_record = renderBoolean(data.mx_record === null ? null : !data.mx_record);
|
||||
data.disposable_domains = renderBoolean(data.disposable_domains);
|
||||
data.disabled = renderBoolean(data.disabled);
|
||||
data.tranco_rank = renderDefaultIfEmptyElement(data.tranco_rank);
|
||||
data.creation_date = renderDate(data.creation_date);
|
||||
data.expiration_date = renderDate(data.expiration_date);
|
||||
data.closest_snapshot = renderDate(data.closest_snapshot);
|
||||
data.return_code = renderHttpCode({http_code: data.return_code});
|
||||
|
||||
// also data.checked is used
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,213 @@
|
||||
import {BasePanel} from './BasePanel.js?v=2';
|
||||
import {
|
||||
renderTime,
|
||||
renderHttpCode,
|
||||
renderHttpMethod,
|
||||
renderClickableImportantUserWithScore,
|
||||
renderUserId,
|
||||
renderUserReviewedStatus,
|
||||
renderDate,
|
||||
renderScoreDetails,
|
||||
renderEmail,
|
||||
renderReputation,
|
||||
renderBoolean,
|
||||
renderDefaultIfEmptyElement,
|
||||
renderClickableDomain,
|
||||
renderPhone,
|
||||
renderFullCountry,
|
||||
renderPhoneCarrierName,
|
||||
renderPhoneType,
|
||||
renderUserCounter,
|
||||
renderClickableResourceWithoutQuery,
|
||||
renderDeviceWithOs,
|
||||
// renderClickableDeviceId,
|
||||
renderBrowser,
|
||||
renderLanguage,
|
||||
renderCidr,
|
||||
renderNetName,
|
||||
renderClickableIpWithCountry,
|
||||
renderClickableCountryName,
|
||||
renderReferer,
|
||||
renderUserAgent,
|
||||
renderQuery,
|
||||
renderClickableAsn,
|
||||
renderUserFirstname,
|
||||
renderUserLastname,
|
||||
renderIpType,
|
||||
renderJsonTextarea,
|
||||
} from '../DataRenderers.js?v=2';
|
||||
|
||||
export class EventPanel extends BasePanel {
|
||||
|
||||
constructor() {
|
||||
let eventParams = {
|
||||
enrichment: false,
|
||||
type: 'event',
|
||||
url: '/admin/eventDetails',
|
||||
cardId: 'event-card',
|
||||
panelClosed: 'eventPanelClosed',
|
||||
closePanel: 'closeEventPanel',
|
||||
rowClicked: 'eventTableRowClicked',
|
||||
};
|
||||
super(eventParams);
|
||||
}
|
||||
|
||||
proceedData(data) {
|
||||
const event_record = {
|
||||
time: data.event_time,
|
||||
http_code: data.event_http_code,
|
||||
http_method: data.event_http_method_name,
|
||||
};
|
||||
data.event_time = renderTime(event_record.time);
|
||||
data.event_http_code = renderHttpCode(event_record);
|
||||
data.event_http_method = renderHttpMethod(event_record);
|
||||
//data.event_type_name = data.event_type_name;
|
||||
|
||||
//Convert to boolean if number exists
|
||||
//if(Number.isInteger(data.profiles)) {
|
||||
// data.email_profiles = !!data.profiles;
|
||||
//
|
||||
// //Revert profiles to "No profiles"
|
||||
// data.email_profiles = !data.email_profiles;
|
||||
//}
|
||||
|
||||
//Convert to boolean if number exists
|
||||
//if(Number.isInteger(data.phone_profiles)) {
|
||||
// data.phone_profiles = !!data.phone_profiles;
|
||||
//
|
||||
// //Revert profiles to "No profiles"
|
||||
// data.phone_profiles = !data.phone_profiles;
|
||||
//}
|
||||
|
||||
if ('boolean' === typeof data.data_breach) {
|
||||
//Revert data_breach to "No breach"
|
||||
data.data_breach = !data.data_breach;
|
||||
}
|
||||
const current_email_record = {
|
||||
accountid: data.accountid,
|
||||
accounttitle: data.accounttitle,
|
||||
email: data.current_email,
|
||||
score_updated_at: data.score_updated_at,
|
||||
score: data.score,
|
||||
fraud: data.fraud,
|
||||
};
|
||||
data.user_id = renderClickableImportantUserWithScore(current_email_record, 'long');
|
||||
data.accounttitle = renderUserId(data.accounttitle);
|
||||
data.reviewed_status = renderUserReviewedStatus(data);
|
||||
data.latest_decision = renderDate(data.latest_decision);
|
||||
data.score_details = renderScoreDetails(data);
|
||||
|
||||
if (!!document.getElementById('details_email')) {
|
||||
data.email = renderEmail(data, 'long');
|
||||
data.reputation = renderReputation(data);
|
||||
//data.email_profiles = renderBoolean(data.email_profiles);
|
||||
data.free_provider = renderBoolean(data.free_email_provider);
|
||||
data.data_breach = renderBoolean(data.data_breach);
|
||||
data.data_breaches = renderDefaultIfEmptyElement(data.data_breaches);
|
||||
data.blockemails = renderBoolean(data.blockemails);
|
||||
data.email_fraud_detected = renderBoolean(data.email_fraud_detected);
|
||||
// TODO: return alert_list back in next release
|
||||
//data.email_alert_list = renderBoolean(data.email_alert_list);
|
||||
data.email_earliest_breach= renderDate(data.email_earliest_breach);
|
||||
|
||||
const domain_record = {
|
||||
domain: data.domain,
|
||||
id: data.domainid,
|
||||
http_code: data.domain_return_code,
|
||||
};
|
||||
data.domain = renderClickableDomain(domain_record, 'long');
|
||||
data.tranco_rank = renderDefaultIfEmptyElement(data.tranco_rank);
|
||||
data.blockdomains = renderBoolean(data.blockdomains);
|
||||
data.disposable_domains = renderBoolean(data.disposable_domains);
|
||||
data.domain_disabled = renderBoolean(data.domain_disabled);
|
||||
data.domain_creation_date = renderDate(data.domain_creation_date);
|
||||
data.domain_expiration_date = renderDate(data.domain_expiration_date);
|
||||
data.domain_return_code = renderHttpCode(domain_record);
|
||||
|
||||
const phone_record = {
|
||||
phonenumber: data.phonenumber,
|
||||
country_id: data.phone_country_id,
|
||||
country_iso: data.phone_country_iso,
|
||||
full_country: data.phone_full_country,
|
||||
carrier_name: data.carrier_name,
|
||||
type: data.phone_type
|
||||
};
|
||||
data.phonenumber = renderPhone(phone_record);
|
||||
data.phone_country = renderFullCountry(data.phone_full_country);
|
||||
data.carrier_name = renderPhoneCarrierName(phone_record);
|
||||
data.phone_type = renderPhoneType(phone_record);
|
||||
data.phone_users = renderUserCounter(data.phone_users, 2);
|
||||
data.phone_invalid = renderBoolean(data.phone_invalid);
|
||||
data.phone_fraud_detected = renderBoolean(data.phone_fraud_detected);
|
||||
//data.phone_profiles = renderBoolean(data.phone_profiles);
|
||||
// TODO: return alert_list back in next release
|
||||
//data.phone_alert_list = renderBoolean(data.phone_alert_list);
|
||||
}
|
||||
|
||||
data.url = renderClickableResourceWithoutQuery(data);
|
||||
|
||||
let browser_name = data.browser_name;
|
||||
let browser_version = data.browser_version;
|
||||
browser_name = (browser_name !== null && browser_name !== undefined) ? browser_name : '';
|
||||
browser_version = (browser_version !== null && browser_version !== undefined) ? browser_version : '';
|
||||
|
||||
const device_record = {
|
||||
id: data.deviceid,
|
||||
ua: data.ua,
|
||||
os_name: data.os_name,
|
||||
os_version: data.os_version,
|
||||
device_name: data.device_name,
|
||||
browser: `${browser_name} ${browser_version}`,
|
||||
lang: data.lang
|
||||
};
|
||||
data.device = renderDeviceWithOs(device_record);
|
||||
//data.device_id = renderClickableDeviceId(device_record);
|
||||
data.browser = renderBrowser(device_record);
|
||||
data.lang = renderLanguage(device_record);
|
||||
data.device_created = renderDate(data.device_created);
|
||||
|
||||
data.ua_modified = renderBoolean(data.ua_modified);
|
||||
const ip_country_record = {
|
||||
isp_name: data.netname,
|
||||
ipid: data.ipid,
|
||||
ip: data.ip,
|
||||
country_id: data.ip_country_id,
|
||||
country_iso: data.ip_country_iso,
|
||||
full_country: data.ip_full_country,
|
||||
};
|
||||
|
||||
data.cidr = renderCidr(data);
|
||||
data.netname = renderNetName(data);
|
||||
|
||||
data.ip = renderClickableIpWithCountry(ip_country_record);
|
||||
data.ip_country = renderClickableCountryName(ip_country_record);
|
||||
|
||||
data.referer = renderReferer(data);
|
||||
data.ua = renderUserAgent(data);
|
||||
data.query = renderQuery(data);
|
||||
|
||||
data.asn = renderClickableAsn(data);
|
||||
|
||||
data.firstname = renderUserFirstname(data);
|
||||
data.lastname = renderUserLastname(data);
|
||||
|
||||
data.ip_users = renderUserCounter(data.ip_users, 2, true);
|
||||
data.ip_events = renderDefaultIfEmptyElement(data.ip_events);
|
||||
//data.ip_events = data.ip_events;
|
||||
data.ip_spamlist = renderBoolean(data.spamlist);
|
||||
data.ip_type = renderIpType(data);
|
||||
// TODO: return alert_list back in next release
|
||||
//data.ip_alert_list = renderBoolean(data.ip_alert_list);
|
||||
|
||||
/***
|
||||
data.tor = renderBoolean(data.tor);
|
||||
data.vpn = renderBoolean(data.vpn);
|
||||
data.relay = renderBoolean(data.relay);
|
||||
data.data_center = renderBoolean(data.data_center);
|
||||
***/
|
||||
|
||||
data.payload = renderJsonTextarea(data.event_payload);
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
import {BasePanel} from './BasePanel.js?v=2';
|
||||
import {
|
||||
renderIp,
|
||||
renderTimeMs,
|
||||
renderErrorType,
|
||||
renderSensorError,
|
||||
renderJsonTextarea,
|
||||
renderMailto,
|
||||
} from '../DataRenderers.js?v=2';
|
||||
|
||||
export class LogbookPanel extends BasePanel {
|
||||
|
||||
constructor() {
|
||||
let eventParams = {
|
||||
enrichment: false,
|
||||
type: 'logbook',
|
||||
url: '/admin/logbookDetails',
|
||||
cardId: 'logbook-card',
|
||||
panelClosed: 'logbookPanelClosed',
|
||||
closePanel: 'closeLogbookPanel',
|
||||
rowClicked: 'logbookTableRowClicked',
|
||||
};
|
||||
super(eventParams);
|
||||
}
|
||||
|
||||
proceedData(data) {
|
||||
data.ip = renderIp(data);
|
||||
data.started = renderTimeMs(data.started);
|
||||
data.error_type = renderErrorType(data);
|
||||
data.error_text = renderSensorError(data);
|
||||
data.request = renderJsonTextarea(data.raw);
|
||||
|
||||
data.mailto = renderMailto(data);
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
import {BasePanel} from './BasePanel.js?v=2';
|
||||
import {
|
||||
renderPhone,
|
||||
renderDefaultIfEmptyElement,
|
||||
renderFullCountry,
|
||||
renderPhoneCarrierName,
|
||||
renderPhoneType,
|
||||
renderUserCounter,
|
||||
renderBoolean,
|
||||
renderUsersList,
|
||||
} from '../DataRenderers.js?v=2';
|
||||
|
||||
export class PhonePanel extends BasePanel {
|
||||
|
||||
constructor() {
|
||||
let eventParams = {
|
||||
enrichment: true,
|
||||
type: 'phone',
|
||||
url: '/admin/phoneDetails',
|
||||
cardId: 'phone-card',
|
||||
panelClosed: 'phonePanelClosed',
|
||||
closePanel: 'closePhonePanel',
|
||||
rowClicked: 'phoneTableRowClicked',
|
||||
};
|
||||
super(eventParams);
|
||||
}
|
||||
|
||||
proceedData(data) {
|
||||
const phone_record = {
|
||||
phonenumber: data.phone_number,
|
||||
country_id: data.country_id,
|
||||
country_iso: data.country_iso,
|
||||
full_country: data.full_country,
|
||||
carrier_name: data.carrier_name,
|
||||
type: data.type
|
||||
};
|
||||
data.phone_number = renderPhone(phone_record);
|
||||
data.phone_national = renderDefaultIfEmptyElement(data.national_format);
|
||||
data.country = renderFullCountry(data.full_country);
|
||||
data.carrier_name = renderPhoneCarrierName(phone_record);
|
||||
data.type = renderPhoneType(phone_record);
|
||||
data.shared = renderUserCounter(data.shared, 2);
|
||||
|
||||
// to 'No Profiles'
|
||||
//data.profiles = renderBoolean(data.profiles === null ? null : data.profiles === 0);
|
||||
|
||||
data.fraud_detected = renderBoolean(data.fraud_detected);
|
||||
data.invalid = renderBoolean(data.invalid);
|
||||
// TODO: return alert_list back in next release
|
||||
//data.alert_list = renderBoolean(data.alert_list);
|
||||
|
||||
data.shared_users = renderUsersList(data.shared_users);
|
||||
|
||||
// also data.checked is used
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user