[DE][SSE] Fix Bug 36998
This commit is contained in:
parent
3657dad758
commit
19ce255bdf
|
@ -193,10 +193,12 @@ define([
|
||||||
_handleInput: function(state) {
|
_handleInput: function(state) {
|
||||||
if (this.handler) {
|
if (this.handler) {
|
||||||
if (this.cmbEncoding) {
|
if (this.cmbEncoding) {
|
||||||
var delimiter = this.cmbDelimiter ? this.cmbDelimiter.getValue() : null,
|
var encoding = (!this.cmbEncoding.isDisabled()) ? this.cmbEncoding.getValue() :
|
||||||
|
((this.settings && this.settings.asc_getCodePage()) ? this.settings.asc_getCodePage() : 0),
|
||||||
|
delimiter = this.cmbDelimiter ? this.cmbDelimiter.getValue() : null,
|
||||||
delimiterChar = (delimiter == -1) ? this.inputDelimiter.getValue() : null;
|
delimiterChar = (delimiter == -1) ? this.inputDelimiter.getValue() : null;
|
||||||
(delimiter == -1) && (delimiter = null);
|
(delimiter == -1) && (delimiter = null);
|
||||||
this.handler.call(this, this.cmbEncoding.getValue(), delimiter, delimiterChar);
|
this.handler.call(this, encoding, delimiter, delimiterChar);
|
||||||
} else {
|
} else {
|
||||||
this.handler.call(this, state, this.inputPwd.getValue());
|
this.handler.call(this, state, this.inputPwd.getValue());
|
||||||
}
|
}
|
||||||
|
@ -206,7 +208,7 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
initCodePages: function () {
|
initCodePages: function () {
|
||||||
var i, c, codepage, encodedata = [], listItems = [], length = 0;
|
var i, c, codepage, encodedata = [], listItems = [], length = 0, lcid_width = 0;
|
||||||
|
|
||||||
if (this.codepages) {
|
if (this.codepages) {
|
||||||
encodedata = [];
|
encodedata = [];
|
||||||
|
@ -215,218 +217,99 @@ define([
|
||||||
c = [];
|
c = [];
|
||||||
c[0] = codepage.asc_getCodePage();
|
c[0] = codepage.asc_getCodePage();
|
||||||
c[1] = codepage.asc_getCodePageName();
|
c[1] = codepage.asc_getCodePageName();
|
||||||
|
c[2] = codepage.asc_getLcid();
|
||||||
|
|
||||||
encodedata.push(c);
|
encodedata.push(c);
|
||||||
}
|
}
|
||||||
} else {
|
lcid_width = 50;
|
||||||
encodedata = [
|
|
||||||
[37, 'IBM EBCDIC (US-Canada)'],
|
|
||||||
[437, 'OEM United States'],
|
|
||||||
[500, 'IBM EBCDIC (International)'],
|
|
||||||
[708, 'Arabic (ASMO 708)'],
|
|
||||||
[720, 'Arabic (DOS)'],
|
|
||||||
[737, 'Greek (DOS)'],
|
|
||||||
[775, 'Baltic (DOS)'],
|
|
||||||
[850, 'Western European (DOS)'],
|
|
||||||
[852, 'Central European (DOS)'],
|
|
||||||
[855, 'OEM Cyrillic'],
|
|
||||||
[857, 'Turkish (DOS)'],
|
|
||||||
[858, 'OEM Multilingual Latin I'],
|
|
||||||
[860, 'Portuguese (DOS)'],
|
|
||||||
[861, 'Icelandic (DOS)'],
|
|
||||||
[862, 'Hebrew (DOS)'],
|
|
||||||
[863, 'French Canadian (DOS)'],
|
|
||||||
[864, 'Arabic (864) '],
|
|
||||||
[865, 'Nordic (DOS)'],
|
|
||||||
[866, 'Cyrillic (DOS)'],
|
|
||||||
[869, 'Greek, Modern (DOS)'],
|
|
||||||
[870, 'IBM EBCDIC (Multilingual Latin-2)'],
|
|
||||||
[874, 'Thai (Windows)'],
|
|
||||||
[875, 'IBM EBCDIC (Greek Modern)'],
|
|
||||||
[932, 'Japanese (Shift-JIS)'],
|
|
||||||
[936, 'Chinese Simplified (GB2312)'],
|
|
||||||
[949, 'Korean'],
|
|
||||||
[950, 'Chinese Traditional (Big5)'],
|
|
||||||
[1026, 'IBM EBCDIC (Turkish Latin-5)'],
|
|
||||||
[1047, 'IBM Latin-1'],
|
|
||||||
[1140, 'IBM EBCDIC (US-Canada-Euro)'],
|
|
||||||
[1141, 'IBM EBCDIC (Germany-Euro)'],
|
|
||||||
[1142, 'IBM EBCDIC (Denmark-Norway-Euro)'],
|
|
||||||
[1143, 'IBM EBCDIC (Finland-Sweden-Euro)'],
|
|
||||||
[1144, 'IBM EBCDIC (Italy-Euro)'],
|
|
||||||
[1145, 'IBM EBCDIC (Spain-Euro)'],
|
|
||||||
[1146, 'IBM EBCDIC (UK-Euro)'],
|
|
||||||
[1147, 'IBM EBCDIC (France-Euro)'],
|
|
||||||
[1148, 'IBM EBCDIC (International-Euro)'],
|
|
||||||
[1149, 'IBM EBCDIC (Icelandic-Euro)'],
|
|
||||||
[1200, 'Unicode'],
|
|
||||||
[1201, 'Unicode (Big-Endian)'],
|
|
||||||
[1250, 'Central European (Windows)'],
|
|
||||||
[1251, 'Cyrillic (Windows)'],
|
|
||||||
[1252, 'Western European (Windows)'],
|
|
||||||
[1253, 'Greek (Windows)'],
|
|
||||||
[1254, 'Turkish (Windows)'],
|
|
||||||
[1255, 'Hebrew (Windows) '],
|
|
||||||
[1256, 'Arabic (Windows) '],
|
|
||||||
[1257, 'Baltic (Windows)'],
|
|
||||||
[1258, 'Vietnamese (Windows)'],
|
|
||||||
[1361, 'Korean (Johab)'],
|
|
||||||
[10000, 'Western European (Mac)'],
|
|
||||||
[10001, 'Japanese (Mac)'],
|
|
||||||
[10002, 'Chinese Traditional (Mac)'],
|
|
||||||
[10003, 'Korean (Mac)'],
|
|
||||||
[10004, 'Arabic (Mac) '],
|
|
||||||
[10005, 'Hebrew (Mac)'],
|
|
||||||
[10006, 'Greek (Mac) '],
|
|
||||||
[10007, 'Cyrillic (Mac)'],
|
|
||||||
[10008, 'Chinese Simplified (Mac)'],
|
|
||||||
[10010, 'Romanian (Mac)'],
|
|
||||||
[10017, 'Ukrainian (Mac)'],
|
|
||||||
[10021, 'Thai (Mac)'],
|
|
||||||
[10029, 'Central European (Mac) '],
|
|
||||||
[10079, 'Icelandic (Mac)'],
|
|
||||||
[10081, 'Turkish (Mac)'],
|
|
||||||
[10082, 'Croatian (Mac)'],
|
|
||||||
[12000, 'Unicode (UTF-32)'],
|
|
||||||
[12001, 'Unicode (UTF-32 Big-Endian)'],
|
|
||||||
[20000, 'Chinese Traditional (CNS)'],
|
|
||||||
[20001, 'TCA Taiwan'],
|
|
||||||
[20002, 'Chinese Traditional (Eten)'],
|
|
||||||
[20003, 'IBM5550 Taiwan'],
|
|
||||||
[20004, 'TeleText Taiwan'],
|
|
||||||
[20005, 'Wang Taiwan'],
|
|
||||||
[20105, 'Western European (IA5)'],
|
|
||||||
[20106, 'German (IA5)'],
|
|
||||||
[20107, 'Swedish (IA5) '],
|
|
||||||
[20108, 'Norwegian (IA5) '],
|
|
||||||
[20127, 'US-ASCII'],
|
|
||||||
[20261, 'T.61 '],
|
|
||||||
[20269, 'ISO-6937'],
|
|
||||||
[20273, 'IBM EBCDIC (Germany)'],
|
|
||||||
[20277, 'IBM EBCDIC (Denmark-Norway) '],
|
|
||||||
[20278, 'IBM EBCDIC (Finland-Sweden)'],
|
|
||||||
[20280, 'IBM EBCDIC (Italy)'],
|
|
||||||
[20284, 'IBM EBCDIC (Spain)'],
|
|
||||||
[20285, 'IBM EBCDIC (UK)'],
|
|
||||||
[20290, 'IBM EBCDIC (Japanese katakana)'],
|
|
||||||
[20297, 'IBM EBCDIC (France)'],
|
|
||||||
[20420, 'IBM EBCDIC (Arabic)'],
|
|
||||||
[20423, 'IBM EBCDIC (Greek)'],
|
|
||||||
[20424, 'IBM EBCDIC (Hebrew)'],
|
|
||||||
[20833, 'IBM EBCDIC (Korean Extended)'],
|
|
||||||
[20838, 'IBM EBCDIC (Thai)'],
|
|
||||||
[20866, 'Cyrillic (KOI8-R)'],
|
|
||||||
[20871, 'IBM EBCDIC (Icelandic) '],
|
|
||||||
[20880, 'IBM EBCDIC (Cyrillic Russian)'],
|
|
||||||
[20905, 'IBM EBCDIC (Turkish)'],
|
|
||||||
[20924, 'IBM Latin-1 '],
|
|
||||||
[20932, 'Japanese (JIS 0208-1990 and 0212-1990)'],
|
|
||||||
[20936, 'Chinese Simplified (GB2312-80) '],
|
|
||||||
[20949, 'Korean Wansung '],
|
|
||||||
[21025, 'IBM EBCDIC (Cyrillic Serbian-Bulgarian)'],
|
|
||||||
[21866, 'Cyrillic (KOI8-U)'],
|
|
||||||
[28591, 'Western European (ISO) '],
|
|
||||||
[28592, 'Central European (ISO)'],
|
|
||||||
[28593, 'Latin 3 (ISO)'],
|
|
||||||
[28594, 'Baltic (ISO)'],
|
|
||||||
[28595, 'Cyrillic (ISO) '],
|
|
||||||
[28596, 'Arabic (ISO)'],
|
|
||||||
[28597, 'Greek (ISO) '],
|
|
||||||
[28598, 'Hebrew (ISO-Visual)'],
|
|
||||||
[28599, 'Turkish (ISO)'],
|
|
||||||
[28603, 'Estonian (ISO)'],
|
|
||||||
[28605, 'Latin 9 (ISO)'],
|
|
||||||
[29001, 'Europa'],
|
|
||||||
[38598, 'Hebrew (ISO-Logical)'],
|
|
||||||
[50220, 'Japanese (JIS)'],
|
|
||||||
[50221, 'Japanese (JIS-Allow 1 byte Kana) '],
|
|
||||||
[50222, 'Japanese (JIS-Allow 1 byte Kana - SO/SI)'],
|
|
||||||
[50225, 'Korean (ISO)'],
|
|
||||||
[50227, 'Chinese Simplified (ISO-2022)'],
|
|
||||||
[51932, 'Japanese (EUC)'],
|
|
||||||
[51936, 'Chinese Simplified (EUC) '],
|
|
||||||
[51949, 'Korean (EUC)'],
|
|
||||||
[52936, 'Chinese Simplified (HZ)'],
|
|
||||||
[54936, 'Chinese Simplified (GB18030)'],
|
|
||||||
[57002, 'ISCII Devanagari '],
|
|
||||||
[57003, 'ISCII Bengali '],
|
|
||||||
[57004, 'ISCII Tamil'],
|
|
||||||
[57005, 'ISCII Telugu '],
|
|
||||||
[57006, 'ISCII Assamese '],
|
|
||||||
[57007, 'ISCII Oriya'],
|
|
||||||
[57008, 'ISCII Kannada'],
|
|
||||||
[57009, 'ISCII Malayalam '],
|
|
||||||
[57010, 'ISCII Gujarati'],
|
|
||||||
[57011, 'ISCII Punjabi'],
|
|
||||||
[65000, 'Unicode (UTF-7)'],
|
|
||||||
[65001, 'Unicode (UTF-8)']
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
length = encodedata.length;
|
length = encodedata.length;
|
||||||
|
|
||||||
if (length) {
|
for (i = 0; i < length; ++i) {
|
||||||
for (i = 0; i < length; ++i) {
|
listItems.push({
|
||||||
listItems.push({
|
value: encodedata[i][0],
|
||||||
value: encodedata[i][0],
|
displayValue: Common.Utils.String.htmlEncode(encodedata[i][1]),
|
||||||
displayValue: encodedata[i][1] // Common.Utils.String.ellipsis(..., 37)
|
lcid: encodedata[i][2] || ''
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
this.cmbEncoding = new Common.UI.ComboBox({
|
|
||||||
el: $('#id-codepages-combo', this.$window),
|
|
||||||
style: 'width: 230px;',
|
|
||||||
menuStyle: 'min-width: 230px; max-height: 200px;',
|
|
||||||
cls: 'input-group-nr',
|
|
||||||
menuCls: 'scrollable-menu',
|
|
||||||
data: listItems,
|
|
||||||
editable: false
|
|
||||||
});
|
});
|
||||||
this.cmbEncoding.setValue( (this.settings && this.settings.asc_getCodePage()) ? this.settings.asc_getCodePage() : encodedata[0][0]);
|
}
|
||||||
|
|
||||||
|
var itemsTemplate =
|
||||||
|
_.template([
|
||||||
|
'<% _.each(items, function(item) { %>',
|
||||||
|
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem">',
|
||||||
|
'<div style="display: inline-block;"><%= item.displayValue %></div>',
|
||||||
|
'<label style="text-align: right;width:' + lcid_width + 'px;"><%= item.lcid %></label>',
|
||||||
|
'</a></li>',
|
||||||
|
'<% }); %>'
|
||||||
|
].join(''));
|
||||||
|
|
||||||
|
this.cmbEncoding = new Common.UI.ComboBox({
|
||||||
|
el: $('#id-codepages-combo', this.$window),
|
||||||
|
style: 'width: 230px;',
|
||||||
|
menuStyle: 'min-width: 230px; max-height: 200px;',
|
||||||
|
cls: 'input-group-nr',
|
||||||
|
menuCls: 'scrollable-menu',
|
||||||
|
data: listItems,
|
||||||
|
editable: false,
|
||||||
|
disabled: true,
|
||||||
|
itemsTemplate: itemsTemplate
|
||||||
|
});
|
||||||
|
|
||||||
|
if (length) {
|
||||||
|
this.cmbEncoding.setDisabled(false);
|
||||||
|
this.cmbEncoding.setValue((this.settings && this.settings.asc_getCodePage()) ? this.settings.asc_getCodePage() : encodedata[0][0]);
|
||||||
if (this.preview)
|
if (this.preview)
|
||||||
this.cmbEncoding.on('selected', _.bind(this.onCmbEncodingSelect, this));
|
this.cmbEncoding.on('selected', _.bind(this.onCmbEncodingSelect, this));
|
||||||
|
|
||||||
if (this.type == Asc.c_oAscAdvancedOptionsID.CSV) {
|
var ul = this.cmbEncoding.cmpEl.find('ul'),
|
||||||
this.cmbDelimiter = new Common.UI.ComboBox({
|
a = ul.find('li:nth(0) a'),
|
||||||
el: $('#id-delimiters-combo', this.$window),
|
width = ul.width() - parseInt(a.css('padding-left')) - parseInt(a.css('padding-right')) - 50;
|
||||||
style: 'width: 100px;',
|
ul.find('li div').width(width + 10);
|
||||||
menuStyle: 'min-width: 100px;',
|
}
|
||||||
cls: 'input-group-nr',
|
|
||||||
data: [
|
|
||||||
{value: 4, displayValue: this.txtComma},
|
|
||||||
{value: 2, displayValue: this.txtSemicolon},
|
|
||||||
{value: 3, displayValue: this.txtColon},
|
|
||||||
{value: 1, displayValue: this.txtTab},
|
|
||||||
{value: 5, displayValue: this.txtSpace},
|
|
||||||
{value: -1, displayValue: this.txtOther}],
|
|
||||||
editable: false
|
|
||||||
});
|
|
||||||
this.cmbDelimiter.setValue( (this.settings && this.settings.asc_getDelimiter()) ? this.settings.asc_getDelimiter() : 4);
|
|
||||||
this.cmbDelimiter.on('selected', _.bind(this.onCmbDelimiterSelect, this));
|
|
||||||
|
|
||||||
this.inputDelimiter = new Common.UI.InputField({
|
if (this.type == Asc.c_oAscAdvancedOptionsID.CSV) {
|
||||||
el : $('#id-delimiter-other'),
|
this.cmbDelimiter = new Common.UI.ComboBox({
|
||||||
style : 'width: 30px;',
|
el: $('#id-delimiters-combo', this.$window),
|
||||||
maxLength: 1,
|
style: 'width: 100px;',
|
||||||
validateOnChange: true,
|
menuStyle: 'min-width: 100px;',
|
||||||
validateOnBlur: false,
|
cls: 'input-group-nr',
|
||||||
value: (this.settings && this.settings.asc_getDelimiterChar()) ? this.settings.asc_getDelimiterChar() : ''
|
data: [
|
||||||
});
|
{value: 4, displayValue: this.txtComma},
|
||||||
this.inputDelimiter.setVisible(false);
|
{value: 2, displayValue: this.txtSemicolon},
|
||||||
if (this.preview)
|
{value: 3, displayValue: this.txtColon},
|
||||||
this.inputDelimiter.on ('changing', _.bind(this.updatePreview, this));
|
{value: 1, displayValue: this.txtTab},
|
||||||
}
|
{value: 5, displayValue: this.txtSpace},
|
||||||
|
{value: -1, displayValue: this.txtOther}],
|
||||||
|
editable: false
|
||||||
|
});
|
||||||
|
this.cmbDelimiter.setValue( (this.settings && this.settings.asc_getDelimiter()) ? this.settings.asc_getDelimiter() : 4);
|
||||||
|
this.cmbDelimiter.on('selected', _.bind(this.onCmbDelimiterSelect, this));
|
||||||
|
|
||||||
|
this.inputDelimiter = new Common.UI.InputField({
|
||||||
|
el : $('#id-delimiter-other'),
|
||||||
|
style : 'width: 30px;',
|
||||||
|
maxLength: 1,
|
||||||
|
validateOnChange: true,
|
||||||
|
validateOnBlur: false,
|
||||||
|
value: (this.settings && this.settings.asc_getDelimiterChar()) ? this.settings.asc_getDelimiterChar() : ''
|
||||||
|
});
|
||||||
|
this.inputDelimiter.setVisible(false);
|
||||||
|
if (this.preview)
|
||||||
|
this.inputDelimiter.on ('changing', _.bind(this.updatePreview, this));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
updatePreview: function() {
|
updatePreview: function() {
|
||||||
|
var encoding = (!this.cmbEncoding.isDisabled()) ? this.cmbEncoding.getValue() :
|
||||||
|
((this.settings && this.settings.asc_getCodePage()) ? this.settings.asc_getCodePage() : 0);
|
||||||
|
|
||||||
if (this.type == Asc.c_oAscAdvancedOptionsID.CSV) {
|
if (this.type == Asc.c_oAscAdvancedOptionsID.CSV) {
|
||||||
var delimiter = this.cmbDelimiter ? this.cmbDelimiter.getValue() : null,
|
var delimiter = this.cmbDelimiter ? this.cmbDelimiter.getValue() : null,
|
||||||
delimiterChar = (delimiter == -1) ? this.inputDelimiter.getValue() : null;
|
delimiterChar = (delimiter == -1) ? this.inputDelimiter.getValue() : null;
|
||||||
(delimiter == -1) && (delimiter = null);
|
(delimiter == -1) && (delimiter = null);
|
||||||
this.api.asc_decodeBuffer(this.preview, new Asc.asc_CCSVAdvancedOptions(this.cmbEncoding.getValue(), delimiter, delimiterChar), _.bind(this.previewCallback, this));
|
this.api.asc_decodeBuffer(this.preview, new Asc.asc_CCSVAdvancedOptions(encoding, delimiter, delimiterChar), _.bind(this.previewCallback, this));
|
||||||
} else {
|
} else {
|
||||||
this.api.asc_decodeBuffer(this.preview, new Asc.asc_CTXTAdvancedOptions(this.cmbEncoding.getValue()), _.bind(this.previewCallback, this));
|
this.api.asc_decodeBuffer(this.preview, new Asc.asc_CTXTAdvancedOptions(encoding), _.bind(this.previewCallback, this));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue