[MERGE] forward port branch 11.0 up to a69f117bbf

This commit is contained in:
Christophe Simonis
2018-10-10 14:40:01 +02:00
9 changed files with 185 additions and 38 deletions
+39 -26
View File
@@ -427,6 +427,10 @@ var FieldDate = InputField.extend({
this._super.apply(this, arguments);
// use the session timezone when formatting dates
this.formatOptions.timezone = true;
this.datepickerOptions = _.defaults(
this.nodeOptions.datepicker || {},
{defaultDate: this.value}
);
},
/**
* In edit mode, instantiates a DateWidget datepicker and listen to changes.
@@ -491,13 +495,7 @@ var FieldDate = InputField.extend({
* @private
*/
_makeDatePicker: function () {
return new datepicker.DateWidget(
this,
_.defaults(
this.nodeOptions.datepicker || {},
{defaultDate: this.value}
)
);
return new datepicker.DateWidget(this, this.datepickerOptions);
},
/**
@@ -515,6 +513,17 @@ var FieldDate = InputField.extend({
var FieldDateTime = FieldDate.extend({
supportedFieldTypes: ['datetime'],
/**
* @override
*/
init: function () {
this._super.apply(this, arguments);
if (this.value) {
var offset = this.getSession().getTZOffset(this.value);
var displayedValue = this.value.clone().add(offset, 'minutes');
this.datepickerOptions.defaultDate = displayedValue;
}
},
//--------------------------------------------------------------------------
// Private
//--------------------------------------------------------------------------
@@ -545,10 +554,8 @@ var FieldDateTime = FieldDate.extend({
* @private
*/
_makeDatePicker: function () {
var value = this.value && this.value.clone().add(this.getSession().getTZOffset(this.value), 'minutes');
return new datepicker.DateTimeWidget(this, {defaultDate: value});
return new datepicker.DateTimeWidget(this, this.datepickerOptions);
},
/**
* Set the datepicker to the right value rather than the default one.
*
@@ -1314,19 +1321,23 @@ var FieldPdfViewer = FieldBinaryFile.extend({
},
/**
* @private
* @param {string} [fileURI] file URI if specified
* @returns {string} the pdf viewer URI
*/
_getURI: function () {
var queryObj = {
model: this.model,
field: this.name,
id: this.res_id,
};
_getURI: function (fileURI) {
var page = this.recordData[this.name + '_page'] || 1;
var queryString = $.param(queryObj);
var url = encodeURIComponent('/web/image?' + queryString);
if (!fileURI) {
var queryObj = {
model: this.model,
field: this.name,
id: this.res_id,
};
var queryString = $.param(queryObj);
fileURI = '/web/image?' + queryString
}
fileURI = encodeURIComponent(fileURI);
var viewerURL = '/web/static/lib/pdfjs/web/viewer.html?file=';
return viewerURL + url + '#page=' + page;
return viewerURL + fileURI + '#page=' + page;
},
/**
* @private
@@ -1370,14 +1381,16 @@ var FieldPdfViewer = FieldBinaryFile.extend({
*/
on_file_change: function (ev) {
this._super.apply(this, arguments);
var files = ev.target.files;
if (!files || files.length === 0) {
return;
}
// TOCheck: is there requirement to fallback on FileReader if browser don't support URL
var fileURI = URL.createObjectURL(files[0]);
if (this.PDFViewerApplication) {
var files = ev.target.files;
if (!files || files.length === 0) {
return;
}
var file = files[0];
// TOCheck: is there requirement to fallback on FileReader if browser don't support URL
this.PDFViewerApplication.open(URL.createObjectURL(file), 0);
this.PDFViewerApplication.open(fileURI, 0);
} else {
this.$('.o_pdfview_iframe').attr('src', this._getURI(fileURI));
}
},
/**