From c5ec3305e5539d8c2ef5c802783125a507df3dc7 Mon Sep 17 00:00:00 2001
From: naverstay <3a4f044785G->
Date: Wed, 10 Aug 2016 11:10:54 +0300
Subject: [PATCH 1/2] multiselect
---
jquery.jeditable.js | 29 ++++++++++++++++++-----------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/jquery.jeditable.js b/jquery.jeditable.js
index 1d066d4..c228c63 100644
--- a/jquery.jeditable.js
+++ b/jquery.jeditable.js
@@ -480,11 +480,12 @@
},
select: {
element : function(settings, original) {
- var select = $('');
- $(this).append(select);
+ var select = settings.multiselect ? $('') : $('');
+ $(this).append(select);
return(select);
},
content : function(data, settings, original) {
+ var selectedVals = [];
/* If it is string assume it is json. */
if (String == data.constructor) {
eval ('var json = ' + data);
@@ -496,21 +497,26 @@
if (!json.hasOwnProperty(key)) {
continue;
}
- if ('selected' == key) {
+ if (/selected.*/.test(key)) {
+ selectedVals.push(json[key]);
continue;
- }
+ }
var option = $('').val(key).append(json[key]);
$('select', this).append(option);
}
- /* Loop option again to set selected. IE needed this... */
- $('select', this).children().each(function() {
- if ($(this).val() == json['selected'] ||
- $(this).text() == $.trim(original.revert)) {
+ /* Loop option again to set selected. IE needed this... */
+ for (var i = 0; i < selectedVals.length; i++) {
+ var val = selectedVals[i];
+
+ $('select', this).children().each(function () {
+ if ($(this).val() == val ||
+ $(this).text() == $.trim(original.revert)) {
$(this).attr('selected', 'selected');
- }
- });
+ }
+ });
+ }
/* Submit on change if no submit button defined. */
- if (!settings.submit) {
+ if (!(settings.submit || settings.multiselect)) {
var form = this;
$('select', this).change(function() {
form.submit();
@@ -538,6 +544,7 @@
loadtype : 'GET',
loadtext : 'Loading...',
placeholder: 'Click to edit',
+ multiselect: false,
loaddata : {},
submitdata : {},
ajaxoptions: {}
From e918323067ad963523f1c7702fde0aa85d2ed126 Mon Sep 17 00:00:00 2001
From: naverstay <3a4f044785G->
Date: Fri, 12 Aug 2016 06:54:35 +0300
Subject: [PATCH 2/2] multiselect
---
jquery.jeditable.js | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/jquery.jeditable.js b/jquery.jeditable.js
index c228c63..afd8523 100644
--- a/jquery.jeditable.js
+++ b/jquery.jeditable.js
@@ -497,8 +497,14 @@
if (!json.hasOwnProperty(key)) {
continue;
}
- if (/selected.*/.test(key)) {
- selectedVals.push(json[key]);
+ if ('selected' == key) {
+ if (typeof json[key] == 'string') {
+ selectedVals.push(json[key]);
+ } else if (typeof json[key] == 'object') {
+ for (var i = 0; i < json[key].length; i++) {
+ selectedVals.push(json[key][i]);
+ }
+ }
continue;
}
var option = $('').val(key).append(json[key]);
@@ -506,10 +512,8 @@
}
/* Loop option again to set selected. IE needed this... */
for (var i = 0; i < selectedVals.length; i++) {
- var val = selectedVals[i];
-
$('select', this).children().each(function () {
- if ($(this).val() == val ||
+ if ($(this).val() == selectedVals[i] ||
$(this).text() == $.trim(original.revert)) {
$(this).attr('selected', 'selected');
}