import: timezone

This commit is contained in:
yuri
2017-02-08 14:42:20 +02:00
parent 13dfc90a1b
commit b69f829a3e
5 changed files with 30 additions and 3 deletions

View File

@@ -167,12 +167,18 @@ class Import extends \Espo\Core\Controllers\Record
throw new BadRequest();
}
$timezone = 'UTC';
if (isset($data['timezone'])) {
$timezone = $data['timezone'];
}
$importParams = array(
'headerRow' => !empty($data['headerRow']),
'fieldDelimiter' => $data['fieldDelimiter'],
'textQualifier' => $data['textQualifier'],
'dateFormat' => $data['dateFormat'],
'timeFormat' => $data['timeFormat'],
'timezone' => $timezone,
'personNameFormat' => $data['personNameFormat'],
'decimalMark' => $data['decimalMark'],
'currency' => $data['currency'],

View File

@@ -50,7 +50,8 @@
"Imported": "Imported",
"Duplicates": "Duplicates",
"Updated": "Updated",
"Skip searching for duplicates": "Skip searching for duplicates"
"Skip searching for duplicates": "Skip searching for duplicates",
"Timezone": "Timezone"
},
"messages": {
"utf8": "Should be UTF-8 encoded",

View File

@@ -655,8 +655,10 @@ class Import extends \Espo\Services\Record
}
break;
case Entity::DATETIME:
$dt = \DateTime::createFromFormat($dateFormat . ' ' . $timeFormat, $value);
$timezone = new \DateTimeZone(isset($params['timezone']) ? $params['timezone'] : 'UTC');
$dt = \DateTime::createFromFormat($dateFormat . ' ' . $timeFormat, $value, $timezone);
if ($dt) {
$dt->setTimezone(new \DateTimeZone('UTC'));
return $dt->format('Y-m-d H:i');
}
break;

View File

@@ -103,6 +103,20 @@
</select>
</div>
</div>
<div class="row">
<div class="col-sm-4 form-group">
</div>
<div class="col-sm-4 form-group">
<label class="control-label">{{translate 'Timezone' scope='Import'}}</label>
<select class="form-control" id="import-timezone">
{{#each timezoneList}}
<option value="{{./this}}">{{./this}}</option>
{{/each}}
</select>
</div>
<div class="col-sm-4 form-group">
</div>
</div>
<div class="row">
<div class="col-sm-4 form-group">
<label class="control-label">{{translate 'inIdle' scope='Import' category='messages'}}</label>

View File

@@ -90,7 +90,8 @@ Espo.define('views/import/step1', 'view', function (Dep) {
{key: "hh:mma", value: '11:00pm'},
{key: "hh:mm A", value: '11:00 PM'},
{key: "hh:mmA", value: '11:00PM'}
]
],
timezoneList: this.getMetadata().get(['entityDefs', 'Settings', 'fields', 'timeZone', 'options'])
};
},
@@ -102,6 +103,7 @@ Espo.define('views/import/step1', 'view', function (Dep) {
textQualifier: '"',
dateFormat: 'YYYY-MM-DD',
timeFormat: 'HH:mm',
timezone: 'UTC',
decimalMark: '.',
personNameFormat: 'f l',
};
@@ -123,6 +125,7 @@ Espo.define('views/import/step1', 'view', function (Dep) {
this.formData.textQualifier = $('#import-text-qualifier').val();
this.formData.dateFormat = $('#import-date-format').val();
this.formData.timeFormat = $('#import-time-format').val();
this.formData.timezone = $('#import-timezone').val();
this.formData.decimalMark = $('#import-decimal-mark').val();
this.formData.currency = $('#import-currency').val();
this.formData.personNameFormat = $('#import-person-name-format').val();
@@ -151,6 +154,7 @@ Espo.define('views/import/step1', 'view', function (Dep) {
$('#import-text-qualifier').val(this.formData.textQualifier);
$('#import-date-format').val(this.formData.dateFormat);
$('#import-time-format').val(this.formData.timeFormat);
$('#import-timezone').val(this.formData.timezone);
$('#import-decimal-mark').val(this.formData.decimalMark);
$('#import-person-name-format').val(this.formData.personNameFormat);