Skip to content

Commit 6c852ca

Browse files
committed
Implement editing events in grid demo.
1 parent 13f4fa6 commit 6c852ca

File tree

1 file changed

+41
-6
lines changed

1 file changed

+41
-6
lines changed

grid-editing/grid.html

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,17 @@
3131
input: localDevelopers,
3232
paging: {
3333
limit: 8
34+
},
35+
propertychange: function(event, ui) {
36+
console.log("field", ui.path, "changed from", ui.oldValue, "to", ui.newValue);
37+
},
38+
objectchange: function(event, ui) {
39+
console.log("developer at index", ui.index, "changed", ui.object);
40+
this.save();
41+
},
42+
change: function(event, ui) {
43+
console.log("developer(s) at index", ui.index, ui.change + "ed", ui.items);
44+
this.save().refresh();
3445
}
3546
});
3647
developers.save = function() {
@@ -48,8 +59,16 @@
4859
type: th.data( "type" ),
4960
submit: function( event, ui ) {
5061
var object = $( this ).tmplItem().data;
62+
var oldValue = get(object, field);
5163
set(object, field, ui.value);
52-
developers.save();
64+
developers._trigger("propertychange", event, {
65+
path: field,
66+
oldValue: oldValue,
67+
newValue: ui.value
68+
});
69+
developers._trigger("objectchange", event, {
70+
object: object
71+
});
5372
}
5473
});
5574
});
@@ -61,15 +80,23 @@
6180
+ "<button class='edit'>Edit</button></td>"
6281
+ "<td><button class='remove'>Remove</button></td></tr>";
6382

64-
var developer;
83+
var developer, tmplItem;
6584
var editForm = $( "#editForm" ).hide().submit( function( event ) {
6685
event.preventDefault();
6786
serializeForm( this, developer );
68-
developers.save().refresh();
87+
// TODO the ui-widget class is added after rendering the template by the grid
88+
// therefore just rerendering the row looks bad, need to update the template to include the classes
89+
// or extend the grid to refresh a single row - need that anyway, as currently the inline editor breaks
90+
tmplItem.update();
91+
developers._trigger("objectchange", event, {
92+
index: localDevelopers.indexOf(developer),
93+
object: developer
94+
});
6995
editForm.hide();
7096
});
7197
grid.element.delegate( "button.edit", "click", function() {
72-
developer = $( this ).tmplItem().data;
98+
tmplItem = $( this ).tmplItem();
99+
developer = tmplItem.data;
73100
deserializeForm( editForm, developer );
74101
editForm.show();
75102
});
@@ -78,9 +105,13 @@
78105
for ( var i = localDevelopers.length - 1; i >= 0; i-- ) {
79106
if ( localDevelopers[i] === developer ) {
80107
localDevelopers.splice( i, 1 );
108+
developers._trigger("change", event, {
109+
change: "remove",
110+
index: i,
111+
items: [developer]
112+
});
81113
}
82114
}
83-
developers.save().refresh();
84115
});
85116

86117
$( "#pageDevelopers" ).pager({
@@ -98,7 +129,11 @@
98129
value: 0
99130
}
100131
});
101-
developers.save().refresh();
132+
developers._trigger("change", event, {
133+
change: "insert",
134+
index: 0,
135+
items: [localDevelopers[0]]
136+
});
102137
});
103138

104139
developers.refresh();

0 commit comments

Comments
 (0)