chore: Update copyright year from 2025 to 2026 across core files

- Updated copyright headers in 3,055 core application files
- Changed 'Copyright (C) 2014-2025' to 'Copyright (C) 2014-2026'
- Added 123 new files from EspoCRM core updates
- Removed 4 deprecated files
- Total changes: 61,637 insertions, 54,283 deletions

This is a routine maintenance update for the new year 2026.
This commit is contained in:
2026-02-07 16:05:21 +01:00
parent 6a8a4a2882
commit 127fa6503b
6468 changed files with 564781 additions and 31179 deletions

View File

@@ -0,0 +1,16 @@
<div class="row">
<div class="col-sm-3 col-xs-3">
<select data-name="salutation{{ucName}}" class="form-control">
{{options salutationOptions salutationValue field='salutationName' scope=scope}}
</select>
</div>
<div class="col-sm-5 col-xs-5">
<input type="text" class="form-control" data-name="first{{ucName}}" value="{{firstValue}}" placeholder="{{translate 'First Name'}}"{{#if firstMaxLength}} maxlength="{{firstMaxLength}}"{{/if}} autocomplete="espo-first{{ucName}}">
</div>
<div class="col-sm-4 col-xs-4">
<input type="text" class="form-control" data-name="middle{{ucName}}" value="{{middleValue}}" placeholder="{{translate 'Middle Name'}}"{{#if middleMaxLength}} maxlength="{{middleMaxLength}}"{{/if}} autocomplete="espo-middle{{ucName}}">
</div>
<div class="col-sm-12 col-xs-12">
<input type="text" class="form-control" data-name="last{{ucName}}" value="{{lastValue}}" placeholder="{{translate 'Last Name'}}"{{#if lastMaxLength}} maxlength="{{lastMaxLength}}"{{/if}} autocomplete="espo-last{{ucName}}">
</div>
</div>

View File

@@ -0,0 +1,16 @@
<div class="row">
<div class="col-sm-3 col-xs-3">
<select data-name="salutation{{ucName}}" class="form-control">
{{options salutationOptions salutationValue field='salutationName' scope=scope}}
</select>
</div>
<div class="col-sm-9 col-xs-9">
<input type="text" class="form-control" data-name="last{{ucName}}" value="{{lastValue}}" placeholder="{{translate 'Last Name'}}"{{#if lastMaxLength}} maxlength="{{lastMaxLength}}"{{/if}} autocomplete="espo-last{{ucName}}">
</div>
<div class="col-sm-6 col-xs-6">
<input type="text" class="form-control" data-name="first{{ucName}}" value="{{firstValue}}" placeholder="{{translate 'First Name'}}"{{#if firstMaxLength}} maxlength="{{firstMaxLength}}"{{/if}} autocomplete="espo-first{{ucName}}">
</div>
<div class="col-sm-6 col-xs-6">
<input type="text" class="form-control" data-name="middle{{ucName}}" value="{{middleValue}}" placeholder="{{translate 'Middle Name'}}"{{#if middleMaxLength}} maxlength="{{middleMaxLength}}"{{/if}} autocomplete="espo-middle{{ucName}}">
</div>
</div>

View File

@@ -0,0 +1,13 @@
<div class="row">
<div class="col-sm-3 col-xs-3">
<select data-name="salutation{{ucName}}" class="form-control">
{{options salutationOptions salutationValue field='salutationName' scope=scope}}
</select>
</div>
<div class="col-sm-5 col-xs-5">
<input type="text" class="form-control" data-name="last{{ucName}}" value="{{lastValue}}" placeholder="{{translate 'Last Name'}}"{{#if lastMaxLength}} maxlength="{{lastMaxLength}}"{{/if}} autocomplete="espo-last{{ucName}}">
</div>
<div class="col-sm-4 col-xs-4">
<input type="text" class="form-control" data-name="first{{ucName}}" value="{{firstValue}}" placeholder="{{translate 'First Name'}}"{{#if firstMaxLength}} maxlength="{{firstMaxLength}}"{{/if}} autocomplete="espo-first{{ucName}}">
</div>
</div>

View File

@@ -0,0 +1,13 @@
<div class="row">
<div class="col-sm-3 col-xs-3">
<select data-name="salutation{{ucName}}" class="form-control">
{{options salutationOptions salutationValue field='salutationName' scope=scope}}
</select>
</div>
<div class="col-sm-4 col-xs-4">
<input type="text" class="form-control" data-name="first{{ucName}}" value="{{firstValue}}" placeholder="{{translate 'First Name'}}"{{#if firstMaxLength}} maxlength="{{firstMaxLength}}"{{/if}} autocomplete="espo-first{{ucName}}">
</div>
<div class="col-sm-5 col-xs-5">
<input type="text" class="form-control" data-name="last{{ucName}}" value="{{lastValue}}" placeholder="{{translate 'Last Name'}}"{{#if lastMaxLength}} maxlength="{{lastMaxLength}}"{{/if}} autocomplete="espo-last{{ucName}}">
</div>
</div>

View File

@@ -0,0 +1,167 @@
<h4>{{translate 'Step 1' scope='Import'}}</h4>
<div class="panel panel-default">
<div class="panel-heading"><h4 class="panel-title">{{translate 'What to Import?' scope='Import'}}</h4></div>
<div class="panel-body panel-body-form">
<div class="row">
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Entity Type' scope='Import'}}</label>
<div data-name="entityType" class="field">
{{{entityTypeField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'File (CSV)' scope='Import'}}</label>
<div>
<label class="attach-file-label">
<span class="btn btn-default btn-icon">
<span class="fas fa-paperclip"></span>
</span>
<input type="file" id="import-file" accept=".csv" class="file">
</label>
<div class="import-file-name"></div>
</div>
<div class="text-muted import-file-info">{{translate 'utf8' category='messages' scope='Import'}}</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'What to do?' scope='Import'}}</label>
<div data-name="action" class="field">
{{{actionField}}}
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading"><h4 class="panel-title">{{translate 'Properties' scope='Import'}}</h4></div>
<div class="panel-body panel-body-form">
<div id="import-properties">
<div class="row">
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Header Row' scope='Import'}}</label>
<div data-name="headerRow" class="field">
{{{headerRowField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Person Name Format' scope='Import'}}</label>
<div data-name="personNameFormat" class="field">
{{{personNameFormatField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<div class="pull-right">
<button
class="btn btn-link hidden"
data-action="saveAsDefault"
>{{translate 'saveAsDefault' category='strings' scope='Import'}}</button>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Field Delimiter' scope='Import'}}</label>
<div data-name="delimiter" class="field">
{{{delimiterField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Date Format' scope='Import'}}</label>
<div data-name="dateFormat" class="field">
{{{dateFormatField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Decimal Mark' scope='Import'}}</label>
<div data-name="decimalMark" class="field">
{{{decimalMarkField}}}
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Text Qualifier' scope='Import'}}</label>
<div data-name="textQualifier" class="field">
{{{textQualifierField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Time Format' scope='Import'}}</label>
<div data-name="timeFormat" class="field">
{{{timeFormatField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Currency' scope='Import'}}</label>
<div data-name="currency" class="field">
{{{currencyField}}}
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 form-group cell">
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Timezone' scope='Import'}}</label>
<div data-name="timezone" class="field">
{{{timezoneField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'phoneNumberCountry' category='params' scope='Import'}}</label>
<div data-name="phoneNumberCountry" class="field">
{{{phoneNumberCountryField}}}
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'inIdle' scope='Import' category='messages'}}</label>
<div data-name="idleMode" class="field">
{{{idleModeField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Skip searching for duplicates' scope='Import'}}</label>
<div data-name="skipDuplicateChecking" class="field">
{{{skipDuplicateCheckingField}}}
</div>
</div>
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Silent Mode' scope='Import'}}</label>
<div data-name="silentMode" class="field">
{{{silentModeField}}}
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 form-group cell">
<label class="control-label">{{translate 'Run Manually' scope='Import' category='labels'}}</label>
<div data-name="manualMode" class="field">
{{{manualModeField}}}
</div>
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading"><h4 class="panel-title">{{translate 'Preview' scope='Import'}}</h4></div>
<div class="panel-body">
<div id="import-preview" style="overflow-x: auto; overflow-y: hidden;">
{{translate 'No Data'}}
</div>
</div>
</div>
<div style="padding-bottom: 10px;" class="clearfix">
{{#if entityList.length}}
<button
class="btn btn-primary btn-s-wide pull-right hidden"
data-action="next"
>{{translate 'Next' scope='Import'}}</button>
{{/if}}
</div>

View File

@@ -0,0 +1,12 @@
<div class="form-group">
<a
role="button"
tabindex="0"
class="remove-filter pull-right"
data-name="{{name}}"
>{{#unless notRemovable}}<i class="fas fa-times"></i>{{/unless}}</a>
<label class="control-label small" data-name="{{name}}">{{translate name category='fields' scope=scope}}</label>
<div class="field" data-name="{{name}}">{{{field}}}</div>
</div>

View File

@@ -0,0 +1,15 @@
{{#each rateValues}}
<div class="input-group">
<span class="input-group-addon radius-left" style="width: 25%">1 {{@key}} = </span>
<span class="input-group-item">
<input
class="form-control"
type="text"
data-currency="{{@key}}"
value="{{./this}}"
style="text-align: right;"
>
</span>
<span class="input-group-addon radius-right" style="width: 22%">{{../baseCurrency}}</span>
</div>
{{/each}}

View File

@@ -0,0 +1,7 @@
<p class="credit small">&copy; 2025
<a
href="https://www.espocrm.com"
title="Powered by EspoCRM"
rel="noopener" target="_blank"
tabindex="-1"
>EspoCRM, Inc.</a></p>

View File

@@ -0,0 +1,39 @@
<div class="row">
<div class="cell col-sm-12 form-group" data-name="post">
<div class="field" data-name="post">{{{postField}}}</div>
</div>
</div>
<div class="row post-control{{#if interactiveMode}} hidden{{/if}}">
<div class="col-sm-7 form-group">
<div class="floated-row clearfix">
{{#if interactiveMode}}
<div>
<button
type="button"
class="btn btn-primary btn-xs-wide post pull-left"
>{{translate 'Post'}}</button>
</div>
{{/if}}
<div>
<div class="field" style="display: inline-block;" data-name="attachments">{{{attachmentsField}}}</div>
</div>
</div>
</div>
<div class="col-sm-5">
<div class="form-group">
<div class="cell" data-name="targetType">
<label class="control-label">{{translate 'to' category='otherFields' scope='Note'}}</label>
<div class="field" data-name="targetType">{{{targetTypeField}}}</div>
</div>
<div class="cell" data-name="users">
<div class="field" data-name="users">{{{usersField}}}</div>
</div>
<div class="cell" data-name="teams">
<div class="field" data-name="teams">{{{teamsField}}}</div>
</div>
<div class="cell" data-name="portals">
<div class="field" data-name="portals">{{{portalsField}}}</div>
</div>
</div>
</div>
</div>