From c0eb9f66c77ab714fa75382cfa505870c4fdf5fb Mon Sep 17 00:00:00 2001 From: unitedsoftwork <27786150+unitedsoftwork@users.noreply.github.com> Date: Tue, 24 Aug 2021 09:12:10 -0500 Subject: [PATCH 1/6] allow objects to be passed into SelectField --- src/fields/jsgrid.field.select.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/fields/jsgrid.field.select.js b/src/fields/jsgrid.field.select.js index b2e5d345..92cf6592 100755 --- a/src/fields/jsgrid.field.select.js +++ b/src/fields/jsgrid.field.select.js @@ -32,9 +32,14 @@ resultItem; if(valueField) { - resultItem = $.grep(items, function(item, index) { - return item[valueField] === value; - })[0] || {}; + if($.type(value) === "object"){ + resultItem = value; + } + else{ + resultItem = $.grep(items, function(item, index) { + return item[valueField] === value; + })[0] || {}; + } } else { resultItem = items[value]; From 00e3454b88a5c61e2d682d3b20a98ea041699169 Mon Sep 17 00:00:00 2001 From: philipg Date: Thu, 26 Aug 2021 09:52:37 -0500 Subject: [PATCH 2/6] added object as input test --- tests/jsgrid.field.tests.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/jsgrid.field.tests.js b/tests/jsgrid.field.tests.js index 9c8c26ec..6c85afb6 100755 --- a/tests/jsgrid.field.tests.js +++ b/tests/jsgrid.field.tests.js @@ -337,6 +337,26 @@ $(function() { strictEqual(field.itemTemplate(1), "test1"); }); + test("object as input", function() { + var field = new jsGrid.SelectField({ + name: "testField", + items: [ + { text: "test1", value: 1 }, + { text: "test2", value: 2 }, + { text: "test3", value: 3 } + ], + valueField: "value", + textField: "text" + }); + + + strictEqual(field.itemTemplate({ text: "test1", value: 1 }), "test1"); + strictEqual(field.itemTemplate({ text: "test2", value: 2 }), "test2"); + strictEqual(field.itemTemplate({ text: "test3", value: 3 }), "test3"); + + + }); + module("jsGrid.field.control"); From 34e3536abdcbf0c7ac9a5feb712bf2547317960a Mon Sep 17 00:00:00 2001 From: philipg Date: Thu, 26 Aug 2021 10:03:09 -0500 Subject: [PATCH 3/6] make editTemplate work with object input --- src/fields/jsgrid.field.select.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/fields/jsgrid.field.select.js b/src/fields/jsgrid.field.select.js index 92cf6592..2eb99cf6 100755 --- a/src/fields/jsgrid.field.select.js +++ b/src/fields/jsgrid.field.select.js @@ -78,7 +78,11 @@ return this.itemTemplate.apply(this, arguments); var $result = this.editControl = this._createSelect(); - (value !== undefined) && $result.val(value); + var editValue = value; + if($.type(value) === "object"){ + editValue = value[this.valueField]; + } + (editValue !== undefined) && $result.val(editValue); return $result; }, From ca33125ab46f8b30e1d1fe06ed73842e9f5385fd Mon Sep 17 00:00:00 2001 From: philipg Date: Thu, 26 Aug 2021 10:04:08 -0500 Subject: [PATCH 4/6] test make editTemplate work with object input --- tests/jsgrid.field.tests.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/jsgrid.field.tests.js b/tests/jsgrid.field.tests.js index 6c85afb6..43f5e8b2 100755 --- a/tests/jsgrid.field.tests.js +++ b/tests/jsgrid.field.tests.js @@ -350,10 +350,15 @@ $(function() { }); + strictEqual(field.itemTemplate({ text: "test1", value: 1 }), "test1"); strictEqual(field.itemTemplate({ text: "test2", value: 2 }), "test2"); strictEqual(field.itemTemplate({ text: "test3", value: 3 }), "test3"); + strictEqual(field.editTemplate({ text: "test1", value: 1 }), "test1"); + strictEqual(field.editTemplate({ text: "test2", value: 2 }), "test2"); + strictEqual(field.editTemplate({ text: "test3", value: 3 }), "test3"); + }); From 20502580f0cd7bd39aaf3d4902fbda2ae58c6564 Mon Sep 17 00:00:00 2001 From: philipg Date: Thu, 26 Aug 2021 10:07:24 -0500 Subject: [PATCH 5/6] test make editTemplate work with object input --- tests/jsgrid.field.tests.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/jsgrid.field.tests.js b/tests/jsgrid.field.tests.js index 43f5e8b2..120b581e 100755 --- a/tests/jsgrid.field.tests.js +++ b/tests/jsgrid.field.tests.js @@ -355,9 +355,18 @@ $(function() { strictEqual(field.itemTemplate({ text: "test2", value: 2 }), "test2"); strictEqual(field.itemTemplate({ text: "test3", value: 3 }), "test3"); - strictEqual(field.editTemplate({ text: "test1", value: 1 }), "test1"); - strictEqual(field.editTemplate({ text: "test2", value: 2 }), "test2"); - strictEqual(field.editTemplate({ text: "test3", value: 3 }), "test3"); + + + field.editTemplate({ text: "test1", value: 1 }); + strictEqual(field.editValue(), 1); + + field.editTemplate({ text: "test2", value: 2 }); + strictEqual(field.editValue(), 2); + + field.editTemplate({ text: "test3", value: 3 }); + strictEqual(field.editValue(), 3); + + }); From 9805896ac566d5458711fa4aa90f2826b8254f97 Mon Sep 17 00:00:00 2001 From: philipg Date: Thu, 26 Aug 2021 11:03:27 -0500 Subject: [PATCH 6/6] use typeof instead of $.type --- src/fields/jsgrid.field.select.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fields/jsgrid.field.select.js b/src/fields/jsgrid.field.select.js index 2eb99cf6..0e4048e6 100755 --- a/src/fields/jsgrid.field.select.js +++ b/src/fields/jsgrid.field.select.js @@ -32,7 +32,7 @@ resultItem; if(valueField) { - if($.type(value) === "object"){ + if(typeof(value) === "object"){ resultItem = value; } else{ @@ -79,7 +79,7 @@ var $result = this.editControl = this._createSelect(); var editValue = value; - if($.type(value) === "object"){ + if(typeof(value) === "object"){ editValue = value[this.valueField]; } (editValue !== undefined) && $result.val(editValue);