Version 4.3.6

This commit is contained in:
Neo committed 2025-12-19 05:49:12 -08:00
1 parent fe1acf984a
commit 1a0c7fd3c2
609 files changed
+14707 -5726

No files matched your search

+267 -188
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<theme name="Default" author_name="Invision Power Services, Inc" author_url="https://www.invisioncommunity.com">
<field sc_key="cm_store_view" sc_type="Select" sc_multiple="0" sc_updated="1510679502" sc_app="nexus" sc_default="grid" sc_tab_key="custom" sc_show_in_vse="0" sc_title="themesetting_cm_store_view" sc_order="11" sc_condition="">[{&quot;key&quot;:&quot;grid&quot;,&quot;value&quot;:&quot;Grid&quot;},{&quot;key&quot;:&quot;list&quot;,&quot;value&quot;:&quot;List&quot;}]</field>
<field sc_key="subscription_active_color" sc_type="Color" sc_multiple="0" sc_updated="1519743529" sc_app="nexus" sc_default="#3d6594" sc_tab_key="frontendcolors" sc_show_in_vse="0" sc_title="themesetting_subscription_active" sc_order="42" sc_condition="">[]</field>
<field sc_key="cm_store_view" sc_type="Select" sc_multiple="0" sc_updated="1522241852" sc_app="nexus" sc_default="grid" sc_tab_key="custom" sc_show_in_vse="0" sc_title="themesetting_cm_store_view" sc_order="11" sc_condition="">[{&quot;key&quot;:&quot;grid&quot;,&quot;value&quot;:&quot;Grid&quot;},{&quot;key&quot;:&quot;list&quot;,&quot;value&quot;:&quot;List&quot;}]</field>
<field sc_key="subscription_active_color" sc_type="Color" sc_multiple="0" sc_updated="1527640594" sc_app="nexus" sc_default="#3d6594" sc_tab_key="frontendcolors" sc_show_in_vse="0" sc_title="themesetting_subscription_active" sc_order="42" sc_condition="">[]</field>
<template template_group="billingagreements" template_name="view" template_data="$billingAgreement, $purchases, $transactions" template_location="admin" template_app="nexus"><![CDATA[{{if $billingAgreement->status() == $billingAgreement::STATUS_ACTIVE and !$billingAgreement->next_cycle}}
<p class="ipsMessage ipsMessage_warning">{lang="billing_agreement_run_failed" sprintf="$billingAgreement->acpUrl()->setQueryString( 'do', 'reconcile' )"}</p>
{{endif}}
@@ -709,7 +709,7 @@
<section class='ipsBox ipsSpacer_top'>
<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="order_review"}</h2>
<div class='ipsPad'>
<a href='{$invoice->url()->setQueryString( 'do', 'printout' )}' target="_blank" class='ipsJS_show ipsButton ipsButton_light ipsButton_verySmall ipsPos_right'>{lang="order_invoice_print"}</a>
<a href='{$invoice->url()->setQueryString( 'do', 'printout' )}' target="_blank" rel='noopener' class='ipsJS_show ipsButton ipsButton_light ipsButton_verySmall ipsPos_right'>{lang="order_invoice_print"}</a>
<h2 class='ipsType_pageTitle'>{lang="order"} #{$invoice->id}</h2>
<hr class='ipsHr'>
<div class='ipsGrid ipsGrid_collapsePhone ipsSpacer_top'>
@@ -1350,11 +1350,11 @@
<div class="cDonateProgressBar_progress" style="width:{expression="100/$goal->goal*$goal->current"}%"></div>
</div>
<p class="ipsType_center ipsType_normal">
<strong>{lang="donate_progress" htmlsprintf="new \IPS\nexus\Money( $goal->current, $goal->currency ), new \IPS\nexus\Money( $goal->goal, $goal->currency )"}</strong>
<strong>{lang="donate_progress" sprintf="new \IPS\nexus\Money( $goal->current, $goal->currency ), new \IPS\nexus\Money( $goal->goal, $goal->currency )"}</strong>
</p>
{{else}}
<p class="ipsType_center ipsType_normal">
<strong>{lang="donate_sofar" htmlsprintf="new \IPS\nexus\Money( $goal->current, $goal->currency )"}</strong>
<strong>{lang="donate_sofar" sprintf="new \IPS\nexus\Money( $goal->current, $goal->currency )"}</strong>
</p>
{{endif}}
</div>
@@ -1373,7 +1373,7 @@
<template template_group="clients" template_name="invoice" template_data="$invoice" template_location="front" template_app="nexus"><![CDATA[
<div class='ipsBox_alt'>
<div class='ipsPos_right ipsType_right ipsType_normal'>
<a href='{$invoice->url()->setQueryString( 'printout', 'true' )}' target="_blank" class='ipsButton ipsButton_verySmall ipsButton_light'>{lang="order_invoice_print"}</a><br>
<a href='{$invoice->url()->setQueryString( 'printout', 'true' )}' target="_blank" rel='noopener' class='ipsButton ipsButton_verySmall ipsButton_light'>{lang="order_invoice_print"}</a><br>
{{if $invoice->po}}
{lang="invoice_po_number"}: {$invoice->po} <a href="{$invoice->url()->setQueryString( array( 'do' => 'poNumber' ) )}" data-ipsDialog data-ipsDialog-title='{lang="order_po_number_dialog"}' class='ipsType_small' title='{lang="order_po_number"}'>{lang="edit"}</a>
{{else}}
@@ -1567,7 +1567,7 @@
</p>
</div>
{{if $shipment->trackingUrl()}}
<a href="{$shipment->trackingUrl()}" class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_fullWidth' target="_blank">{lang="order_track_delivery"}</a>
<a href="{$shipment->trackingUrl()}" class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_fullWidth' target="_blank" rel='noopener'>{lang="order_track_delivery"}</a>
{{endif}}
{{elseif $shipment->status === $shipment::STATUS_PENDING}}
<h3 class='ipsType_large ipsType_reset'>{lang="sstatus_{$shipment->status}"}</h3>
@@ -1801,9 +1801,16 @@
<strong>{lang="transaction_paid" sprintf="$thisTransaction->amount, ( $thisTransaction->method ) ? $thisTransaction->method->_title : \IPS\Member::loggedIn()->language()->get('account_credit')"}</strong>
&nbsp;&nbsp;<span class='ipsType_light ipsType_noBreak'>{datetime="$thisTransaction->date"}</span>
</p>
<p class='ipsType_medium ipsType_reset'>
{lang="transaction_part_refunded" sprintf="$thisTransaction->partial_refund"}
</p>
{{if $thisTransaction->partial_refund->amount->isGreaterThanZero()}}
<p class='ipsType_medium ipsType_reset'>
{lang="transaction_part_refunded" sprintf="$thisTransaction->partial_refund"}
</p>
{{endif}}
{{if $thisTransaction->credit->amount->isGreaterThanZero()}}
<p class='ipsType_medium ipsType_reset'>
{lang="transaction_part_credited" sprintf="$thisTransaction->credit"}
</p>
{{endif}}
{{if $thisTransaction->gw_id}}
<p class='ipsType_small ipsType_light ipsType_reset'>
{lang="payment_ref"}: {$thisTransaction->gw_id}
@@ -2066,11 +2073,11 @@
<div class='ipsGrid'>
<div class='ipsGrid_span6'>
<h3 class='ipsType_minorHeading'>{lang="referral_html"}</h3>
<input type='text' class='ipsField_fullWidth' value="&lt;a href='{$url}'&gt;&lt;img src='{$banner->url}' alt='{setting="board_name"}'&gt;&lt;/a&gt;">
<input type='text' class='ipsField_fullWidth' value="&lt;a href='{$url}'&gt;&lt;img src='{file="$banner->url" extension="nexus_ReferralBanners"}' alt='{setting="board_name"}'&gt;&lt;/a&gt;">
</div>
<div class='ipsGrid_span6'>
<h3 class='ipsType_minorHeading'>{lang="referral_bbcode"}</h3>
<input type='text' class='ipsField_fullWidth' value="[url='{$url}'][img]{$banner->url}[/img][/url]">
<input type='text' class='ipsField_fullWidth' value="[url='{$url}'][img]{file="$banner->url" extension="nexus_ReferralBanners"}[/img][/url]">
</div>
</div>
</div>
@@ -2136,20 +2143,21 @@
</div>
</div>]]></template>
<template template_group="customers" template_name="accountInformationOverview" template_data="$customer, $sparkline, $referredBy, $primaryBillingAddress, $addressCount" template_location="admin" template_app="nexus"><![CDATA[<div class="ipsPad">
{{if $sparkline }}
<div id='elCustomerIncome'>{$sparkline|raw}</div>
<p class='ipsType_reset ipsType_light ipsType_small ipsSpacer_top ipsSpacer_half'>
{lang="revenue_past_12_months"}
</p>
{{endif}}
{{if $referredBy}}
<hr class='ipsHr'>
<p class='ipsType_medium ipsType_center ipsType_light ipsType_blendLinks'>
{lang="referred_by"} <a href='{$referredBy->acpUrl()}' title='{$referredBy->email}'>{$referredBy->cm_name}</a>
</p>
{{endif}}
{{if \IPS\Member::loggedIn()->hasAcpRestriction( 'nexus', 'customers', 'customers_view_credit' )}}
<hr class='ipsHr'>
{{foreach \IPS\nexus\Money::currencies() as $currency}}
<div class='ipsAreaBackground{{if isset( $customer->cm_credits[ $currency ] ) && $customer->cm_credits[ $currency ]->amount->isGreaterThanZero()}}_positive{{endif}} ipsPad_half ipsType_center ipsType_large cCustomerCredit'>
<h2 class='ipsType_reset ipsType_minorHeading'>{lang="client_credit"}</h2>
@@ -2162,8 +2170,9 @@
<p class='ipsType_reset'><a href='{url="app=nexus&module=customers&controller=view&id={$customer->member_id}&do=credits"}' data-ipsDialog data-ipsDialog-title='{lang="edit_credit"}' data-ipsDialog-size='narrow' class='ipsType_small'>{lang="edit"}</a></p>
{{endif}}
</div>
{{endforeach}}
{{endforeach}}
{{endif}}
<hr class='ipsHr'>
<h2 class='ipsType_sectionHead ipsType_large'>{lang="primary_address"}</h2>
@@ -2491,7 +2500,7 @@
<div class='ipsSpacer_bottom ipsSpacer_double'>
<div class='ipsBox cNotesBox'>
<h2 class='ipsBox_titleBar'>
<a href='{url="app=core&module=members&controller=members&do=editBlock&block=IPS\\nexus\\extensions\\core\\MemberACPProfileBlocks\\Notes&id={$customer->member_id}"}' data-ipsDialog data-ipsDialog-title='{lang="customer_notes"}' class='ipsPos_right ipsType_medium'>
<a href='{url="app=core&module=members&controller=members&do=lazyBlock&block=IPS\\nexus\\extensions\\core\\MemberACPProfileBlocks\\Notes&id={$customer->member_id}"}' data-ipsDialog data-ipsDialog-title='{lang="customer_notes"}' class='ipsPos_right ipsType_medium'>
{lang="manage_notes"}
</a>
{lang="num_customer_notes_uc" pluralize="$noteCount"} ({$noteCount})
@@ -2503,7 +2512,7 @@
</div>
{{else}}
<div class='ipsPad ipsType_light cCustomerNotes_none ipsSpacer_bottom'>
<a href='{url="app=core&module=members&controller=members&do=editBlock&block=IPS\\nexus\\extensions\\core\\MemberACPProfileBlocks\\Notes&id={$customer->member_id}"}' data-ipsDialog data-ipsDialog-title='{lang="customer_notes"}' class='ipsPos_right ipsType_medium'>
<a href='{url="app=core&module=members&controller=members&do=lazyBlock&block=IPS\\nexus\\extensions\\core\\MemberACPProfileBlocks\\Notes&id={$customer->member_id}"}' data-ipsDialog data-ipsDialog-title='{lang="customer_notes"}' class='ipsPos_right ipsType_medium'>
{lang="manage_notes"}
</a>
{lang="num_customer_notes_uc" pluralize="$noteCount"} ({$noteCount})
@@ -3600,7 +3609,7 @@
{{endif}}
</td>
<td><a href='{url="app=nexus&module=customers&controller=purchases&do=view&id={$data['ps_id']}"}'>{$data['account_username']}</a></td>
<td><a href="{expression="\IPS\Http\Url::external( 'http://' . $data['account_domain'] )->makeSafeForAcp()"}" target="_blank">{$data['account_domain']}</a></td>
<td><a href="{expression="\IPS\Http\Url::external( 'http://' . $data['account_domain'] )->makeSafeForAcp()"}" target="_blank" rel='noopener'>{$data['account_domain']}</a></td>
<td>{filesize="$data['disklimit']" decimal="true"}</td>
<td>{filesize="$data['diskused']" decimal="true"}</td>
</tr>
@@ -4384,7 +4393,7 @@
</div>
</div>]]></template>
<template template_group="livesearch" template_name="customer" template_data="$member" template_location="admin" template_app="nexus"><![CDATA[<li class='ipsPhotoPanel ipsPhotoPanel_mini ipsPad_half ipsClearfix' data-role='result'>
<a href="{$member->acpUrl()}" class="ipsUserPhoto ipsUserPhoto_mini" target="_blank">
<a href="{$member->acpUrl()}" class="ipsUserPhoto ipsUserPhoto_mini" target="_blank" rel='noopener'>
<img src='{$member->photo}'>
</a>
<div>
@@ -4547,30 +4556,53 @@
</div>
</div>]]></template>
<template template_group="promotion" template_name="referralBanner" template_data="$url" template_location="global" template_app="nexus"><![CDATA[<img src="{file="$url" extension="nexus_ReferralBanners"}" class="ipsImage">]]></template>
<template template_group="purchases" template_name="advertisement" template_data="$purchase, $advertisement" template_location="admin" template_app="nexus"><![CDATA[<div class="ipsAdvertisement">
<ul class="ipsType_center ipsList_reset">
{{foreach json_decode( $advertisement->images, TRUE ) as $image}}
<li>
<div class="ipsAdvertisement_large ipsAreaBackground_light ipsPad_half">
<div class='ipsAreaBackground_reset ipsPad_half'>
<a href="{$advertisement->link}"><img src="{$image}" class="ipsImage ipsContained"></a>
</div>
<div class="ipsGrid ipsPad_half">
<div class="ipsGrid_span6">
<span class="ipsType_veryLarge">{$advertisement->impressions}{{if $advertisement->maximum_unit == 'i' and $advertisement->maximum_value != -1}} / {$advertisement->maximum_value}{{endif}}</span>
<br>
{lang="impressions"}
</div>
<div class="ipsGrid_span6">
<span class="ipsType_veryLarge">{$advertisement->clicks}{{if $advertisement->maximum_unit == 'c' and $advertisement->maximum_value != -1}} / {$advertisement->maximum_value}{{endif}}</span>
<br>
{lang="clicks"}
</div>
<template template_group="purchases" template_name="advertisement" template_data="$purchase, $advertisement" template_location="admin" template_app="nexus"><![CDATA[<div class="ipsGrid ipsPad_half ipsType_center ipsSpacer_bottom">
<div class="ipsGrid_span6">
<span class="ipsType_veryLarge">{$advertisement->impressions}{{if $advertisement->maximum_unit == 'i' and $advertisement->maximum_value != -1}} / {$advertisement->maximum_value}{{endif}}</span>
<br>
{lang="impressions"}
</div>
<div class="ipsGrid_span6">
<span class="ipsType_veryLarge">{$advertisement->clicks}{{if $advertisement->maximum_unit == 'c' and $advertisement->maximum_value != -1}} / {$advertisement->maximum_value}{{endif}}</span>
<br>
{lang="clicks"}
</div>
</div>
<div class="ipsAdvertisement ipsAreaBackground_reset ipsType_center">
{{$images = array_filter( json_decode( $advertisement->images, TRUE ) );}}
{{$link = \IPS\Http\Url::external( $advertisement->link )->makeSafeForAcp();}}
{{if count( $images ) > 1}}
<div class='ipsTabs ipsClearfix acpFormTabBar' id='elTabs_adView' data-ipsTabBar data-ipsTabBar-contentArea='#ipsTabs_content_adView' data-ipsTabBar-updateURL='false'>
<a href='#elTabs_adView' data-action='expandTabs'><i class='fa fa-caret-down'></i></a>
<ul role='tablist'
{{foreach $images as $key => $image}}
<li>
<a href='#ipsTabs_elTabs_adView_adView_tab_{$key}_panel' id='adView_tab_{$key}' class="ipsTabs_item {{if $key == "large"}}ipsTabs_activeItem{{endif}}" title='{$key}' role="tab" aria-selected="{{if $key == "large"}}true{{else}}false{{endif}}">
{{if $key === 'large'}}{lang="ad_image"}{{else}}{lang="ad_image_{$key}"}{{endif}}
</a>
</li>
{{endforeach}}
</ul>
</div>
<section id='ipsTabs_content_adView' class='acpFormTabContent'>
{{foreach $images as $key => $image}}
<div id='ipsTabs_elTabs_adView_adView_tab_{$key}_panel' class="ipsTabs_panel" aria-labelledby="adView_tab_{$key}" aria-hidden="false">
<div class="ipsPad">
<a href="{$link}" target='_blank' rel='nofollow noopener'><img src="{file="$image" extension="$advertisement->storageExtension()"}" class="ipsImage ipsContained"></a>
</div>
</div>
</li>
{{endforeach}}
</ul>
{{endforeach}}
</section>
{{else}}
<div class="ipsPad">
{{foreach $images as $key => $image}}
<a href="{$link}" target='_blank' rel='nofollow noopener'><img src="{file="$image" extension="$advertisement->storageExtension()"}" class="ipsImage ipsContained"></a>
{{endforeach}}
</div>
{{endif}}
<div class="ipsType_small"><a href="{$link}">{$advertisement->link}</a></div>
&nbsp;
</div>]]></template>
<template template_group="purchases" template_name="advertisement" template_data="$purchase, $advertisement" template_location="front" template_app="nexus"><![CDATA[{{if $advertisement->active == -1}}
<p class="ipsMessage ipsMessage_info">{lang="advertisement_pending_approval"}</p>
@@ -4932,7 +4964,7 @@
<a href="{$account->ftpLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth'>{lang="account_ftp"}</a>
</li>
<li class='ipsGrid_span6'>
<a href="{$account->controlPanelLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth' target="_blank">{lang="account_{$account->server->type}_control_panel"}</a>
<a href="{$account->controlPanelLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth' target="_blank" rel='noopener'>{lang="account_{$account->server->type}_control_panel"}</a>
</li>
</ul>
</div>
@@ -4988,7 +5020,7 @@
</div>
</div>
<p class='ipsType_center ipsType_normal'>
<strong><a href="{expression="\IPS\Http\Url::external( 'http://' . $account->domain )->makeSafeForAcp()"}" target="_blank">{$account->domain}</a> <i class='fa fa-external-link'></i></strong>
<strong><a href="{expression="\IPS\Http\Url::external( 'http://' . $account->domain )->makeSafeForAcp()"}" target="_blank" rel='noopener'>{$account->domain}</a> <i class='fa fa-external-link'></i></strong>
</p>
</div>
</div>]]></template>
@@ -5024,7 +5056,7 @@
<a href="{$account->ftpLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth'>{lang="account_ftp"}</a>
</li>
<li class='ipsGrid_span6'>
<a href="{$account->controlPanelLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth' target="_blank">{lang="account_{$account->server->type}_control_panel"}</a>
<a href="{$account->controlPanelLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth' target="_blank" rel='noopener'>{lang="account_{$account->server->type}_control_panel"}</a>
</li>
</ul>
</div>
@@ -5075,7 +5107,7 @@
</div>
<p class='ipsType_center ipsType_normal'>
<strong><a href="http://{$account->domain}" target="_blank">{$account->domain}</a> <i class='fa fa-external-link'></i></strong>
<strong><a href="http://{$account->domain}" target="_blank" rel='noopener'>{$account->domain}</a> <i class='fa fa-external-link'></i></strong>
{{if settings.nexus_hosting_allow_change_domain}}
<br>
<a href="{$purchase->url()->setQueryString( array( 'do' => 'extra', 'act' => 'changedomain' ) )}" class="ipsType_small">({lang="change_domain"})</a>
@@ -5123,12 +5155,12 @@
<a href="{$account->ftpLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth'>{lang="account_ftp"}</a>
</li>
<li class='ipsGrid_span6'>
<a href="{$account->controlPanelLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth' target="_blank">{lang="account_{$account->server->type}_control_panel"}</a>
<a href="{$account->controlPanelLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth' target="_blank" rel='noopener'>{lang="account_{$account->server->type}_control_panel"}</a>
</li>
</ul>
</div>
<p class='ipsType_center ipsType_normal'>
<strong><a href="{expression="\IPS\Http\Url::external( 'http://' . $account->domain )->makeSafeForAcp()"}" target="_blank">{$account->domain}</a> <i class='fa fa-external-link'></i></strong>
<strong><a href="{expression="\IPS\Http\Url::external( 'http://' . $account->domain )->makeSafeForAcp()"}" target="_blank" rel='noopener'>{$account->domain}</a> <i class='fa fa-external-link'></i></strong>
</p>
</div>
{{else}}
@@ -5171,14 +5203,14 @@
<a href="{$account->ftpLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth'>{lang="account_ftp"}</a>
</li>
<li class='ipsGrid_span6'>
<a href="{$account->controlPanelLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth' target="_blank">{lang="account_{$account->server->type}_control_panel"}</a>
<a href="{$account->controlPanelLink()}" class='ipsButton ipsButton_primary ipsButton_verySmall ipsButton_fullWidth' target="_blank" rel='noopener'>{lang="account_{$account->server->type}_control_panel"}</a>
</li>
</ul>
</div>
</div>
<p class='ipsType_center ipsType_normal'>
<strong><a href="http://{$account->domain}" target="_blank">{$account->domain}</a> <i class='fa fa-external-link'></i></strong>
<strong><a href="http://{$account->domain}" target="_blank" rel='noopener'>{$account->domain}</a> <i class='fa fa-external-link'></i></strong>
</p>
</div>
</div>
@@ -5194,7 +5226,7 @@
<td class='cNexusSupportHeader_colInfo'>
<ul class='ipsList_inline'>
<li>
<i class='fa fa-globe'></i> &nbsp;<a href="{expression="\IPS\Http\Url::external( 'http://' . $account->domain )->makeSafeForAcp()"}" target="_blank">{$account->domain}</a>
<i class='fa fa-globe'></i> &nbsp;<a href="{expression="\IPS\Http\Url::external( 'http://' . $account->domain )->makeSafeForAcp()"}" target="_blank" rel='noopener'>{$account->domain}</a>
</li>
<li>
<i class='fa fa-server'></i> &nbsp;{$account->server->hostname}
@@ -5203,7 +5235,7 @@
<i class='fa fa-lock'></i> &nbsp;<span class="ipsType_monospace">{$account->username}</span> / <span class="ipsType_monospace">{$account->password}</span>
</li>
<li>
<a href="{$account->ftpLink()}">{lang="account_ftp"}</a> / <a href="{$account->controlPanelLink()}" target="_blank">{lang="account_{$account->server->type}_control_panel"}</a>
<a href="{$account->ftpLink()}">{lang="account_ftp"}</a> / <a href="{$account->controlPanelLink()}" target="_blank" rel='noopener'>{lang="account_{$account->server->type}_control_panel"}</a>
</li>
</ul>
</td>
@@ -5273,9 +5305,9 @@
{{endif}}
<div class='ipsDataItem_meta ipsType_medium ipsType_light'>
{{if $use['last_checked']}}
{lang="lkey_use_info" htmlsprintf="\IPS\DateTime::ts( $use['activated'] )->html(), $use['ip'], \IPS\DateTime::ts( $use['last_checked'] )->html()"}
{lang="lkey_use_info" htmlsprintf="\IPS\DateTime::ts( $use['activated'] )->html(), htmlspecialchars( $use['ip'], ENT_DISALLOWED, 'UTF-8', FALSE ), \IPS\DateTime::ts( $use['last_checked'] )->html()"}
{{else}}
{lang="lkey_use_info_nocheck" htmlsprintf="\IPS\DateTime::ts( $use['activated'] )->html(), $use['ip']"}
{lang="lkey_use_info_nocheck" htmlsprintf="\IPS\DateTime::ts( $use['activated'] )->html(), htmlspecialchars( $use['ip'], ENT_DISALLOWED, 'UTF-8', FALSE )"}
{{endif}}
</div>
</div>
@@ -5693,7 +5725,7 @@
{{endif}}
{{if $shipment->trackingUrl()}}
&middot;
<a href="{$shipment->trackingUrl()->makeSafeForAcp()}" target="_blank">{lang="track"}</a>
<a href="{$shipment->trackingUrl()->makeSafeForAcp()}" target="_blank" rel='noopener'>{lang="track"}</a>
{{endif}}
{{endif}}
</div>
@@ -5707,11 +5739,11 @@
<h2 class="ipsBox_title">{lang="shipment_label"}</h2>
<div class="ipsBox ipsPad">
{{if $shipment->label instanceof \IPS\Http\Url}}
<a href="{$shipment->label->makeSafeForAcp()}" target="_blank">
<a href="{$shipment->label->makeSafeForAcp()}" target="_blank" rel='noopener'>
<img src="{$shipment->label->makeSafeForAcp(TRUE)}" class="ipsImage">
</a>
{{else}}
<a class="ipsButton ipsButton_normal ipsButton_fullWidth ipsButton_small" href="{$shipment->acpUrl()->setQueryString( array( 'do' => 'printout', 'print' => 'apilabel' ) )}" target='_blank'>{lang="print_label"}</a>
<a class="ipsButton ipsButton_normal ipsButton_fullWidth ipsButton_small" href="{$shipment->acpUrl()->setQueryString( array( 'do' => 'printout', 'print' => 'apilabel' ) )}" target='_blank' rel='noopener'>{lang="print_label"}</a>
{{endif}}
</div>
{{if $easyPost and isset( $easyPost['tracker'] ) and count( $easyPost['tracker']['tracking_details'] )}}
@@ -5747,7 +5779,7 @@
<tbody>
{{foreach $shipment->items as $item}}
<tr>
<td>{$item['name']}</td>
<td class='ipsTable_wrap'>{$item['name']}</td>
<td>{$item['quantity']}</td>
</tr>
{{endforeach}}
@@ -5756,7 +5788,7 @@
<br>
<div class='ipsGrid ipsGrid_collapsePhone'>
<div class='ipsGrid_span6'>
<a class="ipsButton ipsButton_important ipsButton_fullWidth ipsButton_medium" href="{$shipment->acpUrl()->setQueryString( array( 'do' => 'printout', 'print' => 'packing_sheet' ) )}" target='_blank'>{lang="print_packing_sheet"}</a>
<a class="ipsButton ipsButton_important ipsButton_fullWidth ipsButton_medium" href="{$shipment->acpUrl()->setQueryString( array( 'do' => 'printout', 'print' => 'packing_sheet' ) )}" target='_blank' rel='noopener'>{lang="print_packing_sheet"}</a>
</div>
<div class='ipsGrid_span6'>
<a class="ipsButton ipsButton_primary ipsButton_fullWidth ipsButton_medium" href="{$shipment->invoice->acpUrl()}">{lang="invoice_view"}</a>
@@ -5782,7 +5814,7 @@
</div>
</div>
<br>
<a class="ipsButton ipsButton_primary ipsButton_fullWidth ipsButton_medium" href="{$shipment->acpUrl()->setQueryString( array( 'do' => 'printout', 'print' => 'label' ) )}" target='_blank'>{lang="print_label"}</a>
<a class="ipsButton ipsButton_primary ipsButton_fullWidth ipsButton_medium" href="{$shipment->acpUrl()->setQueryString( array( 'do' => 'printout', 'print' => 'label' ) )}" target='_blank' rel='noopener'>{lang="print_label"}</a>
</div>
</div>
</div>]]></template>
@@ -5866,7 +5898,7 @@
{{endforeach}}
<hr class='ipsHr'>
<div class='cNexusCart_totals ipsType_right'>
{lang="subtotal"}: <span class='cNexusPrice'>{money="$subtotal"}</span>
{lang="subtotal"}: <span class='cNexusPrice'>{money="$subtotal" currency="$currency"}</span>
</div>
</div>
</div>
@@ -6592,7 +6624,7 @@
<h2 class='cNexusProduct_title ipsType_normal ipsType_unbold ipsType_reset ipsType_blendLinks'>
<a href="{$package->url()}" data-role='productLink' class='{{if $carousel}}ipsTruncate ipsTruncate_line{{endif}}'>{$package->_title}</a>
</h2>
<p class='ipsType_reset'>
<p class='ipsType_reset ipsTruncate ipsTruncate_line'>
<span data-role="price">{$package->priceToDisplay()|raw}</span>
</p>
{{if $package->physical}}
@@ -6722,7 +6754,7 @@
<li>
<div class="ipsTree_row ipsTree_noRoot">
<div class="ipsTree_rowData ipsClearfix">
<h4><a href="{url="app=nexus&module=store&controller=packages&subnode=1&do=form&id={$product->_id}"}" target="_blank">{$product->_title}</a></h4>
<h4><a href="{url="app=nexus&module=store&controller=packages&subnode=1&do=form&id={$product->_id}"}" target="_blank" rel='noopener'>{$product->_title}</a></h4>
</div>
</div>
</li>
@@ -6935,7 +6967,7 @@
<template template_group="subscription" template_name="disabled" template_data="" template_location="admin" template_app="nexus"><![CDATA[<p class="ipsType_large">{lang="nexus_subs_off_text"}</p>
<br>
<a href="{url="app=nexus&module=subscriptions&controller=subscriptions&do=enable"}" class="ipsButton ipsButton_positive">{lang="enable"}</a>]]></template>
<template template_group="subscription" template_name="packageLink" template_data="$package" template_location="admin" template_app="nexus"><![CDATA[<a href="{$package->url()}" target="_blank">{$package->_title}</a>]]></template>
<template template_group="subscription" template_name="packageLink" template_data="$package" template_location="admin" template_app="nexus"><![CDATA[<a href="{$package->url()}" target="_blank" rel='noopener'>{$package->_title}</a>]]></template>
<template template_group="subscription" template_name="profileSubscription" template_data="$member" template_location="front" template_app="nexus"><![CDATA[{{if $subscription = \IPS\nexus\Subscription::loadActiveByMember( $member )}}
<div class='cProfileSidebarBlock ipsSpacer_bottom'>
<a href='{url="app=nexus&module=subscriptions&controller=subscriptions" seoTemplate="nexus_subscriptions"}'>
@@ -6959,7 +6991,11 @@
<h2 class='ipsType_reset ipsType_large ipsType_blendLinks cSubscriptionsTitle'>
{$package->_title}
</h2>
<div class='cNexusPrice ipsSpacer_both'>{$package->priceBlurb()}</div>
<div class='cNexusPrice ipsSpacer_both'>{$package->priceBlurb()}
{{if \IPS\Member::loggedIn()->language()->checkKeyExists('nexus_tax_explain_val')}}
<span class='cNexusPrice_tax ipsType_light'>{lang="nexus_tax_explain_val"}</span>
{{endif}}
</div>
<div class="cSubscription_desc ipsType_richText ipsType_medium ipsSpacer_both">{$package->description}</div>
</div>
<div class='cSubscriptionInfo'>
@@ -7012,11 +7048,10 @@
</div>
</div>]]></template>
<template template_group="subscription" template_name="rowHtml" template_data="$package, $price, $active, $inactive" template_location="admin" template_app="nexus"><![CDATA[<div class="ipsPos_right ipsTree_row_cells">
<span class="ipsTree_row_cell ipsType_light"><a href="{url="app=nexus&module=subscriptions&controller=subscribers&advanced_search_submitted=1&nexus_sub_package_id={$package->id}&nexus_sub_active=1" csrf="true"}">{lang="nexus_sub_package_count_active" sprintf="$active"}</a></span>
<span class="ipsTree_row_cell ipsType_light"><a href="{url="app=nexus&module=subscriptions&controller=subscribers&advanced_search_submitted=1&nexus_sub_package_id={$package->id}&nexus_sub_active=1" csrf="true"}">{lang="nexus_sub_package_count_inactive" sprintf="$inactive"}</a></span>
<span class="ipsTree_row_cell ipsType_light"><a href="{url="app=nexus&module=subscriptions&controller=subscribers&advanced_search_submitted=1&nexus_sub_package_id={$package->id}&filter=nexus_subs_filter_active" csrf="true"}">{lang="nexus_sub_package_count_active" sprintf="$active"}</a></span>
<span class="ipsTree_row_cell ipsType_light"><a href="{url="app=nexus&module=subscriptions&controller=subscribers&advanced_search_submitted=1&nexus_sub_package_id={$package->id}&filter=nexus_subs_filter_inactive" csrf="true"}">{lang="nexus_sub_package_count_inactive" sprintf="$inactive"}</a></span>
<span class="ipsTree_row_cell ipsType_light">{$price}</span>
</div>
]]></template>
</div>]]></template>
<template template_group="subscription" template_name="rows" template_data="$table, $headers, $rows, $subscription" template_location="front" template_app="nexus"><![CDATA[{{if count( $rows )}}
{{foreach $rows as $row}}
<div class='cSubscriptionGrid {{if count( $rows ) == 1}}ipsGrid_span12{{elseif count( $rows ) == 2}}ipsGrid_span6{{else}}ipsGrid_span4{{endif}}'>
@@ -7109,7 +7144,7 @@
</ul>
{{endforeach}}
{{endif}}
<div class="ipsGrid ipsPad ipsSpacer_bottom">
<div class="ipsGrid ipsGrid_collapsePhone ipsPad ipsSpacer_bottom">
{{foreach $elements as $tabName => $collection}}
{{if $tabName != 'streams' and $tabName != 'title'}}
<div class="ipsGrid_span4">
@@ -7162,7 +7197,7 @@
</div>
</form>
</div>]]></template>
<template template_group="support" template_name="filterFormStream" template_data="$input, $options" template_location="admin" template_app="nexus"><![CDATA[<div class="ipsTabs ipsTabs_stretch ipsClearfix ipsJS_show acpFormTabBar cNexusStream_tabs" id='elSupportTabs'>
<template template_group="support" template_name="filterFormStream" template_data="$input, $options" template_location="admin" template_app="nexus"><![CDATA[<div class="ipsTabs ipsTabs_stretch ipsClearfix ipsJS_show acpFormTabBar cNexusStream_tabs" id='elSupportTabs' data-ipsTabBar data-ipsTabBar-disableNav data-ipsTabBar-contentArea='#elRequestsTabContent'>
<ul role="tablist">
<a href="#elSupportTabs" data-action='expandTabs'><i class='fa fa-caret-down'></i></a>
{{foreach $options as $stream}}
@@ -7465,34 +7500,34 @@
<div class='ipsAreaBackground_reset ipsPad'>
<p class='cTimelineAction'>
{{if $reply instanceof \IPS\nexus\Support\Reply}}
{{try { $request = \IPS\nexus\Support\Request::loadAndCheckPerms( $reply->request ); } catch( \OutOfRangeException $e ) { $request = NULL; } }}
<strong>{{if $reply->type == $reply::REPLY_HIDDEN}}{lang="request_added_note_u"}{{else}}{lang="request_replied_u"}{{endif}}</strong> {lang="support_history_to_req" sprintf="$reply->request"}
{{try { $request = \IPS\nexus\Support\Request::loadAndCheckPerms( $reply->request ); } catch( \OutOfRangeException $e ) { $request = NULL; } }}
<strong>{{if $reply->type == $reply::REPLY_HIDDEN}}{lang="request_added_note_u"}{{else}}{lang="request_replied_u"}{{endif}}</strong>
{lang="support_history_to_req" sprintf="$reply->request"}
{{else}}
{{$request = $reply->request;}}
{{if $reply->action === 'status'}}
<strong>{lang="support_history_status_1"}</strong> {lang="support_history_status_2" sprintf="$reply->request->id"} {template="status" group="support" params="$reply->new"}
{{elseif $reply->action === 'department'}}
<strong>{lang="support_history_department_1"}</strong> {lang="support_history_department_2" sprintf="$reply->request->id, $reply->new ? $reply->new->_title : '?'"}
{{elseif $reply->action === 'severity'}}
<strong>{lang="support_history_severity_1"}</strong> {lang="support_history_severity_2" sprintf="$reply->request->id, $reply->new ? $reply->new->_title : '?'"}
{{elseif $reply->action === 'purchase'}}
{{if $reply->new}}
{{$link = "<a href='{$reply->new->acpUrl()}'>{$reply->new->name}</a>";}}
<strong>{lang="support_history_purchase_1"}</strong> {lang="support_history_purchase_2" sprintf="$reply->request->id" htmlsprintf="$link"}
{{else}}
<strong>{lang="support_history_no_purchase_1"}</strong> {lang="support_history_no_purchase_2" sprintf="$reply->request->id"}
{{endif}}
{{elseif $reply->action === 'staff'}}
{{if $reply->new}}
<strong>{lang="support_history_assigned_1"}</strong> {lang="support_history_assigned_2" sprintf="$reply->request->id, $reply->new->name"}
{{else}}
<strong>{lang="support_history_unassigned_1"}</strong> {lang="support_history_unassigned_2" sprintf="$reply->request->id"}
{{endif}}
{{elseif $reply->action === 'split_away'}}
<strong>{lang="support_history_split_away_1"}</strong> {lang="support_history_split_away_2" sprintf="$reply->request->id"}
{{elseif $reply->action === 'split_new'}}
<strong>{lang="support_history_split_new_1"}</strong> {lang="support_history_split_new_2" sprintf="$reply->request->id"}
{{endif}}
{{$request = $reply->request;}}
{{if $reply->action === 'status'}}
<strong>{lang="support_history_status_1"}</strong> {lang="support_history_status_2" sprintf="$reply->request->id"} {template="status" group="support" params="$reply->new"}
{{elseif $reply->action === 'department'}}
<strong>{lang="support_history_department_1"}</strong> {lang="support_history_department_2" sprintf="$reply->request->id, $reply->new ? $reply->new->_title : '?'"}
{{elseif $reply->action === 'severity'}}
<strong>{lang="support_history_severity_1"}</strong> {lang="support_history_severity_2" sprintf="$reply->request->id, $reply->new ? $reply->new->_title : '?'"}
{{elseif $reply->action === 'purchase'}}
{{if $reply->new}}
<strong>{lang="support_history_purchase_1"}</strong> {lang="support_history_purchase_2" sprintf="$reply->request->id, $reply->new->acpUrl(), $reply->new->name"}
{{else}}
<strong>{lang="support_history_no_purchase_1"}</strong> {lang="support_history_no_purchase_2" sprintf="$reply->request->id"}
{{endif}}
{{elseif $reply->action === 'staff'}}
{{if $reply->new}}
<strong>{lang="support_history_assigned_1"}</strong> {lang="support_history_assigned_2" sprintf="$reply->request->id, $reply->new->name"}
{{else}}
<strong>{lang="support_history_unassigned_1"}</strong> {lang="support_history_unassigned_2" sprintf="$reply->request->id"}
{{endif}}
{{elseif $reply->action === 'split_away'}}
<strong>{lang="support_history_split_away_1"}</strong> {lang="support_history_split_away_2" sprintf="$reply->request->id"}
{{elseif $reply->action === 'split_new'}}
<strong>{lang="support_history_split_new_1"}</strong> {lang="support_history_split_new_2" sprintf="$reply->request->id"}
{{endif}}
{{endif}}
</p>
{{if $request}}
@@ -8022,8 +8057,7 @@
<i class='fa fa-exclamation'></i> &nbsp;&nbsp;{lang="reply_action_severity" sprintf="$comment->member->name, $comment->new ? $comment->new->_title : '?'"}
{{elseif $comment->action === 'purchase'}}
{{if $comment->new}}
{{$link = "<a href='{$comment->new->acpUrl()}'>{$comment->new->name}</a>";}}
<i class='fa fa-cube'></i> &nbsp;&nbsp;{lang="reply_action_associate" sprintf="$comment->member->name" htmlsprintf="$link"}
<i class='fa fa-cube'></i> &nbsp;&nbsp;{lang="reply_action_associate" sprintf="$comment->member->name, $comment->new->acpUrl(), $comment->new->name"}
{{else}}
<i class='fa fa-minus-circle'></i> &nbsp;&nbsp;{lang="reply_action_unassociate" sprintf="$comment->member->name"}
{{endif}}
@@ -8151,7 +8185,7 @@
<hr class='ipsHr'>
<p class='ipsType_reset ipsType_medium'>
{{if $noteCount = $request->supportAuthor()->noteCount()}}
<strong><a href='{url="app=core&module=members&controller=members&do=editBlock&block=IPS\\nexus\\extensions\\core\\MemberACPProfileBlocks\\Notes&id={$request->member}&support={$request->id}"}' data-ipsDialog data-ipsDialog-title="{lang="customer_notes"}">{lang="num_customer_notes" pluralize="$noteCount"}</a></strong>
<strong><a href='{url="app=core&module=members&controller=members&do=lazyBlock&block=IPS\\nexus\\extensions\\core\\MemberACPProfileBlocks\\Notes&id={$request->member}&support={$request->id}"}' data-ipsDialog data-ipsDialog-title="{lang="customer_notes"}">{lang="num_customer_notes" pluralize="$noteCount"}</a></strong>
{{else}}
{lang="num_customer_notes" pluralize="0"}
{{endif}}
@@ -8163,7 +8197,7 @@
{{if ( $request->member && \IPS\Member::loggedIn()->hasAcpRestriction( 'core', 'members', 'member_login' ) AND !\IPS\Member::load( $request->member )->isBanned() )}}
<p class='ipsType_reset ipsType_medium'>
<a href='{url="app=core&module=members&controller=members&do=login&id={$request->member}"}' target='_blank'>{lang="sign_in_as_customer"}</a>
<a href='{url="app=core&module=members&controller=members&do=login&id={$request->member}"}' target='_blank' rel='noopener'>{lang="sign_in_as_customer"}</a>
</p>
{{endif}}
</div>
@@ -8600,7 +8634,7 @@
<li><i class="fa fa-exclamation"></i> {$request->severity->_title}</li>
{{endif}}
<li><i class="fa fa-folder"></i> {$request->department->_title}</li>
<li><i class="fa fa-user"></i> {{if $staff = $request->staf}}{$staff->name}{{else}}{lang="unassigned"}{{endif}}</li>
<li><i class="fa fa-user"></i> {{if $staff = $request->staff}}{$staff->name}{{else}}{lang="unassigned"}{{endif}}</li>
</ul>
</div>
<br>
@@ -8621,7 +8655,7 @@
<div class="ipsJS_show" data-role="filterForm">
{$form|raw}
</div>
<div data-role='mainTable' class='ipsPad'>
<div data-role='mainTable' class='ipsPad' id='elRequestsTabContent'>
{{if $stream->temporary}}
<a class='ipsResponsive_showPhone ipsResponsive_block ipsButton ipsButton_veryVerySmall ipsButton_light ipsSpacer_half ipsButton_fullWidth ipsSpacer_bottom' href="{url="app=nexus&module=support&controller=requests&do=saveStream&id={$stream->id}"}" data-ipsMenu id="elSaveStream">{lang="save_this_stream"}</a>
{{elseif is_int( $stream->id )}}
@@ -9219,15 +9253,7 @@
<div class='cTransaction_info ipsType_normal'>
<h3 class="ipsType_sectionHead">
<strong>
{{if $transaction->method === 0}}
{{if $transaction->gw_id}}
{lang="tstatus_okay_set"}
{{else}}
{lang="tstatus_okay_credit"}
{{endif}}
{{else}}
{lang="tstatus_okay_set"}
{{endif}}
{lang="tstatus_okay_set"}
</strong>
</h3>
@@ -9253,25 +9279,35 @@
<template template_group="transactions" template_name="prfd" template_data="$transaction, $log" template_location="admin" template_app="nexus"><![CDATA[
<li class='ipsClearfix cTransaction_intermediate'>
<div class='cTransaction_icon ipsPos_left'>
<i class='fa fa-undo'></i>
{{if $log['to'] === 'credit'}}
<i class='fa fa-reply'></i>
{{else}}
<i class='fa fa-reply-all'></i>
{{endif}}
</div>
<div class='cTransaction_info ipsType_normal'>
<h3 class="ipsType_sectionHead">
<strong>
{lang="tstatus_prfd_set"}
{{if $log['to'] === 'credit'}}
{lang="tstatus_credited"}
{{else}}
{lang="tstatus_prfd_set"}
{{endif}}
</strong>
</h3>
<br>
<p class='ipsType_reset ipsType_large'>
<span class='cNexusPrice'>{money="$log['amount']" currency="$transaction->currency"}</span>
</p>
{{if isset( $log['amount'] )}}
{{if $transaction->amount->amount->compare( new \IPS\Math\Number( $log['amount'] ) ) !== 0}}
<p class='ipsType_reset ipsType_large'>
<span class='cNexusPrice'>{money="$log['amount']" currency="$transaction->currency"}</span>
</p>
{{endif}}
{{endif}}
{{if isset( $log['to'] )}}
{{if isset( $log['ref'] ) and $log['ref']}}
<p class='ipsType_reset ipsType_normal'>
{lang="transaction_refund_method"} {{if $log['to'] === 'gateway'}}{$transaction->method->_title}{{else}}{lang="refund_method_credit"}{{endif}}
{{if isset( $log['ref'] ) and $log['ref']}}
<br>{$log['ref']}
{{endif}}
{$log['ref']}
</p>
{{endif}}
{{if isset( $log['on'] ) and $log['on']}}
@@ -9307,22 +9343,23 @@
<template template_group="transactions" template_name="rfnd" template_data="$transaction, $log" template_location="admin" template_app="nexus"><![CDATA[
<li class='ipsClearfix cTransaction_negative'>
<div class='cTransaction_icon ipsPos_left'>
<i class='fa fa-undo'></i>
<i class='fa fa-reply-all'></i>
</div>
<div class='cTransaction_info ipsType_normal'>
<h3 class="ipsType_sectionHead">
<strong>
{lang="tstatus_rfnd_set"}
{{if $log['to'] === 'credit'}}
{lang="tstatus_credited"}
{{else}}
{lang="tstatus_rfnd_set"}
{{endif}}
</strong>
</h3>
<br>
{{if isset( $log['to'] )}}
{{if isset( $log['ref'] ) and $log['ref']}}
<p class='ipsType_reset ipsType_medium'>
{lang="transaction_refund_method"} {{if $log['to'] === 'gateway'}}{$transaction->method->_title}{{else}}{lang="refund_method_credit"}{{endif}}
{{if isset( $log['ref'] ) and $log['ref']}}
<br>{$log['ref']}
{{endif}}
{$log['ref']}
</p>
{{endif}}
{{if isset( $log['on'] ) and $log['on']}}
@@ -9336,7 +9373,7 @@
{{endif}}
</div>
</li>]]></template>
<template template_group="transactions" template_name="status" template_data="$status" template_location="admin" template_app="nexus"><![CDATA[<span class="ipsBadge ipsBadge_style{{if $status == \IPS\nexus\Transaction::STATUS_PAID or $status == \IPS\nexus\Transaction::STATUS_PART_REFUNDED}}4{{elseif $status == \IPS\nexus\Transaction::STATUS_HELD}}1{{elseif $status == \IPS\nexus\Transaction::STATUS_REVIEW or $status == \IPS\nexus\Transaction::STATUS_DISPUTED}}7{{elseif $status == \IPS\nexus\Transaction::STATUS_REFUSED}}5{{elseif $status == \IPS\nexus\Transaction::STATUS_REFUNDED}}2{{else}}6{{endif}}">
<template template_group="transactions" template_name="status" template_data="$status" template_location="admin" template_app="nexus"><![CDATA[<span class="ipsBadge ipsBadge_style{{if $status == \IPS\nexus\Transaction::STATUS_PAID}}4{{elseif $status == \IPS\nexus\Transaction::STATUS_HELD}}1{{elseif $status == \IPS\nexus\Transaction::STATUS_REVIEW or $status == \IPS\nexus\Transaction::STATUS_DISPUTED}}7{{elseif $status == \IPS\nexus\Transaction::STATUS_REFUSED}}5{{elseif $status == \IPS\nexus\Transaction::STATUS_REFUNDED or $status == \IPS\nexus\Transaction::STATUS_PART_REFUNDED}}2{{else}}6{{endif}}">
{lang="tstatus_{$status}"}
</span>]]></template>
<template template_group="transactions" template_name="stripeData" template_data="$response=NULL, $error=NULL" template_location="admin" template_app="nexus"><![CDATA[{{if isset( $response['outcome'] )}}
@@ -9360,17 +9397,17 @@
&nbsp;
{{endif}}
{{if $response['source']['card']['brand'] == 'Visa'}}
<i class="fa fa-cc-visa"></i>
<i class="fa fa-cc-visa" data-ipsTooltip title="{lang="card_type_visa"}"></i>
{{elseif $response['source']['card']['brand'] == 'MasterCard'}}
<i class="fa fa-cc-mastercard"></i>
<i class="fa fa-cc-mastercard" data-ipsTooltip title="{lang="card_type_mastercard"}"></i>
{{elseif $response['source']['card']['brand'] == 'Discover'}}
<i class="fa fa-cc-discover"></i>
<i class="fa fa-cc-discover" data-ipsTooltip title="{lang="card_type_discover"}"></i>
{{elseif $response['source']['card']['brand'] == 'American Express'}}
<i class="fa fa-cc-amex"></i>
<i class="fa fa-cc-amex" data-ipsTooltip title="{lang="card_type_american_express"}"></i>
{{elseif $response['source']['card']['brand'] == 'Diners Club'}}
<i class="fa fa-cc-diners-club"></i>
<i class="fa fa-cc-diners-club" data-ipsTooltip title="{lang="card_type_diners_club"}"></i>
{{elseif $response['source']['card']['brand'] == 'JCB'}}
<i class="fa fa-cc-jcb"></i>
<i class="fa fa-cc-jcb" data-ipsTooltip title="{lang="card_type_jcb"}"></i>
{{else}}
<i class="fa fa-credit-card"></i>
{{endif}}
@@ -9513,6 +9550,38 @@
{{endif}}
</div>
</li>]]></template>
<template template_group="transactions" template_name="undo_credit" template_data="$transaction, $log" template_location="admin" template_app="nexus"><![CDATA[
<li class='ipsClearfix cTransaction_intermediate'>
<div class='cTransaction_icon ipsPos_left'>
<i class='fa fa-forward'></i>
</div>
<div class='cTransaction_info ipsType_normal'>
<h3 class="ipsType_sectionHead">
<strong>
{lang="tstatus_credited_undo"}
</strong>
</h3>
<br>
{{if isset( $log['amount'] )}}
{{if $transaction->amount->amount->compare( new \IPS\Math\Number( $log['amount'] ) ) !== 0}}
<p class='ipsType_reset ipsType_large'>
<span class='cNexusPrice'>{money="$log['amount']" currency="$transaction->currency"}</span>
</p>
{{endif}}
{{endif}}
{{if isset( $log['on'] ) and $log['on']}}
{expression="\IPS\DateTime::ts( $log['on'] )"}
{{if isset( $log['by'] ) and $log['by']}}
<br>
<span class='ipsType_medium ipsType_light'>
{lang="byline_nodate" sprintf="\IPS\Member::load( $log['by'] )->name"}
</span>
{{endif}}
{{endif}}
</div>
</li>]]></template>
<template template_group="transactions" template_name="view" template_data="$transaction" template_location="admin" template_app="nexus"><![CDATA[
<div class='ipsColumns ipsColumns_collapsePhone'>
@@ -9521,10 +9590,18 @@
<h2 class='ipsType_minorHeading'>{lang="transaction_total"}</h2>
<span class="ipsType_veryLarge">{$transaction->amount}</span>
{{if $transaction->status === $transaction::STATUS_PART_REFUNDED}}
<div class="ipsSpacer_top">
<h2 class='ipsType_minorHeading'>{lang="amount_refunded"}</h2>
<span class="ipsType_large">{$transaction->partial_refund}</span>
</div>
{{if $transaction->partial_refund->amount->isGreaterThanZero()}}
<div class="ipsSpacer_top">
<h2 class='ipsType_minorHeading'>{lang="amount_refunded"}</h2>
<span class="ipsType_large">{$transaction->partial_refund}</span>
</div>
{{endif}}
{{if $transaction->credit->amount->isGreaterThanZero()}}
<div class="ipsSpacer_top">
<h2 class='ipsType_minorHeading'>{lang="amount_credited"}</h2>
<span class="ipsType_large">{$transaction->credit}</span>
</div>
{{endif}}
{{endif}}
<hr class='ipsHr'>
@@ -9896,7 +9973,7 @@
{{if !$transaction->fraud->minfraud_version or version_compare( $transaction->fraud->minfraud_version, '1.3' ) === -1}}
<br>
<span class="ipsType_warning">
<a href='{url="maxmind_version" ips="true"}' class="ipsType_blendLinks" target='_blank'>{lang="maxmind_upgrade_version"}</a>
<a href='{url="maxmind_version" ips="true"}' class="ipsType_blendLinks" target='_blank' rel='noopener'>{lang="maxmind_upgrade_version"}</a>
</span>
{{endif}}
</p>
@@ -9910,49 +9987,47 @@
<div class="ipsBox">
<div class='ipsPad'>
<ul class='ipsList_reset cTransaction ipsClearfix'>
{{if $transaction->method or $transaction->gw_id}}
<li class='ipsClearfix'>
<div class='cTransaction_icon ipsPos_left'>
<i class='fa fa-shopping-cart'></i>
</div>
<div class='cTransaction_info ipsType_normal'>
<h2 class='ipsType_sectionHead'>
<strong>
{{if $transaction->method}}
{{if in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_PENDING, \IPS\nexus\Transaction::STATUS_WAITING ) )}}
{lang="transaction_method_pending" sprintf="$transaction->method->_title"}
{{else}}
{lang="transaction_method" sprintf="$transaction->method->_title"}
{{endif}}
<li class='ipsClearfix'>
<div class='cTransaction_icon ipsPos_left'>
<i class='fa fa-shopping-cart'></i>
</div>
<div class='cTransaction_info ipsType_normal'>
<h2 class='ipsType_sectionHead'>
<strong>
{{if $transaction->method}}
{{if in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_PENDING, \IPS\nexus\Transaction::STATUS_WAITING ) )}}
{lang="transaction_method_pending" sprintf="$transaction->method->_title"}
{{else}}
{lang="payment_received"}
{lang="transaction_method" sprintf="$transaction->method->_title"}
{{endif}}
</strong>
</h2>
<p class='ipsType_reset'>
{$transaction->date}
{{else}}
{lang="tstatus_okay_credit"}
{{endif}}
</strong>
</h2>
<p class='ipsType_reset'>
{$transaction->date}
</p>
{{if $transaction->gw_id}}
<p class='ipsType_normal ipsType_reset'>
{lang="payment_reference"}: {{if $url = $transaction->method->gatewayUrl( $transaction )}}<a href="{$url->makeSafeForAcp()}" target="_blank" rel='noopener'>{$transaction->gw_id}</a>{{else}}{$transaction->gw_id}{{endif}}<br>
</p>
{{if $transaction->gw_id}}
<p class='ipsType_normal ipsType_reset'>
{lang="payment_reference"}: {{if $url = $transaction->method->gatewayUrl( $transaction )}}<a href="{$url->makeSafeForAcp()}" target="_blank">{$transaction->gw_id}</a>{{else}}{$transaction->gw_id}{{endif}}<br>
</p>
{{endif}}
{{if $extraData = $transaction->method->extraData( $transaction )}}
{$extraData|raw}
{{endif}}
{{if $transaction->billing_agreement}}
<p class='ipsType_normal ipsType_reset'>
<a href="{$transaction->billing_agreement->acpUrl()}" class="ipsType_blendLinks">{lang="billing_agreement" sprintf="$transaction->billing_agreement->gw_id"}</a><br>
</p>
{{endif}}
{{if $transaction->ip}}
<span class='ipsType_medium ipsType_light'>
<a class="ipsType_blendLinks" href="{url="app=core&module=members&controller=ip&ip={$transaction->ip}"}">{lang="transaction_ip" sprintf="$transaction->ip"}</a>
</span>
{{endif}}
</div>
</li>
{{endif}}
{{endif}}
{{if $transaction->method and $extraData = $transaction->method->extraData( $transaction )}}
{$extraData|raw}
{{endif}}
{{if $transaction->billing_agreement}}
<p class='ipsType_normal ipsType_reset'>
<a href="{$transaction->billing_agreement->acpUrl()}" class="ipsType_blendLinks">{lang="billing_agreement" sprintf="$transaction->billing_agreement->gw_id"}</a><br>
</p>
{{endif}}
{{if $transaction->ip}}
<span class='ipsType_medium ipsType_light'>
<a class="ipsType_blendLinks" href="{url="app=core&module=members&controller=ip&ip={$transaction->ip}"}">{lang="transaction_ip" sprintf="$transaction->ip"}</a>
</span>
{{endif}}
</div>
</li>
{{if $transaction->fraud_blocked}}
<li class='ipsClearfix'>
@@ -9991,8 +10066,9 @@
{lang="transaction_customer_since" sprintf="$transaction->member->joined->localeDate()"}<br>
{lang="transaction_spent" sprintf="$transaction->member->totalSpent()"}
</p>
{{if member.hasAcpRestriction( 'nexus', 'customers', 'customers_void' )}}
<a href="{url="{$transaction->member->acpUrl()->setQueryString( array( 'do' => 'void', 'rt' => $transaction->id ) )}"}" class="ipsButton ipsButton_light ipsButton_verySmall ipsSpacer_top" data-ipsDialog data-ipsDialog-title="{lang="void_account"}">{lang="void_account"}</a>
<a href="{url="app=nexus&module=customers&controller=view&do=void&id={$transaction->member->member_id}&rt={$transaction->id}"}" class="ipsButton ipsButton_light ipsButton_verySmall ipsSpacer_top" data-ipsDialog data-ipsDialog-title="{lang="void_account"}">{lang="void_account"}</a>
{{endif}}
</div>
</div>
@@ -10176,12 +10252,12 @@
<div class="cDonateProgressBar_progress" style="width:{expression="number_format( 100/$goal->goal*$goal->current, 2, '.', '')"}%"></div>
</div>
<span class="ipsType_light ipsType_small">
{lang="donate_progress" htmlsprintf="new \IPS\nexus\Money( $goal->current, $goal->currency ), new \IPS\nexus\Money( $goal->goal, $goal->currency )"}
{lang="donate_progress" sprintf="new \IPS\nexus\Money( $goal->current, $goal->currency ), new \IPS\nexus\Money( $goal->goal, $goal->currency )"}
</span>
</div>
{{else}}
<div class="ipsType_light ipsType_small">
{lang="donate_sofar" htmlsprintf="new \IPS\nexus\Money( $goal->current, $goal->currency )"}
{lang="donate_sofar" sprintf="new \IPS\nexus\Money( $goal->current, $goal->currency )"}
</div>
{{endif}}
</div>
@@ -10227,7 +10303,7 @@
{lang="pending_widthdrawals"}
</div>
</a>
</dli>
</li>
{{endif}}
{{if $openSupportRequests !== NULL}}
<li class="ipsDataItem">
@@ -10275,7 +10351,10 @@
<div class='ipsDataItem_main'>
<div class='cWidgetSubscription ipsPad_half'>
<div class="cWidgetSubscription_bg" style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $package->_image->url )"}" )'></div>
<span class='cWidgetSubscription_text'>{lang="nexus_subs_widget_title_and_price" sprintf="$package->_title, $package->priceBlurb()"}</span>
<span class='cWidgetSubscription_text'>
{lang="nexus_subs_widget_title_and_price" sprintf="$package->_title, $package->priceBlurb()"}
{{if \IPS\Member::loggedIn()->language()->checkKeyExists('nexus_tax_explain_val')}}<span class='cNexusPrice_tax ipsType_light'>{lang="nexus_tax_explain_val"}</span>{{endif}}
</span>
</div>
</div>
</a>