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,3 @@
<?php
//

View File

@@ -0,0 +1 @@
<include if="{{isset(@HTML_FILE)}}" href="{{'templates/pages/'.@HTML_FILE}}"/>

View File

@@ -0,0 +1,24 @@
<include href="templates/parts/header.html" />
<section class="front-block">
<div class="container">
<div class="columns is-centered">
<div class="column column-login">
<div class="card">
<div class="card-panel">
<div class="content">
<check if="{{ isset(@ERROR_MESSAGE) }}">
<true>
<p class="warning-text">{{ @ERROR_MESSAGE }}</p>
</true>
<false>
{{ @AccountActivation_success_message }} <a href="/login">{{ @AccountActivation_login }}</a>
</false>
</check>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<include href="templates/parts/footer.html" />

View File

@@ -0,0 +1,98 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/popups/enrichAllPopup.html" />
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/notification.html" />
<div class="columns">
<div class="column settings-page">
<div class="card events-card">
<header class="card-header">
<div class="card-header-title">{{ @AdminApi_http_endpoint }}<p class="tooltip-info tooltip"title="{{ @AdminApi_table_title_tooltip }}"><include href="images/icons/information.svg" alt='' /></p>
</div>
</header>
<div class="card-content">
<div class="card-table">
<div class="content">
<include href="templates/parts/tables/tokens.html" />
<hr>
<p>{{ @AdminApi_http_endpoint_tooltip.title }}</p>
<ol>
<repeat group="{{ @AdminApi_http_endpoint_tooltip.items }}" value="{{ @item }}">
<li>{{ @item }}</li>
</repeat>
</ol>
<hr>
<div class="field">
<label class="label">{{ @AdminApi_server_language }}</label>
<div class="control">
<div class="selector">
<select class="input" name="version">
<option value="php" selected>PHP</option>
<option value="python">Python</option>
<option value="nodejs">Node.js</option>
<option value="ruby">Ruby</option>
<option value="curl">cURL</option>
</select>
</div>
</div>
</div>
<repeat group="{{ @API_KEYS }}" value="{{ @API_KEY }}">
<div id="php">
<textarea class="code-snippet" rows="93" cols="84"
readonly><include href="templates/snippets/php.html" with="apiKey={{ @API_KEY.key }}, apiUrl={{ @API_URL }}" /></textarea>
</div>
<div id="python" class="is-hidden">
<textarea class="code-snippet" rows="72" cols="84"
readonly><include href="templates/snippets/python.html" with="apiKey={{ @API_KEY.key }}, apiUrl={{ @API_URL }}" /></textarea>
</div>
<div id="nodejs" class="is-hidden">
<textarea class="code-snippet" rows="70" cols="84"
readonly><include href="templates/snippets/nodejs.html" with="apiKey={{ @API_KEY.key }}, apiUrl={{ @API_URL }}" /></textarea>
</div>
<div id="ruby" class="is-hidden">
<textarea class="code-snippet" rows="74" cols="84"
readonly><include href="templates/snippets/ruby.html" with="apiKey={{ @API_KEY.key }}, apiUrl={{ @API_URL }}" /></textarea>
</div>
<div id="curl" class="is-hidden">
<textarea class="code-snippet" rows="22" cols="84"
readonly><include href="templates/snippets/curl.html" with="apiKey={{ @API_KEY.key }}, apiUrl={{ @API_URL }}" /></textarea>
</div>
</repeat>
</div>
</div>
</div>
</div>
<check if="{{ @IS_OWNER }}">
<repeat group="{{ @API_KEYS }}" value="{{ @API_KEY }}">
<div class="card events-card">
<header class="card-header">
<a name="subscription"></a>
<div class="card-header-title">{{ @AdminApi_form_title }}<p class="tooltip-info tooltip" title="{{ @AdminApi_form_title_tooltip }}"><include href="images/icons/information.svg" alt='' /></p></div>
</header>
<include href="templates/parts/forms/updateApiUsageForm.html" />
</div>
</repeat>
<include href="templates/parts/tables/usageStats.html" />
<include href="templates/parts/forms/enrichAllForm.html" />
</check>
</div>
</div>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,11 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/blacklist.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,23 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/notification.html" />
{***
<include href="templates/parts/infoHeader.html" with="title={{@BOT.id}}, lastseen={{@BOT.lastseen ?? null}}, subtitle={{@BOT.ua}}, type=ua, id={{@BOT.id}}, dataIncomplete={{!@BOT.checked && @IS_ENRICHABLE}}"/>
***}
<include href="templates/parts/infoHeader.html" with="title={{@BOT.id}}, lastseen={{@BOT.lastseen ?? null}}, subtitle={{@BOT.ua}}"/>
<include href="templates/parts/widgets/bot.html" />
<include href="templates/parts/tables/users.html" />
<include href="templates/parts/mapWithIps.html" />
<include href="templates/parts/tables/events.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,11 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/bots.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,10 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/mapWithCountries.html" />
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,18 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/infoHeader.html" with="title={{@COUNTRY.value}}, country={{@COUNTRY}}"/>
<include href="templates/parts/widgets/country.html" />
<include href="templates/parts/tables/users.html" />
<include href="templates/parts/tables/ips.html" />
<include href="templates/parts/tables/isps.html" />
<include href="templates/parts/tables/events.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,25 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/notification.html" />
{~
$subtitle = '';
~}
<include href="templates/parts/infoHeader.html" with="title={{@DOMAIN.domain}}, lastseen={{@DOMAIN.lastseen}}, subtitle={{@subtitle}}, type=domain, id={{@DOMAIN.id}}, dataIncomplete={{!@DOMAIN.checked && @IS_ENRICHABLE}}"/>
<include href="templates/parts/widgets/domain.html" />
<include href="templates/parts/tables/users.html" />
<include href="templates/parts/tables/domains.html" with="innerDomains=1"/>
<include href="templates/parts/mapWithIps.html" />
<include href="templates/parts/tables/isps.html" />
<include href="templates/parts/tables/events.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,10 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/domains.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,11 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/events.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,17 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<div class="headline">
<div id="dashboard-form">
<include href="templates/parts/forms/filtersForm.html" />
</div>
</div>
<include href="templates/parts/home/counters.html" />
<include href="templates/parts/home/topTenBlock.html" />
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,36 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/panel/devicePanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/notification.html" />
{~
$country = ['iso' => $IP['country_iso']];
$subtitle = array();
if(isset($IP['name']) && !empty($IP['name'])) {
$subtitle[] = $IP['name'];
}
if(isset($IP['description']) && !empty($IP['description'])) {
$subtitle[] = $IP['description'];
}
$subtitle = join(', ', $subtitle);
$subtitle = preg_replace('/-|_/', ' ', $subtitle);
~}
<include href="templates/parts/infoHeader.html" with="title={{@IP.ip}}, country={{@country}}, lastseen={{@IP.lastseen}}, subtitle={{@subtitle}}, type=ip, id={{@IP.id}}, dataIncomplete={{!@IP.checked && @IS_ENRICHABLE}}"/>
<include href="templates/parts/widgets/ip.html" />
<include href="templates/parts/tables/users.html" />
<include href="templates/parts/tables/devices.html" />
{**<include href="templates/parts/tables/ips.html" with="showChart=0, title={{@AdminIp_ips_table_by_cidr_title}}"/>**}
<include href="templates/parts/tables/events.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,10 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/ips.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,44 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
{~
$subtitle = '';
if(isset($ISP['description']) && !empty($ISP['description'])) {
$subtitle = $ISP['description'];
}
$pageTitle = '';
if($ISP['name']) {
$pageTitle = $ISP['name'];
}
if(!$pageTitle && $ISP['description']) {
$pageTitle = $ISP['description'];
}
if(!$pageTitle && $ISP['asn']) {
$pageTitle = $ISP['asn'];
}
if($pageTitle) {
$regex1 = '/-|_/i';
$pageTitle = preg_replace($regex1, ' ', $pageTitle);
}
~}
<include href="templates/parts/infoHeader.html" with="title={{@pageTitle}}, lastseen={{@ISP.lastseen}}, subtitle={{@subtitle}}"/>
<include href="templates/parts/widgets/isp.html" />
<include href="templates/parts/tables/users.html" />
<include href="templates/parts/mapWithIps.html" />
<include href="templates/parts/tables/events.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,10 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/isps.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,11 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/logbookPanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/logbook.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,31 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/notification.html" />
<div class="columns">
<div class="column manual-check-page">
<include href="templates/parts/forms/manualCheckForm.html" />
</div>
</div>
<check if="{{ isset(@RESULT) }}">
<true>
<repeat group="{{ @RESULT }}" key="{{ @type }}" value="{{ @results }}">
<include href="templates/parts/tables/manualCheckResult.html" />
</repeat>
</true>
</check>
<check if="{{ count(@HISTORY) > 0 }}">
<true>
<include href="templates/parts/tables/manualCheckHistory.html" />
</true>
</check>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,25 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/panel/devicePanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
{~
$titleParam = $RESOURCE['url'] ?: '/';
~}
<include href="templates/parts/infoHeader.html" with="title={{@titleParam}}, lastseen={{@RESOURCE.lastseen}}, subtitle={{@RESOURCE.title}}"/>
<include href="templates/parts/widgets/resource.html" />
<include href="templates/parts/tables/users.html" />
<include href="templates/parts/mapWithIps.html" />
<include href="templates/parts/tables/isps.html" />
<include href="templates/parts/tables/devices.html" />
<include href="templates/parts/tables/events.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,10 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/resources.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,10 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/reviewQueue.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,22 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/notification.html" />
<div class="columns">
<div class="column rules-page">
<check if="{{ @IS_OWNER }}">
<repeat group="{{ @API_KEYS }}" value="{{ @API_KEY }}">
<include href="templates/parts/forms/thresholdValuesForm.html"
with="apiKeyId={{ @API_KEY.id }},blacklistThreshold={{ @API_KEY.blacklist_threshold }},reviewQueueThreshold={{ @API_KEY.review_queue_threshold }}"/>
</repeat>
</check>
</div>
</div>
<include href="templates/parts/tables/rules.html" />
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,42 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/popups/closeAccountPopup.html" />
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/notification.html" />
<div class="columns">
<div class="column settings-page">
<include href="templates/parts/forms/checkUpdatesForm.html" />
<include href="templates/parts/forms/timeZoneForm.html" />
<check if="{{ @IS_OWNER }}">
<repeat group="{{ @API_KEYS }}" value="{{ @API_KEY }}">
<include href="templates/parts/forms/retentionPolicyForm.html"
with="apiKeyId={{ @API_KEY.id }},retentionPolicy={{ @API_KEY.retention_policy }}" />
</repeat>
</check>
<set FREQUENCY="{{ isset(@VALUES)?@VALUES.unreviewed_items_reminder_freq:@PROFILE.unreviewed_items_reminder_freq }}" />
<include href="templates/parts/forms/notificationPreferencesForm.html" with="frequency={{ @FREQUENCY }}" />
<check if="{{ @IS_OWNER }}">
<include href="templates/parts/tables/sharedOperators.html" />
</check>
<include href="templates/parts/forms/changePasswordForm.html" />
<set EMAIL="{{ @PROFILE ? @PROFILE.email : '' }}" />
<set EMAIL="{{ isset(@EMAIL_VALUES) ? @EMAIL_VALUES.email : @EMAIL }}" />
<include href="templates/parts/forms/changeEmailForm.html" with="email={{ @EMAIL }},waitingForConfirmation={{ @PENDING_CONFIRMATION_EMAIL }}" />
<include href="templates/parts/forms/closeAccountForm.html" />
</div>
</div>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,40 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/panel/devicePanel.html" />
<check if="{{ @ALLOW_EMAIL_PHONE }}">
<include href="templates/parts/panel/emailPanel.html" />
<include href="templates/parts/panel/phonePanel.html" />
</check>
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/welcomeMessage.html" />
<include href="templates/parts/notification.html" />
<include href="templates/parts/infoHeader.html" with="title={{isset(@USER.email) ? @USER.email : @USER.userid}}, lastseen={{@USER.lastseen}}, isUserPage=true"/>
<include href="templates/parts/scoreDetails.html" />
<include href="templates/parts/widgets/userDetails.html" />
<include href="templates/parts/widgets/user.html" />
<include href="templates/parts/mapWithIps.html" />
<include href="templates/parts/tables/isps.html" />
<include href="templates/parts/tables/devices.html" />
<check if="{{ @ALLOW_EMAIL_PHONE }}">
<include href="templates/parts/tables/emails.html" />
<include href="templates/parts/tables/phones.html" />
</check>
<include href="templates/parts/tables/payloads/fieldAuditTrail.html" />
<include href="templates/parts/tables/events.html" with="showChart=1" />
<div>
<include href="templates/parts/forms/deleteUserForm.html" />
</div>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,10 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/users.html" with="showChart=1"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,11 @@
<include href="templates/parts/headerAdmin.html" />
<div id="wrap">
<include href="templates/parts/panel/eventPanel.html" />
<include href="templates/parts/leftMenu.html" />
<div class="main">
<include href="templates/parts/forms/globalSearchForm.html" />
<include href="templates/parts/systemNotification.html" />
<include href="templates/parts/tables/events.html" with="showChart=0, title=Watchlist"/>
</div>
</div>
<include href="templates/parts/footerAdmin.html" />

View File

@@ -0,0 +1,19 @@
<include href="templates/parts/header.html" />
<section class="front-block">
<div class="container">
<div class="column column-login">
<div class="card">
<div class="card-panel">
<div class="content">
<check if="{{ isset(@SUCCESS_MESSAGE) }}">
<true>
<p class="level-center">{{ @SUCCESS_MESSAGE | raw }}</p>
</true>
</check>
</div>
</div>
</div>
</div>
</div>
</section>
<include href="templates/parts/footer.html" />

View File

@@ -0,0 +1,39 @@
<include href="templates/parts/header.html" />
<section class="front-block">
<div class="container">
<code><span style="background:#8080AA;color:#2B2A3D;">&nbsp;A secret place!&nbsp;</span><br>
<check if="{{ isset(@ERROR_DATA) }}">
<true>
<p>* {{ @ERROR_DATA.message }}</p>
</true>
</check>
</code>
<br>
<div class="game"><pre id=b></pre></div><script>
s=Array(50).fill(' '.repeat(100)).join('\n');
b.innerText = s.slice(0,20*101+25) + '[· P R E S S A N Y K E Y T O S T A R T ·]' + s.slice(20*101+26+22,50*101);
document.addEventListener('keydown',start);
function start(e){
document.removeEventListener('keydown',start);e.preventDefault();e.stopPropagation();
X=Y=V=U=Z=t=1;onkeydown=e=>(k=e.which)&1?X-=k-38:Y-=k-39;setInterval("for(++t,o=Z,i=50;i--;)for(b.innerText=o+='\\n',j=99;j--;Y>49?Z+=Y=1:o+=i-Y|j-X-50?q?'·':'▓':q?'♥':Y=1)q=((j+t*Math.sin(A=i>>1)/9*Z>>3)*A*Z)**4%97<89",9);
// enhanced version...
const onkeydownOrignal = onkeydown
onkeydown=e=>
{
// prevent non arrow keys
const key = e.which
if (key<37 || key>40)
return;
// call orignal keydown
onkeydownOrignal(e);
}
}
</script>
<br>
<div class="level-right"><small>Cross my heart by KilledByAPixel</small></div>
</div>
</section>
<include href="templates/parts/footer.html" />

View File

@@ -0,0 +1,34 @@
<include href="templates/parts/header.html" />
<section class="front-block">
<div class="container">
<div class="column-login">
<check if="{{ isset(@ERROR_MESSAGE) }}">
<true>
<p class="warning-text">{{ @ERROR_MESSAGE }}</p>
</true>
</check>
<div class="card">
<div class="card-panel">
<div class="content">
<check if="{{ isset(@SUCCESS_MESSAGE) }}">
<true>
<p class="level-center">{{ @SUCCESS_MESSAGE }}</p>
</true>
</check>
<check if="{{ !isset(@SUCCESS_MESSAGE) }}">
<true>
<p class="level-center">{{ @ForgotPassword_form_title }}</p>
<hr />
<include href="templates/parts/forms/forgotPasswordForm.html" />
</true>
</check>
</div>
</div>
</div>
</div>
</div>
</section>
<include href="templates/parts/footer.html" />

View File

@@ -0,0 +1,2 @@
<h1>Hello, World!</h1>
<h2>It works</h2>

View File

@@ -0,0 +1,20 @@
<include href="templates/parts/header.html" />
<section class="front-block">
<div class="container">
<div class="column-login">
<check if="{{ isset(@ERROR_MESSAGE) }}">
<true>
<p class="warning-text">{{ @ERROR_MESSAGE }}</p>
</true>
</check>
<div class="card">
<div class="card-panel">
<div class="content">
<include href="templates/parts/forms/loginForm.html" />
</div>
</div>
</div>
</div>
</div>
</section>
<include href="templates/parts/footer.html" />

View File

@@ -0,0 +1,15 @@
<include href="templates/parts/header.html" />
<section class="front-block">
<div class="container">
<div class="column-login">
<div class="card">
<div class="card-panel">
<div class="content">
<include href="templates/parts/forms/logoutForm.html" />
</div>
</div>
</div>
</div>
</div>
</section>
<include href="templates/parts/footer.html" />

View File

@@ -0,0 +1,28 @@
<include href="templates/parts/header.html" />
<section class="front-block">
<div class="container">
<div class="column column-login">
<check if="{{ isset(@ERROR_MESSAGE) }}">
<true>
<p class="warning-text">{{ @ERROR_MESSAGE }}</p>
</true>
</check>
<div class="card">
<div class="card-panel">
<div class="content">
<check if="{{ isset(@SUCCESS_MESSAGE) }}">
<true>
<p class="level-center">{{ @SUCCESS_MESSAGE | raw }}</p>
</true>
<false>
<include href="templates/parts/forms/recoveryForm.html" />
</false>
</check>
</div>
</div>
</div>
</div>
</div>
</section>
<include href="templates/parts/footer.html" />

View File

@@ -0,0 +1,29 @@
<include href="templates/parts/header.html" />
<section class="front-block">
<div class="container">
<div class="column-login">
<check if="{{ isset(@ERROR_MESSAGE) }}">
<true>
<p class="warning-text">{{ @ERROR_MESSAGE }}</p>
</true>
</check>
<div class="card">
<div class="card-panel">
<div class="content">
<check if="{{ isset(@SUCCESS_MESSAGE) }}">
<true>
<p class="level-center">{{ @SUCCESS_MESSAGE | raw }}</p>
</true>
<false>
<p class="level-center">{{ @Signup_form_title }}</p>
<hr />
<include href="templates/parts/forms/signupForm.html" />
</false>
</check>
</div>
</div>
</div>
</div>
</div>
</section>
<include href="templates/parts/footer.html" />

View File

@@ -0,0 +1,31 @@
{**
<nav class="breadcrumb mb-2" aria-label="breadcrumbs">
<ul>
<check if="false !== strpos(@CURRENT_PATH, '/id/')">
<true>
<li><a href="/id" aria-current="page">{{ @AdminUsers_breadcrumb_title }}</a></li>
</true>
</check>
<check if="false !== strpos(@CURRENT_PATH, '/country/')">
<true>
<li><a href="/country" aria-current="page">{{ @AdminCountries_breadcrumb_title }}</a></li>
</true>
</check>
<check if="false !== strpos(@CURRENT_PATH, '/ip/')">
<true>
<li><a href="/ip" aria-current="page">{{ @AdminIps_breadcrumb_title }}</a></li>
</true>
</check>
<check if="false !== strpos(@CURRENT_PATH, '/resource/')">
<true>
<li><a href="/resource" aria-current="page">{{ @AdminResources_breadcrumb_title }}</a></li>
</true>
</check>
<li class="is-active"><a href="{{ @CURRENT_PATH }}" aria-current="page">{{ @BREADCRUMB_TITLE }}</a></li>
</ul>
</nav>
**}

View File

@@ -0,0 +1,14 @@
<div id="device-type-selectors" class="settings-page choices-selector">
<div class="field">
<div class="control">
<div class="selector">
<select class="input" name="version" multiple>
<option placeholder>{{ @AdminEvents_device_type_search_placeholder }}</option>
<repeat group="{{ @DEVICE_TYPES }}" value="{{ @value }}">
<option value="{{ @value }}">{{ @value }}</option>
</repeat>
</select>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,14 @@
<div id="entity-type-selectors" class="settings-page choices-selector">
<div class="field">
<div class="control">
<div class="selector">
<select class="input" name="version" multiple>
<option placeholder>{{ @AdminBlacklist_entity_type_search_placeholder }}</option>
<repeat group="{{ @ENTITY_TYPES }}" key="{{ @key }}" value="{{ @value }}">
<option value="{{ @key }}">{{ @value }}</option>
</repeat>
</select>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,14 @@
<div id="event-type-selectors" class="settings-page choices-selector">
<div class="field">
<div class="control">
<div class="selector">
<select class="input" name="version" multiple>
<option placeholder>{{ @AdminEvents_event_type_search_placeholder }}</option>
<repeat group="{{ @EVENT_TYPES }}" value="{{ @record }}">
<option value="{{ @record['id'] }}">{{ @record['value'] }}|{{ @record['name'] }}</option>
</repeat>
</select>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,14 @@
<div id="ip-type-selectors" class="settings-page choices-selector">
<div class="field">
<div class="control">
<div class="selector">
<select class="input" name="version" multiple>
<option placeholder>{{ @AdminUsers_ip_type_search_placeholder }}</option>
<repeat group="{{ @IP_TYPES }}" key="{{ @key }}" value="{{ @value }}">
<option value="{{ @key }}">{{ @value }}</option>
</repeat>
</select>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,15 @@
<div id="rule-selectors" class="settings-page choices-selector">
<div class="field">
<div class="control">
<div class="selector">
<select class="input" name="version" multiple>
<option placeholder>{{ @AdminUsers_rules_search_placeholder }}</option>
<repeat group="{{ @RULES }}" value="{{ @record }}">
<option value="{{ @record['uid'] }}" {{ isset(@DEFAULT_RULE) && @DEFAULT_RULE === @record['uid'] ? 'selected' : '' }}
>{{ @record['uid'] }}|{{ \Utils\RulesClasses::getRuleClass(@record['value']) }}|{{ @record['name'] }}</option>
</repeat>
</select>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,17 @@
{~
$scores = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90];
~}
<div id="scores-range-selectors" class="settings-page choices-selector">
<div class="field">
<div class="control">
<div class="selector">
<select class="input" name="version" multiple>
<option placeholder>{{ @AdminUsers_scores_range_search_placeholder }}</option>
<repeat group="{{ @scores }}" key="{{ @key }}" value="{{ @value }}">
<option value="{{ @value }}">{{ @value }}|{{ min(@value + 10, 99) }}</option>
</repeat>
</select>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,7 @@
<check if="isset(@JS)">
<true>
<script type="module" src="/ui/js/endpoints/{{@JS}}?dc={{time()}}"></script>
</true>
</check>
</body>
</html>

View File

@@ -0,0 +1,7 @@
<check if="isset(@JS)">
<true>
<script type="module" src="/ui/js/endpoints/{{@JS}}?dc={{time()}}"></script>
</true>
</check>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<form method="POST" action="{{ 'settings' | alias }}">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="inviteCoOwner">
<td>
<input class="input" name="email" type="text" placeholder="{{ @AdminApi_add_co_owner_form_email }}" autocomplete="off"/>
</td>
<td>
<button class="button is-primary" type="submit">{{@AdminApi_add_co_owner_form_invite_button}}</button>
</td>
</form>

View File

@@ -0,0 +1,31 @@
<div class="card events-card" data-item-id="profile-form">
<form method="POST" action="/settings">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="changeEmail" />
<header class="card-header">
<div class="card-header-title">{{ @AdminSettings_changeEmail_form_title }}<p class="tooltip-info tooltip" title="{{ @AdminSettings_changeEmail_form_title_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
</header>
<div class="card-content">
<div class="content">
<check if="{{ @waitingForConfirmation }}">
<div class="warning-text">
{{ \sprintf(@AdminSettings_changeEmail_approval_pending, @waitingForConfirmation) }}
</div>
</check>
<div class="field">
<label class="label">{{ @AdminSettings_changeEmail_form_field_email_label }}</label>
<div class="control">
<input class="input" name="email" type="email" value="{{ @email }}" placeholder="{{ @AdminSettings_changeEmail_form_field_email_placeholder }}" required />
</div>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminSettings_changeEmail_form_button_save }}" >
</footer>
</form>
</div>

View File

@@ -0,0 +1,41 @@
<div class="card events-card" data-item-id="profile-form">
<form method="POST" action="/settings">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="changePassword" />
<header class="card-header">
<div class="card-header-title">{{ @AdminSettings_changePassword_form_title }}<p class="tooltip-info tooltip" title="{{ @AdminSettings_changePassword_form_title_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
</header>
<div class="card-content">
<div class="content">
<div class="field">
<label class="label">{{ @AdminSettings_changePassword_form_field_currentPassword_label }}</label>
<div class="control">
<input class="input" name="currentPassword" type="password" value="" placeholder="{{ @AdminSettings_changePassword_form_field_currentPassword_placeholder }}" required />
</div>
</div>
<div class="field">
<label class="label">{{ @AdminSettings_changePassword_form_field_newPassword_label }}</label>
<div class="control">
<input class="input" name="new-password" type="password" placeholder="{{ @AdminSettings_changePassword_form_field_newPassword_placeholder }}" minlength="{{ @MIN_PASSWORD_LENGTH }}" required />
</div>
</div>
<div class="field">
<label class="label">{{ @AdminSettings_changePassword_form_field_passwordConfirmation_label }}</label>
<div class="control">
<input class="input" name="password-confirmation" type="password" placeholder="{{ @AdminSettings_changePassword_form_field_passwordConfirmation_placeholder }}" minlength="{{ @MIN_PASSWORD_LENGTH }}" required />
</div>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminProfile_form_button_save }}" >
</footer>
</form>
</div>

View File

@@ -0,0 +1,23 @@
<div class="card events-card" data-item-id="check-updates-form">
<form method="POST" action="/settings">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="checkUpdates" />
<div class="card-header">
<div class="card-header-title">{{ @AdminSettings_checkUpdates_form_title }}</div>
</div>
<div class="card-content">
<div class="content">
<div class="field">
<p>{{ @AdminSettings_form_checkUpdates_currentVerision | raw }}{{ @CURRENT_VERSION }}</p>
<p>{{ @AdminSettings_form_checkUpdates_confirmationMessage | raw }}</p>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminSettings_checkUpdates_form_button }}" >
</footer>
</form>
</div>

View File

@@ -0,0 +1,22 @@
<div class="card events-card" data-item-id="profile-form">
<form method="POST" action="/settings" id="close-account-form">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="closeAccount" />
<header class="card-header">
<p class="card-header-title">{{ @AdminSettings_form_closeAccount_title }}</p>
</header>
<div class="card-content">
<div class="content">
<div class="field">
<p>{{ @AdminSettings_form_closeAccount_confirmationMessage | raw }}</p>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-danger" id="close-account-btn" value="{{ @AdminSettings_closeAccount_form_button_save }}" >
</footer>
</form>
</div>

View File

@@ -0,0 +1,7 @@
<form method="POST">
<input type="hidden" name="cmd" value="delete" />
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="accountid" value="{{@USER.accountid}}"/>
<button class="button is-danger" data-type="remove" id="right-to-be-forgotten-button" type="submit" {{@SCHEDULED_FOR_DELETION ? 'disabled' : ''}}>{{ @AdminUser_remove_user_button }}</button>
<span id="scheduled-deletion-text" {{@SCHEDULED_FOR_DELETION ? '' : 'style="display: none"'}}>{{ @AdminUser_scheduled_for_removal }}</span>
</form>

View File

@@ -0,0 +1,32 @@
<div class="card events-card" data-item-id="profile-form">
<form method="POST" action="/api" id="enrich-all-form">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="enrichAll" />
<header class="card-header">
<p class="card-header-title">{{ @AdminApi_manual_enrichment_form_title }}</p>
</header>
<div class="card-content">
<div class="content">
<div class="field">
<p>{{ @AdminApi_manual_enrichment_form_confirmationMessage | raw }}</p>
</div>
</div>
</div>
{~
$disableButton = true;
foreach ($API_KEYS as $key) {
if ($key['apiToken'] !== null) {
$disableButton = false;
}
}
$disableButton = ($disableButton || !$NOT_CHECKED)? 'disabled' : '';
~}
<footer class="card-footer">
<input type="submit" class="button is-primary" id="enrich-all-btn" value="{{ @AdminApi_manual_enrichment_form_button_submit }}" {{ @disableButton }}>
</footer>
</form>
</div>

View File

@@ -0,0 +1,9 @@
<form action="" method="POST" class="reenrichment" id="reenrichment-form">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="type" value="{{@type}}" />
<input type="hidden" name="entityId" value="{{@entityId}}" />
<input type="hidden" name="cmd" value="reenrichment" />
<button class="reenrichment-button" type="submit">
<p class="tooltip" title="{{ @Base_page_enrich_entity }}"><img src="/ui/images/icons/reload.svg"></p>
</button>
</form>

View File

@@ -0,0 +1,66 @@
<nav class="filtersForm daterange">
{~
$USE_RANGE = false;
$USE_INTERVAL = false;
if('/event' == $CURRENT_PATH || '/logbook' == $CURRENT_PATH) {
$USE_RANGE = true;
} else {
$USE_INTERVAL = true;
}
if('/watchlist' == $CURRENT_PATH) {
$USE_RANGE = false;
$USE_INTERVAL = false;
}
~}
<check if="{{ @USE_INTERVAL }}">
<div class="control has-icons-left">
<span class="dateselector">
<a href="javascript:void(0);" data-type="d" data-value="0" class="blocked">MAX</a>
<a href="javascript:void(0);" data-type="d" data-value="2160" class="blocked">3M</a>
<a href="javascript:void(0);" data-type="d" data-value="720" class="blocked">1M</a>
<a href="javascript:void(0);" data-type="d" data-value="168" class="blocked">1W</a>
<a href="javascript:void(0);" data-type="d" data-value="72" class="blocked">3D</a>
<a href="javascript:void(0);" data-type="d" data-value="24" class="active">1D</a>
<a href="javascript:void(0);" data-type="d" data-value="1" class="blocked">1H</a>
</span>
<span class="icon">
<include href="images/icons/stopwatch.svg" />
</span>
<input type="hidden" name="date_from" />
<input type="hidden" name="date_to" />
<input type="hidden" name="offset" value="{{ @OFFSET }}"/>
</div>
</check>
<check if="{{ @USE_RANGE }}">
<input type="hidden" name="date_from" />
<input type="hidden" name="date_to" />
<input type="hidden" name="offset" value="{{ @OFFSET ?? 0 }}"/>
<div class="field">
<p class="control has-icons-left">
<input type="datetime-local" class="input" name="date_from_local" step="1">
<span class="icon">
<include href="images/icons/calendar.svg" />
</span>
</p>
</div>
<div class="field">
<p class="control has-icons-left">
<input type="datetime-local" class="input" name="date_to_local" step="1">
<span class="icon">
<include href="images/icons/calendar.svg" />
</span>
</p>
</div>
</check>
</nav>

View File

@@ -0,0 +1,22 @@
<form action="/forgot-password" method="POST">
<input type="hidden" name="token" value="{{ @CSRF }}">
<div class="field">
<div class="control">
<input class="input" placeholder="{{ @ForgotPassword_form_email_label }}"
type="email" id="email" name="email" required
value="{{ isset(@VALUES) && isset(@VALUES.email) ? @VALUES.email : '' }}">
</div>
</div>
<hr />
<div class="bottom-line">
<div>
<a href="/login">{{ @ForgotPassword_form_login_link }}</a>
</div>
<div class="control">
<button class="button is-primary" type="submit">{{@ForgotPassword_form_reset_button }}</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,20 @@
<div class="searchline">
<div class="field day-tile tooltip" title="{{ @AdminHome_clock_day_tooltip }}">
<input class="input" id="clock-day" placeholder="{{ @DAY }}" readonly>
</div>
<div class="field time-tile tooltip" title="{{ @AdminHome_clock_time_tooltip }}">
<input class="input" id="clock-time" placeholder="{{ @TIME_HIS }} {{ @TIMEZONE }}" readonly>
</div>
<input type="hidden" id="offset" value="{{ @OFFSET }}">
<form onsubmit="document.getElementById('auto-complete').focus(); return false;">
<input type="hidden" name="token" value="{{ @CSRF }}">
<div class="field global-search">
<input class="input" id="auto-complete" name="search" placeholder="{{ @Welcome_global_search_placeholder }}" autocomplete="off">
<div class="text-loader"></div>
</div>
</form>
</div>

View File

@@ -0,0 +1,28 @@
<form action="/login" method="POST">
<input type="hidden" name="token" value="{{ @CSRF }}">
<div class="field">
<div class="control">
<input autofocus class="input" placeholder="{{ @Login_form_email_label }}" type="email" id="email" name="email" required value="{{ isset(@VALUES)?@VALUES.email:'' }}" >
</div>
</div>
<div class="field">
<div class="control">
<input class="input" placeholder="{{ @Login_form_password_label }}" type="password" id="password" name="password" required>
</div>
</div>
<hr />
<div class="bottom-line">
<div>
<check if="{{ @ALLOW_FORGOT_PASSWORD }}">
<a href="/forgot-password">{{ @Login_form_forgot_password_link }}</a>
</check>
</div>
<div class="control">
<button id="submit-button" class="button is-primary" type="submit">{{ @Login_form_signin_button }}</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,16 @@
<form action="{{ 'logout' | alias }}" method="POST">
<input type="hidden" name="token" value="{{ @CSRF }}">
<p class="level-center">{{ @Logout_text }}</p>
<hr />
<div class="bottom-line">
<div>
<a href="/login">{{ @Logout_form_cancel_link }}</a>
</div>
<div class="control">
<button id="submit-button" class="button is-primary" type="submit">{{ @Logout_form_submit }}</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,75 @@
<div class="card events-card" data-item-id="manual-check-form">
<form method="POST" action="{{ 'manualCheck' | alias }}">
<input type="hidden" name="token" value="{{ @CSRF }}">
<header class="card-header">
<p class="card-header-title">{{ @AdminManualCheck_form_title }}</p>
</header>
<div class="card-content">
<div class="content">
<table class="search-form">
<tr>
<td>
<div class="field" >
<set TYPE="{{ isset(@SEARCH_VALUES) ? @SEARCH_VALUES.type : '' }}" />
<div class="selector">
<select class="input" name="type" id="type">
<repeat group="{{ @AdminManualCheck_form_types }}" key="{{ @key }}" value="{{ @type }}">
<set active="{{ @TYPE === @key }} " />
<option value="{{ @key }}" {{ @active ? 'selected' : '' }}>{{ @type }}</option>
</repeat>
</select>
</div>
</label>
</div>
</td>
<td>
<div class="field">
<set SEARCH="{{ isset(@SEARCH_VALUES) ? @SEARCH_VALUES.search : '' }}" />
<input class="input" name="search" type="text" value="{{ @SEARCH }}" autocomplete="off"/>
</label>
</div>
</td>
<td>
<div class="field">
<input type="submit" class="button is-primary" value="{{ @AdminManualCheck_form_button_search }}">
</div>
</td>
</tr>
</table>
</div>
</div>
{**
<div class="card-content">
<div class="content">
<div class="field">
<label class="label">{{ @AdminManualCheck_form_field_type_label }}</label>
<div class="control">
<set TYPE="{{ isset(@SEARCH_VALUES) ? @SEARCH_VALUES.type : '' }}" />
<select class="input" name="type" id="type">
<repeat group="{{ @AdminManualCheck_form_types }}" key="{{ @key }}" value="{{ @type }}">
<set active="{{ @TYPE === @key }} " />
<option value="{{ @key }}" {{ @active ? 'selected' : '' }}>{{ @type }}</option>
</repeat>
</select>
</div>
</div>
<div class="field">
<label class="label">{{ @AdminManualCheck_form_field_search_query_label }}</label>
<div class="control">
<set SEARCH="{{ isset(@SEARCH_VALUES) ? @SEARCH_VALUES.search : '' }}" />
<input class="input" name="search" type="text" value="{{ @SEARCH }}" autocomplete="off"/>
</div>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminManualCheck_form_button_search }}">
</footer>
**}
</form>
</div>

View File

@@ -0,0 +1,7 @@
<form method="POST" action="{{ 'manualCheck' | alias }}">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="type" value="{{ @value->type }}">
<input type="hidden" name="search" value="{{ @value->search_query }}">
<a href="{{ 'manualCheck' | alias }}" data-item-id="manual-check-history-item">{{ @value->search_query }}</a>
</form>

View File

@@ -0,0 +1,39 @@
<div class="card events-card" data-item-id="notification-preferences-form">
<form method="POST" action="{{ 'settings' | alias }}">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="updateNotificationPreferences" />
<header class="class-header">
<div class="card-header-title">{{ @AdminSettings_notificationPreferences_title }}<p class="tooltip-info tooltip" title="{{ @AdminSettings_notificationPreferences_title_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
</header>
<div class="card-content">
<div class="content">
<div class="field">
<label class="label">{{ @AdminSettings_notificationPreferences_reviewReminderFrequency_label
}}</label>
<div class="control">
<div class="selector">
<select class="input" name="review-reminder-frequency" id="review-reminder-frequency">
<repeat
group="{{ \Type\UnreviewedItemsReminderFrequencyType::getValues() }}"
value="{{ @key }}">
<set active="{{ @frequency === @key }}" />
<option value="{{ @key }}" {{ @active ? 'selected' : '' }}>{{
@AdminSettings_notificationPreferences_reviewReminderFrequency_options[@key] }}
</option>
</repeat>
</select>
</div>
</div>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary"
value="{{ @AdminSettings_notificationPreferences_button_save }}">
</footer>
</form>
</div>

View File

@@ -0,0 +1,28 @@
<form action="" method="POST">
<input type="hidden" name="token" value="{{ @CSRF }}">
<div class="field">
<label for="new-password" class="label">{{ @PasswordRecovering_form_newPassword_label }}</label>
<div class="control">
<input class="input" type="password" id="new-password" name="new-password" required minlength="{{ @MIN_PASSWORD_LENGTH }}">
</div>
</div>
<div class="field">
<label for="password-confirmation" class="label">{{ @PasswordRecovering_form_confirmPassword_label }}</label>
<div class="control">
<input class="input" type="password" id="password-confirmation" name="password-confirmation" required minlength="{{ @MIN_PASSWORD_LENGTH }}">
</div>
</div>
<hr />
<div class="bottom-line">
<div>
<a href="/login">{{ @ForgotPassword_form_login_link }}</a>
</div>
<div class="control">
<button class="button is-primary" type="submit">{{ @PasswordRecovering_form_renew_button }}</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,7 @@
<form action="" method="POST" class="reenrichment" id="reload-rules-form">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="refreshRules">
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminRules_reload_rules }}" >
</footer>
</form>

View File

@@ -0,0 +1,6 @@
<form method="POST" action="{{ 'settings' | alias }}">
<input type="hidden" name="cmd" value="removeCoOwner">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="operatorId" value="{{ @id }}">
<button class="button is-danger" type="submit">{{ @AdminApi_shared_keys_delete }}</button>
</form>

View File

@@ -0,0 +1,6 @@
<form method="POST" action="{{ 'api' | alias }}">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="resetKey">
<input type="hidden" name="keyId" value="{{ @id }}">
<button class="button is-danger" type="submit" {{@isOwner ? '' : 'disabled'}}>{{@AdminApi_table_button_reset }}</button>
</form>

View File

@@ -0,0 +1,36 @@
<div class="card events-card" data-item-id="profile-form">
<form method="POST" action="{{ 'settings' | alias }}">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="changeRetentionPolicy" />
<input type="hidden" name="keyId" value="{{ @apiKeyId }}">
<header class="card-header">
<div class="card-header-title">{{ @AdminRetentionPolicy_form_title }}<p class="tooltip-info tooltip" title="{{ @AdminRetentionPolicy_form_title_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
</header>
<div class="card-content">
<div class="content">
{{ @AdminRetentionPolicy_form_field_policy_warning }}
<div class="field">
<label class="label">{{ @AdminRetentionPolicy_form_field_policy_label }}</label>
<div class="control">
<div class="selector">
<select class="input" name="retention-policy" id="retention-policy">
<option value="0" {{ @retentionPolicy === 0 ? 'selected' : '' }}>No retention policy</option>
<option value="1" {{ @retentionPolicy === 1 ? 'selected' : '' }}>1 week</option>
<option value="3" {{ @retentionPolicy === 3 ? 'selected' : '' }}>3 weeks</option>
<option value="8" {{ @retentionPolicy === 8 ? 'selected' : '' }}>8 weeks</option>
<option value="12" {{ @retentionPolicy === 12 ? 'selected' : '' }}>12 weeks</option>
</select>
</div>
</div>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminRetentionPolicy_form_button_save }}">
</footer>
</form>
</div>

View File

@@ -0,0 +1,8 @@
<form action="" method="POST" class="reenrichment" id="reenrichment-form">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="accountid" value="{{@accountid}}">
<input type="hidden" name="cmd" value="riskScore">
<button class="reenrichment-button" type="submit">
<p class="tooltip" title="{{ @AdminUser_recalculate_risk_score_tooltip }}"><img src="/ui/images/icons/reload.svg"></p>
</button>
</form>

View File

@@ -0,0 +1,8 @@
<div class="searchForm">
<div class="control has-icons-left">
<input type="text" id="search" class="input" placeholder="{{ @SEARCH_PLACEHOLDER }}" autocomplete="off">
<span class="icon">
<include href="images/icons/search.svg" />
</span>
</div>
</div>

View File

@@ -0,0 +1,34 @@
<form action="/signup" method="POST">
<input type="hidden" name="token" value="{{ @CSRF }}">
<div class="field">
<div class="control">
<input autofocus placeholder="{{ @Signup_form_email_label }}" class="input" type="email" id="email" name="email" required value="{{ isset(@VALUES)?@VALUES.email:'' }}" >
</div>
</div>
<div class="field">
<div class="control">
<input class="input" placeholder="{{ @Signup_form_password_label }}" type="password" id="password" name="password" minlength="{{ @MIN_PASSWORD_LENGTH }}" required>
</div>
</div>
<div class="field">
<div class="control">
<set TIMEZONE="UTC" />
<include href="templates/parts/timeZoneSelector.html" />
</div>
</div>
<hr />
<div class="bottom-line">
<div>
<a href="/login">{{ @ForgotPassword_form_login_link }}</a>
</div>
<div class="control has-text-right">
<button class="button is-primary" type="submit">{{ @Signup_form_signin_button }}</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,60 @@
<div class="card events-card" data-item-id="threshhold-values-form">
<form method="POST" action="{{ 'rules' | alias }}">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="changeThresholdValues" />
<input type="hidden" name="keyId" value="{{ @apiKeyId }}">
<header class="card-header">
<div class="card-header-title">{{ @AdminThresholdValues_form_title }}<p class="tooltip-info tooltip" title="{{ @AdminThresholdValues_form_title_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
</header>
<div class="card-content">
<div class="content">
{{ @AdminThresholdValues_form_field_warning }}
<div class="field">
<label class="label">{{ @AdminThresholdValues_form_field_review_queue_threshold_label }}</label>
<div class="control">
<input type="radio" id="review0" name="review-queue-threshold" value="0" {{ @reviewQueueThreshold === 0 ? 'checked' : ( @blacklistThreshold >= 0 ? 'disabled' : '') }}>
<label for="review0">{{ @AdminThresholdValues_form_value_zero_prefix }} 0</label><br>
<input type="radio" id="review6" name="review-queue-threshold" value="6" {{ @reviewQueueThreshold === 6 ? 'checked' : ( @blacklistThreshold >= 6 ? 'disabled' : '') }}>
<label for="review6">{{ @AdminThresholdValues_form_value_prefix }} 6</label><br>
<input type="radio" id="review18" name="review-queue-threshold" value="18" {{ @reviewQueueThreshold === 18 ? 'checked' : ( @blacklistThreshold >= 18 ? 'disabled' : '') }}>
<label for="review18">{{ @AdminThresholdValues_form_value_prefix }} 18</label><br>
<input type="radio" id="review24" name="review-queue-threshold" value="24" {{ @reviewQueueThreshold === 24 ? 'checked' : ( @blacklistThreshold >= 24 ? 'disabled' : '') }}>
<label for="review24">{{ @AdminThresholdValues_form_value_prefix }} 24</label><br>
<input type="radio" id="review33" name="review-queue-threshold" value="33" {{ @reviewQueueThreshold === 33 ? 'checked' : ( @blacklistThreshold >= 33 ? 'disabled' : '') }}>
<label for="review33">{{ @AdminThresholdValues_form_value_prefix }} 33</label>
</div>
</div>
<div class="field">
<label class="label">{{ @AdminThresholdValues_form_field_blacklist_threshold_label }}</label>
<div class="control">
<input type="radio" id="blacklist-1" name="blacklist-threshold" value="-1" {{ @blacklistThreshold === -1 ? 'checked' : '' }}>
<label for="blacklist-1">Off (recommended)</label><br>
<input type="radio" id="blacklist0" name="blacklist-threshold" value="0" {{ @blacklistThreshold === 0 ? 'checked' : '' }}>
<label for="blacklist0">{{ @AdminThresholdValues_form_value_zero_prefix }} 0</label><br>
<input type="radio" id="blacklist6" name="blacklist-threshold" value="6" {{ @blacklistThreshold === 6 ? 'checked' : ( @reviewQueueThreshold <= 6 ? 'disabled' : '') }}>
<label for="blacklist6">{{ @AdminThresholdValues_form_value_prefix }} 6</label><br>
<input type="radio" id="blacklist12" name="blacklist-threshold" value="12" {{ @blacklistThreshold === 12 ? 'checked' : ( @reviewQueueThreshold <= 12 ? 'disabled' : '') }}>
<label for="blacklist12">{{ @AdminThresholdValues_form_value_prefix }} 12</label><br>
<input type="radio" id="blacklist18" name="blacklist-threshold" value="18" {{ @blacklistThreshold === 18 ? 'checked' : ( @reviewQueueThreshold <= 18 ? 'disabled' : '') }}>
<label for="blacklist18">{{ @AdminThresholdValues_form_value_prefix }} 18</label>
</div>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminThresholdValues_form_button_save }}">
</footer>
</form>
</div>

View File

@@ -0,0 +1,28 @@
<div class="card events-card" data-item-id="profile-form">
<form method="POST" action="/settings">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="changeTimeZone" />
<header class="card-header">
<div class="card-header-title">{{ @AdminTimeZone_form_title }}<p class="tooltip-info tooltip" title="{{ @AdminTimeZone_form_title_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
</header>
<div class="card-content">
<div class="content">
<div class="field">
<label class="label">{{ @AdminTimeZone_form_field_timezone_label }}</label>
<div class="control">
<set TIMEZONE="{{ @PROFILE ? @PROFILE.timezone: 'UTC' }}" />
<set TIMEZONE="{{ isset(@TIME_ZONE_VALUES) ? @TIME_ZONE_VALUES.timezone : @TIMEZONE }}" />
<include href="templates/parts/timeZoneSelector.html" />
</div>
</div>
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminTimeZone_form_button_save }}">
</footer>
</form>
</div>

View File

@@ -0,0 +1,34 @@
<form method="POST" action="/api">
<input type="hidden" name="token" value="{{ @CSRF }}">
<input type="hidden" name="cmd" value="updateApiUsage">
<input type="hidden" name="keyId" value="{{ @API_KEY.id }}">
<div class="card-content">
<div class="content">
<div class="field"><p>{{ @AdminApi_form_confirmationMessage | raw }}</p></div>
<textarea class="textarea" name="apiToken" placeholder="{{ @AdminApi_form_field_token_placeholder }}" rows="2" cols="84" required>{{ @API_KEY.apiToken }}</textarea>
<repeat group="{{ @API_KEY.enrichedAttributes }}" key="{{ @attribute }}" value="{{ @enabled }}">
<check if="{{ @ALLOW_EMAIL_PHONE || @attribute === 'ip' }}">
<div class="field">
<label class="label">{{ @AdminApi_data_enrichment_attributes[@attribute] }}</label>
<div class="control">
<input type="checkbox" name="enrichedAttributes[{{ @attribute }}]" value="{{ @attribute }}" {{ @enabled ? 'checked' : '' }} />
</div>
</div>
</check>
</repeat>
{***
<div class="field">
<label class="label">{{ @AdminApi_data_alert_list_exchange }}</label>
<div class="control">
<input type="checkbox" name="exchangeBlacklist" {{ @API_KEY.skip_blacklist_sync ? '' : 'checked' }} />
</div>
</div>
***}
</div>
</div>
<footer class="card-footer">
<input type="submit" class="button is-primary" value="{{ @AdminApi_form_button_save }}" >
</footer>
</form>

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1216, initial-scale=0.6">
<meta name="color-scheme" content="dark">
<title>{{ @PAGE_TITLE }}</title>
<link rel="icon" href="/ui/images/favicon.png">
<link rel="stylesheet" type="text/css" href="/ui/css/admin.all.css?dc={{time()}}" />
<meta name="format-detection" content="telephone=no">
<meta name="google" content="notranslate">
<meta name="generator" content="FrontPage 4.0">
</head>
<body>

View File

@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1216, initial-scale=0.6">
<meta name="color-scheme" content="dark">
<meta name="referrer" content="no-referrer">
<title>{{ @PAGE_TITLE }}</title>
<link rel="icon" href="/ui/images/favicon.png">
<link rel="stylesheet" type="text/css" href="/ui/css/admin.all.css?dc={{time()}}" />
<check if="(isset(@EXTRA_CSS) && @EXTRA_CSS)">
<link rel="stylesheet" type="text/css" href="{{ @EXTRA_CSS }}?dc={{time()}}" />
</check>
<check if="(isset(@LOAD_DATATABLE) && @LOAD_DATATABLE) || (isset(@LOAD_JVECTORMAP) && @LOAD_JVECTORMAP) || (isset(@LOAD_AUTOCOMPLETE) && @LOAD_AUTOCOMPLETE)">
<script type="text/javascript" src="/ui/js/vendor/jquery-3.6.0/jquery.min.js"></script>
</check>
<check if="isset(@LOAD_DATATABLE) && @LOAD_DATATABLE">
<script type="text/javascript" src="/ui/js/vendor/datatables-2.3.2/dataTables.min.js"></script>
<script type="text/javascript" src="/ui/js/vendor/tooltipster-master-4.2.8/dist/js/tooltipster.bundle.min.js"></script>
</check>
<check if="isset(@LOAD_JVECTORMAP) && @LOAD_JVECTORMAP">
{** https://stackoverflow.com/a/50474341 **}
<script type="text/javascript" src="/ui/js/vendor/jvectormap-2.0.5/jquery-jvectormap-2.0.5.min.js"></script>
{** https://stackoverflow.com/a/58270601 **}
<script src="/ui/js/vendor/jvectormap-2.0.5/jquery-jvectormap-world-mill-en.js"></script>
</check>
<check if="isset(@LOAD_UPLOT) && @LOAD_UPLOT">
<script type="text/javascript" src="/ui/js/vendor/uPlot-1.6.18/uPlot.iife.min.js"></script>
</check>
<check if="isset(@LOAD_ACCEPT_LANGUAGE_PARSER) && @LOAD_ACCEPT_LANGUAGE_PARSER">
<script type="text/javascript" src="/ui/js/vendor/accept-language-parser-1.5.0/index.js"></script>
</check>
<check if="isset(@LOAD_AUTOCOMPLETE) && @LOAD_AUTOCOMPLETE">
<script type="text/javascript" src="/ui/js/vendor/devbridge-jquery-autocomplete-1.5.0/jquery.autocomplete.min.js"></script>
</check>
<check if="isset(@LOAD_CHOICES) && @LOAD_CHOICES">
<script src="/ui/js/vendor/choices-10.2.0/choices.min.js"></script>
</check>
<meta name="format-detection" content="telephone=no">
<meta name="google" content="notranslate">
<meta name="generator" content="FrontPage 4.0">
<meta name="csrf-token" content="{{ @CSRF }}">
</head>
<body>

View File

@@ -0,0 +1,67 @@
<table class="table-tile content info-tiles" id="dashboard-counters">
<tr>
{***
<td class="table-card tile-padding totalEvents">
<div class="subtitle">
{{ @AdminHome_total_events }}<p class="tooltip-info tooltip" title="{{ @AdminHome_total_events_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
<p class="title"></p>
<a href="/event">{{ @AdminHome_view_all }}</a>
</td>
***}
<td class="table-card tile-padding totalUsers">
<div class="subtitle">
{{ @AdminHome_total_users }}<p class="tooltip-info tooltip" title="{{ @AdminHome_total_users_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
<p class="title"></p>
<a href="/id">{{ @AdminHome_view_all }}</a>
</td>
<td class="table-card tile-padding totalIps">
<div class="subtitle">
{{ @AdminHome_total_ips }}<p class="tooltip-info tooltip" title="{{ @AdminHome_total_ips_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
<p class="title"></p>
<a href="/ip">{{ @AdminHome_view_all }}</a>
</td>
<td class="table-card tile-padding totalCountries">
<div class="subtitle">
{{ @AdminHome_total_countries }}<p class="tooltip-info tooltip" title="{{ @AdminHome_total_countries_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
<p class="title"></p>
<a href="/country">{{ @AdminHome_view_all }}</a>
</td>
<td class="table-card tile-padding totalUrls">
<div class="subtitle">
{{ @AdminHome_total_urls }}<p class="tooltip-info tooltip" title="{{ @AdminHome_total_urls_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
<p class="title"></p>
<a href="/resource">{{ @AdminHome_view_all }}</a>
</td>
<td class="table-card tile-padding totalUsersForReview">
<div class="subtitle">
{{ @AdminHome_total_users_for_review }}<p class="tooltip-info tooltip" title="{{ @AdminHome_total_users_for_review_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
<p class="title"></p>
<a href="/review-queue">{{ @AdminHome_view_all }}</a>
</td>
<td class="table-card tile-padding totalBlockedUsers">
<div class="subtitle">
{{ @AdminHome_total_blocked_users }}<p class="tooltip-info tooltip" title="{{ @AdminHome_total_blocked_users_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
<p class="title"></p>
<a href="/blacklist">{{ @AdminHome_view_all }}</a>
</td>
</tr>
</table>

View File

@@ -0,0 +1,59 @@
<table class="table-tile content info-tiles" data-tab-id="top-users">
<tr>
<td class="table-card" id="most-active-users">
<div class="gapless">
<div class="subtitle">
{{ @AdminHome_top10_most_active_users }}<p class="tooltip-info tooltip" title="{{ @AdminHome_top10_most_active_users_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
<include href="templates/parts/home/topTenTable.html" with="c1=@Top10_user,c2=@Top10_events,id=most-active-users-table"/>
</div>
</td>
<td class="table-card" id="most-active-countries">
<div class="gapless">
<div class="subtitle">
{{ @AdminHome_top10_active_countries }}<p class="tooltip-info tooltip" title="{{ @AdminHome_top10_active_countries_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
<include href="templates/parts/home/topTenTable.html" with="c1=@Top10_country,c2=@Top10_users,id=most-active-countries-table"/>
</div>
</td>
<td class="table-card" id="most-active-urls">
<div class="gapless">
<div class="subtitle">
{{ @AdminHome_top10_active_urls }}<p class="tooltip-info tooltip" title="{{ @AdminHome_top10_active_urls_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
<include href="templates/parts/home/topTenTable.html" with="c1=@Top10_resource,c2=@Top10_users,id=most-active-urls-table"/>
</div>
</td>
</tr>
<tr>
<td class="table-card" id="ips-with-the-most-users">
<div class="gapless">
<div class="subtitle">
{{ @AdminHome_top10_ips_with_the_most_users }}<p class="tooltip-info tooltip" title="{{ @AdminHome_top10_ips_with_the_most_users_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
<include href="templates/parts/home/topTenTable.html" with="c1=@Top10_ip,c2=@Top10_users,id=ips-with-the-most-users-table"/>
</div>
</td>
<td class="table-card" id="users-with-most-login-fail">
<div class="gapless">
<div class="subtitle">
{{ @AdminHome_top10_users_with_most_login_fail }}<p class="tooltip-info tooltip" title="{{ @AdminHome_top10_users_with_most_login_fail_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
<include href="templates/parts/home/topTenTable.html" with="c1=@Top10_user,c2=@Top10_attempts,id=users-with-most-login-fail-table"/>
</div>
</td>
<td class="table-card" id="users-with-most-ips">
<div class="gapless">
<div class="subtitle">
{{ @AdminHome_top10_users_with_the_most_ips }}<p class="tooltip-info tooltip" title="{{ @AdminHome_top10_users_with_the_most_ips_tooltip }}"><include href="images/icons/information.svg" alt=''/></p>
</div>
<include href="templates/parts/home/topTenTable.html" with="c1=@Top10_user,c2=@Top10_ips,id=users-with-most-ips-table"/>
</div>
</td>
</tr>
</table>

View File

@@ -0,0 +1,8 @@
<table class="table" id="{{@id}}">
<thead>
<tr>
<th class="top-ten-aggregating-col">{{@c1}}</th>
<th>{{@c2}}</th>
</tr>
</thead>
</table>

View File

@@ -0,0 +1,43 @@
<check if="isset(@lastseen) && !empty(@lastseen)">
<div class="lastseen is-hidden">{{ @lastseen }}</div>
</check>
<div class="headline">
<check if="isset(@isUserPage)">
<true>
<include href="templates/parts/userBlock.html" with="title={{@title}}"/>
</true>
<false>
<check if="isset(@country) && !empty(@country)">
<true>
{~
$ICON_PATH = in_array($country['iso'], [null, 'N/A', 'AN', 'CS', 'YU']) ? 'icons/null.svg' : 'flags/'.strtolower($country['iso']).'.svg';
~}
<check if="{{ isset(@type) && isset(@id) && isset(@dataIncomplete) && @dataIncomplete }}">
<true>
<h1 class="title grey-title"><img src="/ui/images/{{ @ICON_PATH }}" class="country-flag" alt="{{@country.iso}}">{{ @title }}<include href="templates/parts/forms/enrichmentButtonForm.html" with="type={{@type}}, entityId={{@id}}"/></h1>
</true>
<false>
<h1 class="title grey-title"><img src="/ui/images/{{ @ICON_PATH }}" class="country-flag" alt="{{@country.iso}}">{{ @title }}</h1>
</false>
</check>
</true>
<false>
<check if="{{ isset(@type) && isset(@id) && isset(@dataIncomplete) && @dataIncomplete }}">
<true>
<h1 class="title grey-title">{{ @title }}<include href="templates/parts/forms/enrichmentButtonForm.html" with="type={{@type}}, entityId={{@id}}"/></h1>
</true>
<false>
<h1 class="title grey-title">{{ @title }}</h1>
</false>
</check>
</false>
</check>
</false>
</check>
<check if="isset(@subtitle) && !empty(@subtitle)">
<div class="subtitle">{{ @subtitle }}</div>
</check>
</div>

View File

@@ -0,0 +1,147 @@
<div class="sidebar">
<aside class="menu">
<include href="templates/parts/logoAdmin.html" />
<ul class="menu-list">
<li>
<set HOME_ACTIVE_CLASS="{{ '/' == @CURRENT_PATH ? 'is-active': 'is-normal'}}" />
<a class="{{ @HOME_ACTIVE_CLASS }}" href="/">
<include href="images/icons/dashboard.svg" />{{ @LeftMenu_home_link }}
</a>
</li>
<li>
<set REVIEW_QUEUE_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/review-queue') ? 'is-active': 'is-normal'}}" />
<a class="{{ @REVIEW_QUEUE_ACTIVE_CLASS }}" href="/review-queue">
<include href="images/icons/watchlist.svg" />{{ @LeftMenu_not_reviewed_users_link }}<span class="reviewed-users-tile">{{ @NUMBER_OF_NOT_REVIEWED_USERS }}</span>
</a>
</li>
{***
<li>
<set WATCHLIST_ACTIVE_CLASS="{{ '/watchlist' == @CURRENT_PATH ? 'is-active': 'is-normal'}}" />
<a class="{{@WATCHLIST_ACTIVE_CLASS }}" href="/watchlist">
<include href="images/icons/watchlist.svg" />{{ @LeftMenu_watchlist_link }}
</a>
</li>
***}
<li>
<set EVENTS_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/event') ? 'is-active': 'is-normal'}}" />
<a class="{{ @EVENTS_ACTIVE_CLASS }}" href="/event">
<include href="images/icons/events.svg" />{{ @LeftMenu_all_events_link }}
</a>
</li>
<li>
<set USERS_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/id') ? 'is-active': 'is-normal'}}" />
<a class="{{ @USERS_ACTIVE_CLASS }}" href="/id">
<include href="images/icons/users.svg" />{{ @LeftMenu_users_link }}
</a>
</li>
<li>
<set IPS_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/ip') ? 'is-active': 'is-normal'}}" />
<a class="{{ @IPS_ACTIVE_CLASS }}" href="/ip">
<include href="images/icons/ips.svg" />{{ @LeftMenu_ips_link }}
</a>
</li>
<li>
<set COUNTRIES_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/country') ? 'is-active': 'is-normal'}}" />
<a class="{{ @COUNTRIES_ACTIVE_CLASS }}" href="/country">
<include href="images/icons/countries.svg" />{{ @LeftMenu_countries_link }}
</a>
</li>
{***
<li>
<set PHONES_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/phones') ? 'is-active': 'is-normal'}}" />
<a class="{{ @PHONES_ACTIVE_CLASS }}" href="/phones">
<include href="images/icons/phones.svg" />{{ @LeftMenu_phones_link }}
</a>
</li>
***}
<li>
<set ISPS_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/isp') ? 'is-active': 'is-normal'}}" />
<a class="{{ @ISPS_ACTIVE_CLASS }}" href="/isp">
<include href="images/icons/isp.svg" />{{ @LeftMenu_isps_link }}
</a>
</li>
<check if="{{ @ALLOW_EMAIL_PHONE }}">
<li>
<set DOMAINS_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/domain') ? 'is-active': 'is-normal'}}" />
<a class="{{ @DOMAINS_ACTIVE_CLASS }}" href="/domain">
<include href="images/icons/domains.svg" />{{ @LeftMenu_domains_link }}
</a>
</li>
</check>
<li>
<set RESOURCES_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/resource') ? 'is-active': 'is-normal'}}" />
<a class="{{ @RESOURCES_ACTIVE_CLASS }}" href="/resource">
<include href="images/icons/resources.svg" />{{ @LeftMenu_resources_link }}
</a>
</li>
{***
<li>
<set DEVICES_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/device') ? 'is-active': 'is-normal'}}" />
<a class="{{ @DEVICES_ACTIVE_CLASS }}" href="/device">
<include href="images/icons/ios-ipados-devices.svg" />{{ @LeftMenu_devices_link }}
</a>
</li>
<li>
<set BOTS_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/bot') ? 'is-active': 'is-normal'}}" />
<a class="{{ @BOTS_ACTIVE_CLASS }}" href="/bot">
<include href="images/icons/bot.svg" />{{ @LeftMenu_bots_link }}
</a>
</li>
***}
<li>
<set BLACKLIST_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/blacklist') ? 'is-active': 'is-normal'}}" />
<a class="{{ @BLACKLIST_ACTIVE_CLASS }}" href="/blacklist">
<include href="images/icons/alert-diamond.svg" />{{ @LeftMenu_blacklist_link }}
</a>
</li>
{***
<li>
<set MANUAL_CHECK_ACTIVE_CLASS="{{ false !== strpos(@CURRENT_PATH, '/manual-check' ? 'is-active': 'is-normal' }}" />
<a class="{{@MANUAL_CHECK_ACTIVE_CLASS}}" href="/manual-check">
<include href="images/icons/search.svg" />{{ @LeftMenu_manual_check_link }}
</a>
</li>
***}
<li>
<set RULES_ACTIVE_CLASS="{{ '/rules' == @CURRENT_PATH ? 'is-active': 'is-normal'}}" />
<a class="{{@RULES_ACTIVE_CLASS }}" href="/rules">
<include href="images/icons/alert-dashboard.svg" />{{ @LeftMenu_rules_link }}
</a>
</li>
<li>
<set API_KEYS_ACTIVE_CLASS="{{ '/api' == @CURRENT_PATH ? 'is-active': 'is-normal'}}" />
<a class="{{@API_KEYS_ACTIVE_CLASS }}" href="/api">
<include href="images/icons/apikeys.svg" />{{ @LeftMenu_api_keys_link }}
</a>
</li>
<li>
<set SETTINGS_ACTIVE_CLASS="{{ '/settings' == @CURRENT_PATH ? 'is-active': 'is-normal'}}" />
<a class="{{@SETTINGS_ACTIVE_CLASS }}" href="/settings">
<include href="images/icons/settings.svg" />{{ @LeftMenu_settings_link }}
</a>
</li>
<li>
<set LOGBOOK_ACTIVE_CLASS="{{ '/logbook' == @CURRENT_PATH ? 'is-active': 'is-normal'}}" />
<a class="{{@LOGBOOK_ACTIVE_CLASS }}" href="/logbook">
<include href="images/icons/rules.svg" />{{ @LeftMenu_logbook_link }}
</a>
</li>
<li>
<a class="is-normal" href="/logout">
<include href="images/icons/logout.svg" />{{ @LeftMenu_logout_link }}
</a>
</li>
</ul>
</aside>
</div>

View File

@@ -0,0 +1,3 @@
<a class="menu-logo" href="/">
<img width="124" height="28" src="/ui/images/logo.svg"/>
</a>

View File

@@ -0,0 +1,36 @@
<div class="main-graph separate-graph">
<check if="false !== strpos(@CURRENT_PATH, 'country')">
<true>
<include href="templates/parts/forms/filtersForm.html" />
</true>
</check>
<div id="world-map-markers"></div>
</div>
<div class="card events-card">
<header class="card-header">
<div class="card-header-title">
{{ @AdminCountries_map_title }}
<span>&#8943;</span><p class="tooltip-info tooltip" title="{{ @AdminCountries_map_title_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
</header>
<div class="card-table">
<div class="content">
<include href="templates/parts/forms/searchForm.html" />
<table class="table" id="countries-table">
<thead>
<tr>
<th class="tooltip country-country-col" title="{{ @Base_table_column_country_tooltip_countries }}">{{ @Base_table_column_country }}</th>
<th class="tooltip country-iso-col" title="{{ @Base_table_column_country_code_tooltip }}">{{ @Base_table_column_country_code }}</th>
<th class="tooltip country-cnt-col" title="{{ @Base_table_column_total_users_tooltip_countries }}">{{ @Base_table_column_total_users }}</th>
<th class="tooltip country-cnt-col" title="{{ @Base_table_column_total_actions_tooltip_countries }}">{{ @Base_table_column_total_actions }}</th>
<th class="tooltip country-cnt-col" title="{{ @Base_table_column_total_ips_tooltip_countries }}">{{ @Base_table_column_total_ips }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>

View File

@@ -0,0 +1,34 @@
<div class="card events-card">
<header class="card-header">
<div class="card-header-title">
{{ @AdminIps_map_title }}
<span>&#8943;</span><p class="tooltip-info tooltip" title="{{ @AdminIps_map_title_tooltip }}"><include href="images/icons/information.svg" alt=''/>
</p>
</div>
</header>
<div class="main-graph">
<div id="world-map-markers"></div>
</div>
<div class="card-table">
<div class="content">
<table class="table" id="ips-table">
<thead>
<tr>
<th class="tooltip ip-ip-col" title="{{ @Base_table_column_ip_tooltip }}">{{ @Base_table_column_ip }}</th>
<th class="tooltip ip-country-col" title="{{ @Base_table_column_ip_country_tooltip }}">{{ @Base_table_column_country }}</th>
<th class="tooltip ip-asn-col" title="{{ @Base_table_column_asn_tooltip }}">{{ @Base_table_column_asn }}</th>
<th class="tooltip ip-newtwork-col" title="{{ @Base_table_column_netname_tooltip }}">{{ @Base_table_column_netname }}</th>
<th class="tooltip ip-ip-type-col" title="{{ @Base_table_column_ip_type_tooltip }}">{{ @Base_table_column_ip_type }}</th>
<th class="tooltip ip-cnt-col" title="{{ @Base_table_column_total_actions_tooltip_ips }}">{{ @Base_table_column_total_actions }}</th>
<th class="tooltip ip-cnt-col" title="{{ @Base_table_column_total_users_tooltip_ips }}">{{ @Base_table_column_total_users }}</th>
{***<!-- TODO: return alert_list back in next release -->
<!-- <th class="tooltip yes-no-col" title="{{ @Base_table_column_global_alert_tooltip }}">{{ @Base_table_column_global_alert }}</th> -->***}
</tr>
</thead>
</table>
</div>
</div>
</div>

View File

@@ -0,0 +1,17 @@
<check if="{{ isset(@ERROR_MESSAGE) }}">
<set MESSAGE_TYPE="is-warning" />
<set MESSAGE="{{ @ERROR_MESSAGE }}" />
<set TS="{{ @ERROR_MESSAGE_TIMESTAMP }}" />
<div class="notification {{ @MESSAGE_TYPE }}" id="error-procedure-notification"><span class="faded"
>[{{ \Utils\ElapsedDate::short(@TS) }}]</span>&nbsp;&nbsp;{{ @MESSAGE | raw }}<button class="delete"
></button></div>
</check>
<check if="{{ isset(@SUCCESS_MESSAGE) }}">
<set MESSAGE_TYPE="is-primary" />
<set MESSAGE="{{ @SUCCESS_MESSAGE }}" />
<set TS="{{ @SUCCESS_MESSAGE_TIMESTAMP }}" />
<div class="notification {{ @MESSAGE_TYPE }}" id="success-procedure-notification"><span class="faded"
>[{{ \Utils\ElapsedDate::short(@TS) }}]</span>&nbsp;&nbsp;{{ @MESSAGE | raw }}<button class="delete"
></button></div>
</check>

View File

@@ -0,0 +1,30 @@
<div class="details-card is-hidden" id="device-card">
<header class="card-header">
<div class="card-header-title">
{{ @Device_details_placeholder }}<button class="reenrichment-button is-hidden" type="submit" disabled>
<p class="tooltip" title="{{ @Base_page_enrich_entity }}"><img src="/ui/images/icons/reload.svg"></p>
</button><button class="delete"></button>
</div>
</header>
<div class="content is-hidden">
<div class="subheader">{{ @Details_device_created }}</div>
<div id="details_device_created"></div>
<div class="subheader">{{ @Details_device }}</div>
<span id="details_device"></span>
<div class="subheader">{{ @Details_browser_name }}</div>
<span id="details_browser"></span>
<div class="subheader">{{ @Details_lang }}</div>
<div id="details_lang"></div>
<div class="subheader">{{ @Details_ua_modified }}</div>
<div id="details_ua_modified"></div>
<div class="subheader">{{ @Details_ua }}</div>
<div id="details_ua"></div>
</div>
<div class="text-loader is-hidden"></div>
</div>

View File

@@ -0,0 +1,80 @@
<div class="details-card is-hidden" id="email-card">
<header class="card-header">
<div class="card-header-title">
{{ @Email_details_placeholder }}<button class="reenrichment-button is-hidden" type="submit" disabled>
<p class="tooltip" title="{{ @Base_page_enrich_entity }}"><img src="/ui/images/icons/reload.svg"></p>
</button><button class="delete"></button>
</div>
</header>
<div class="content is-hidden">
<div class="subheader">{{ @Details_email }}</div>
<div id="details_email"></div>
<div class="subheader">{{ @Details_reputation }}</div>
<div id="details_reputation"></div>
<div class="subheader">{{ @Details_free_provider }}</div>
<div id="details_free_email_provider"></div>
{***
<div class="subheader">{{ @Details_no_profiles }}</div>
<div id="details_profiles"></div>
***}
<div class="subheader">{{ @Details_no_data_breach }}</div>
<div id="details_data_breach"></div>
<div class="subheader">{{ @Details_data_breaches }}</div>
<div id="details_data_breaches"></div>
<div class="subheader">{{ @Details_disposable_domains }}</div>
<div id="details_disposable_domains"></div>
<div class="subheader">{{ @Details_blockemails }}</div>
<div id="details_blockemails"></div>
<div class="subheader">{{ @Details_email_fraud_detected }}</div>
<div id="details_fraud_detected"></div>
<div class="subheader">{{ @Details_domain_contact_email }}</div>
<div id="details_domain_contact_email"></div>
<div class="subheader">{{ @Details_earliest_breach }}</div>
<div id="details_earliest_breach"></div>
{***
<!-- TODO: return alert_list back in next release -->
<!-- <div class="subheader">{{ @Details_email_alert_list}}</div> -->
<!-- <div id="details_alert_list"></div> -->
***}
<hr />
<div class="subheader">{{ @Details_domain }}</div>
<div id="details_domain"></div>
<div class="subheader">{{ @Details_tranco_rank }}</div>
<div id="details_tranco_rank"></div>
<div class="subheader">{{ @Details_domain_unavailable }}</div>
<div id="details_disabled"></div>
<div class="subheader">{{ @Details_mx_record }}</div>
<div id="details_mx_record"></div>
<div class="subheader">{{ @Details_domain_return_code }}</div>
<div id="details_return_code"></div>
<div class="subheader">{{ @Details_blockdomain }}</div>
<div id="details_blockdomains"></div>
<div class="subheader">{{ @Details_closest_snapshot }}</div>
<div id="details_closest_snapshot"></div>
<div class="subheader">{{ @Details_domain_creation_date }}</div>
<div id="details_creation_date"></div>
<div class="subheader">{{ @Details_domain_expiration_date }}</div>
<div id="details_expiration_date"></div>
</div>
<div class="text-loader is-hidden"></div>
</div>

View File

@@ -0,0 +1,208 @@
<div class="details-card is-hidden" id="event-card">
<header class="card-header">
<p class="card-header-title">{{@Details_placeholder}}<button class="delete"></button></p>
</header>
<div class="content is-hidden">
<div class="subheader">{{ @Details_event_time }}</div>
<div id="details_event_time"></div>
<div class="subheader">{{ @Details_user_id }}</div>
<div id="details_user_id"></div>
<div class="subheader">{{ @Details_accounttitle }}</div>
<div id="details_accounttitle"></div>
<div class="subheader">{{ @Details_reviewed_status }}</div>
<div id="details_reviewed_status"></div>
<div class="subheader">{{ @Details_latest_decision }}</div>
<div id="details_latest_decision"></div>
<div class="subheader">{{ @Details_firstname }}</div>
<div id="details_firstname"></div>
<div class="subheader">{{ @Details_lastname }}</div>
<div id="details_lastname"></div>
<hr />
<div class="subheader">{{ @Details_score_details }}</div>
<div id="details_score_details" class="score-details-content"></div>
<hr />
<div class="subheader">{{ @Details_event_type }}</div>
<div id="details_event_type_name"></div>
<div class="subheader">{{ @Details_event_http_method }}</div>
<div id="details_event_http_method"></div>
<div class="subheader">{{ @Details_event_http_code }}</div>
<div id="details_event_http_code"></div>
<div class="subheader">{{ @Details_url }}</div>
<div id="details_url"></div>
<div class="subheader">{{ @Details_query }}</div>
<div id="details_query"></div>
<div class="subheader">{{ @Details_referer }}</div>
<div id="details_referer"></div>
<div class="subheader">{{ @Details_payload }}</div>
<div id="details_payload"></div>
<hr />
<check if="{{ @ALLOW_EMAIL_PHONE }}">
<div class="subheader">{{ @Details_email }}</div>
<div id="details_email"></div>
<div class="subheader">{{ @Details_reputation }}</div>
<div id="details_reputation"></div>
{***
<div class="subheader">{{ @Details_no_profiles }}</div>
<div id="details_email_profiles"></div>
***}
<div class="subheader">{{ @Details_free_provider }}</div>
<div id="details_free_provider"></div>
<div class="subheader">{{ @Details_no_data_breach }}</div>
<div id="details_data_breach"></div>
<div class="subheader">{{ @Details_data_breaches }}</div>
<div id="details_data_breaches"></div>
<div class="subheader">{{ @Details_blockemails }}</div>
<div id="details_blockemails"></div>
<div class="subheader">{{ @Details_email_fraud_detected }}</div>
<div id="details_email_fraud_detected"></div>
{***
<!-- TODO: return alert_list back in next release -->
<!-- <div class="subheader">{{ @Details_email_alert_list}}</div> -->
<!-- <div id="details_email_alert_list"></div> -->
***}
<div class="subheader">{{ @Details_email_earliest_breach }}</div>
<div id="details_email_earliest_breach"></div>
<hr />
<div class="subheader">{{ @Details_domain }}</div>
<div id="details_domain"></div>
<div class="subheader">{{ @Details_tranco_rank }}</div>
<div id="details_tranco_rank"></div>
<div class="subheader">{{ @Details_domain_return_code }}</div>
<div id="details_domain_return_code"></div>
<div class="subheader">{{ @Details_domain_unavailable }}</div>
<div id="details_domain_disabled"></div>
<div class="subheader">{{ @Details_blockdomain }}</div>
<div id="details_blockdomains"></div>
<div class="subheader">{{ @Details_disposable_domains }}</div>
<div id="details_disposable_domains"></div>
<div class="subheader">{{ @Details_domain_creation_date }}</div>
<div id="details_domain_creation_date"></div>
<div class="subheader">{{ @Details_domain_expiration_date }}</div>
<div id="details_domain_expiration_date"></div>
<hr />
<div class="subheader">{{ @Details_phone }}</div>
<div id="details_phonenumber"></div>
<div class="subheader">{{ @Details_phone_country }}</div>
<div id="details_phone_country"></div>
<div class="subheader">{{ @Details_carrier_name }}</div>
<div id="details_carrier_name"></div>
<div class="subheader">{{ @Details_phone_type }}</div>
<div id="details_phone_type"></div>
{***
<div class="subheader">{{ @Details_no_profiles }}</div>
<div id="details_phone_profiles"></div>
***}
<div class="subheader">{{ @Details_user_count}}</div>
<div id="details_phone_users"></div>
<div class="subheader">{{ @Details_phone_invalid }}</div>
<div id="details_phone_invalid"></div>
<div class="subheader">{{ @Details_phone_fraud_detected }}</div>
<div id="details_phone_fraud_detected"></div>
{***
<!-- TODO: return alert_list back in next release -->
<!-- <div class="subheader">{{ @Details_phone_alert_list}}</div> -->
<!-- <div id="details_phone_alert_list"></div> -->
***}
<hr />
</check>
{***
<div class="subheader">{{ @Details_device_id }}</div>
<div id="details_device_id"></div>
***}
<div class="subheader">{{ @Details_device_created }}</div>
<div id="details_device_created"></div>
<div class="subheader">{{ @Details_device }}</div>
<span id="details_device"></span>
<div class="subheader">{{ @Details_browser_name }}</div>
<span id="details_browser"></span>
<div class="subheader">{{ @Details_lang }}</div>
<div id="details_lang"></div>
<div class="subheader">{{ @Details_ua_modified }}</div>
<div id="details_ua_modified"></div>
<div class="subheader">{{ @Details_ua }}</div>
<div id="details_ua"></div>
<hr />
<div class="subheader">{{ @Details_ip}}</div>
<div id="details_ip"></div>
<div class="subheader">{{ @Details_cidr}}</div>
<div id="details_cidr"></div>
<div class="subheader">{{ @Details_event_count}}</div>
<div id="details_ip_events"></div>
<div class="subheader">{{ @Details_user_count}}</div>
<div id="details_ip_users"></div>
<div class="subheader">{{ @Details_asn}}</div>
<div id="details_asn"></div>
<div class="subheader">{{ @Details_country}}</div>
<div id="details_ip_country"></div>
<div class="subheader">{{ @Details_netname}}</div>
<div id="details_netname"></div>
<div class="subheader">{{ @Details_ip_type}}</div>
<div id="details_ip_type"></div>
<div class="subheader">{{ @Details_ip_spamlist}}</div>
<div id="details_ip_spamlist"></div>
{***
<!-- TODO: return alert_list back in next release -->
<!-- <div class="subheader">{{ @Details_ip_alert_list}}</div> -->
<!-- <div id="details_ip_alert_list"></div> -->
***}
</div>
<div class="text-loader is-hidden"></div>
</div>

View File

@@ -0,0 +1,27 @@
<div class="details-card is-hidden" id="logbook-card">
<header class="card-header">
<p class="card-header-title">{{@Details_placeholder}}<button class="delete"></button></p>
</header>
<div class="content is-hidden">
<div class="subheader">{{ @Details_source_ip }}</div>
<div id="details_ip"></div>
<div class="subheader">{{ @Details_local_timestamp }}</div>
<div id="details_started"></div>
<div class="subheader">{{ @Details_error_type }}</div>
<div id="details_error_type"></div>
<div class="subheader">{{ @Details_request }}</div>
<div id="details_request"></div>
<div class="subheader">{{ @Details_error_text }}</div>
<div id="details_error_text"></div>
<hr />
<div id="details_mailto"></div>
</div>
<div class="text-loader is-hidden"></div>
</div>

View File

@@ -0,0 +1,50 @@
<div class="details-card is-hidden" id="phone-card">
<header class="card-header">
<div class="card-header-title">
{{ @Phone_details_placeholder }}<button class="reenrichment-button is-hidden" type="submit" disabled>
<p class="tooltip" title="{{ @Base_page_enrich_entity }}"><img src="/ui/images/icons/reload.svg"></p></button><button class="delete"></button>
</div>
</header>
<div class="content is-hidden">
<div class="subheader">{{ @Details_phone }}</div>
<div id="details_phone_number"></div>
<div class="subheader">{{ @Details_phone_invalid }}</div>
<div id="details_invalid"></div>
<div class="subheader">{{ @Details_phone_country }}</div>
<div id="details_country"></div>
<div class="subheader">{{ @Details_carrier_name }}</div>
<div id="details_carrier_name"></div>
<div class="subheader">{{ @Details_phone_type }}</div>
<div id="details_type"></div>
<div class="subheader">{{ @Details_user_count}}</div>
<div id="details_shared"></div>
<div class="subheader">{{ @Details_phone_fraud_detected }}</div>
<div id="details_fraud_detected"></div>
<div class="subheader">{{ @Details_phone_national }}</div>
<div id="details_phone_national"></div>
{***
<div class="subheader">{{ @Details_no_profiles }}</div>
<div id="details_profiles"></div>
***}
{***
<!-- TODO: return alert_list back in next release -->
<!-- <div class="subheader">{{ @Details_phone_alert_list}}</div> -->
<!-- <div id="details_alert_list"></div> -->
***}
<hr />
<div class="subheader">{{ @Details_shared_users }}</div>
<div id="details_shared_users"></div>
</div>
<div class="text-loader is-hidden"></div>
</div>

View File

@@ -0,0 +1,19 @@
<div class="details-card is-hidden" id="close-account-popup">
<header class="card-header">
<p class="card-header-title">
{{ @AdminSettings_account_deletion_warning_header }}<button class="delete"></button>
</p>
</header>
<div class="content is-hidden">
<p class="level-left">{{ @AdminSettings_delete_account_warning_message_par1 }}</p>
<br>
<p class="level-left">{{ @AdminSettings_delete_account_warning_message_par2 }}</p>
</div>
<footer class="pop-up-footer">
<div class="control">
<button class="button is-danger" id="confirm-close-account-button">{{ @AdminSettings_submit_account_deletion_button }}</button>
</div>
</footer>
</div>

View File

@@ -0,0 +1,17 @@
<div class="details-card is-hidden" id="enrich-all-popup">
<header class="card-header">
<p class="card-header-title">{{ @AdminApi_manual_enrichment_popup_header }}<button class="delete"></button></p>
</header>
<div class="content is-hidden">
<p class="level-left">{{ @Details_calculation }}</p>
<div id="details_calculation"></div>
</div>
<div class="text-loader is-hidden"></div>
<footer class="pop-up-footer">
<div class="control">
<button class="button is-primary" id="confirm-enrich-all-button" {{ @SCHEDULED_FOR_ENRICHMENT ? 'disabled' : '' }}>{{ @AdminApi_manual_enrichment_popup_submit_button }}</button>
</div>
</footer>
</div>

View File

@@ -0,0 +1 @@
<a class="reload" href="#"><include href="images/icons/reload.svg" alt=''/></a>

View File

@@ -0,0 +1,3 @@
<div class="score-details">
<div class="score-details-content"><span class="loading-background">&#8943;</span></div>
</div>

View File

@@ -0,0 +1,9 @@
<check if="{{ isset(@SYSTEM_MESSAGES) && count(@SYSTEM_MESSAGES) }}">
{~ foreach (@SYSTEM_MESSAGES as @id=>@message): ~}
<div class="notification system {{ @message.class ?? 'is-warning'}}" id="system-notification-{{ @id }}">
<span class="faded">[{{ \Utils\ElapsedDate::short(@message.created_at) }}]</span>&nbsp;&nbsp;{{ @message.text | raw }}<button class="delete"></button>
</div>
{~ endforeach ~}
</check>
<div class="notification system is-danger is-hidden" id="client-error"></div>

Some files were not shown because too many files have changed in this diff Show More