Set text field value as a string when it's for a date or a time (bug 1868503)
This commit is contained in:
parent
c0436013a0
commit
098cc16c46
@ -49,7 +49,7 @@ function getFieldType(actions) {
|
|||||||
if (format.startsWith("AFDate_")) {
|
if (format.startsWith("AFDate_")) {
|
||||||
return FieldType.date;
|
return FieldType.date;
|
||||||
}
|
}
|
||||||
if (format.startsWith("AFTime__")) {
|
if (format.startsWith("AFTime_")) {
|
||||||
return FieldType.time;
|
return FieldType.time;
|
||||||
}
|
}
|
||||||
return FieldType.none;
|
return FieldType.none;
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { createActionsMap, getFieldType } from "./common.js";
|
import { createActionsMap, FieldType, getFieldType } from "./common.js";
|
||||||
import { Color } from "./color.js";
|
import { Color } from "./color.js";
|
||||||
import { PDFObject } from "./pdf_object.js";
|
import { PDFObject } from "./pdf_object.js";
|
||||||
|
|
||||||
@ -245,7 +245,12 @@ class Field extends PDFObject {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value === "" || typeof value !== "string") {
|
if (
|
||||||
|
value === "" ||
|
||||||
|
typeof value !== "string" ||
|
||||||
|
// When the field type is date or time, the value must be a string.
|
||||||
|
this._fieldType >= FieldType.date
|
||||||
|
) {
|
||||||
this._originalValue = undefined;
|
this._originalValue = undefined;
|
||||||
this._value = value;
|
this._value = value;
|
||||||
return;
|
return;
|
||||||
|
@ -971,6 +971,76 @@ describe("Scripting", function () {
|
|||||||
value: "4/15/07 3:14 am",
|
value: "4/15/07 3:14 am",
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should format a date", async () => {
|
||||||
|
const refId = getId();
|
||||||
|
const data = {
|
||||||
|
objects: {
|
||||||
|
field: [
|
||||||
|
{
|
||||||
|
id: refId,
|
||||||
|
value: "",
|
||||||
|
actions: {
|
||||||
|
Format: [`AFDate_FormatEx("mmddyyyy");`],
|
||||||
|
Keystroke: [`AFDate_KeystrokeEx("mmddyyyy");`],
|
||||||
|
},
|
||||||
|
type: "text",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
appInfo: { language: "en-US", platform: "Linux x86_64" },
|
||||||
|
calculationOrder: [],
|
||||||
|
dispatchEventName: "_dispatchMe",
|
||||||
|
};
|
||||||
|
|
||||||
|
sandbox.createSandbox(data);
|
||||||
|
await sandbox.dispatchEventInSandbox({
|
||||||
|
id: refId,
|
||||||
|
value: "12062023",
|
||||||
|
name: "Keystroke",
|
||||||
|
willCommit: true,
|
||||||
|
});
|
||||||
|
expect(send_queue.has(refId)).toEqual(true);
|
||||||
|
expect(send_queue.get(refId)).toEqual({
|
||||||
|
id: refId,
|
||||||
|
siblings: null,
|
||||||
|
value: "12062023",
|
||||||
|
formattedValue: "12062023",
|
||||||
|
});
|
||||||
|
send_queue.delete(refId);
|
||||||
|
|
||||||
|
await sandbox.dispatchEventInSandbox({
|
||||||
|
id: refId,
|
||||||
|
value: "1206202",
|
||||||
|
name: "Keystroke",
|
||||||
|
willCommit: true,
|
||||||
|
});
|
||||||
|
expect(send_queue.has(refId)).toEqual(true);
|
||||||
|
expect(send_queue.get(refId)).toEqual({
|
||||||
|
id: refId,
|
||||||
|
siblings: null,
|
||||||
|
value: "",
|
||||||
|
formattedValue: null,
|
||||||
|
selRange: [0, 0],
|
||||||
|
});
|
||||||
|
send_queue.delete(refId);
|
||||||
|
|
||||||
|
sandbox.createSandbox(data);
|
||||||
|
await sandbox.dispatchEventInSandbox({
|
||||||
|
id: refId,
|
||||||
|
value: "02062023",
|
||||||
|
name: "Keystroke",
|
||||||
|
willCommit: true,
|
||||||
|
});
|
||||||
|
expect(send_queue.has(refId)).toEqual(true);
|
||||||
|
expect(send_queue.get(refId)).toEqual({
|
||||||
|
id: refId,
|
||||||
|
siblings: null,
|
||||||
|
value: "02062023",
|
||||||
|
formattedValue: "02062023",
|
||||||
|
});
|
||||||
|
send_queue.delete(refId);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("AFRange_Validate", function () {
|
describe("AFRange_Validate", function () {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user