File tree Expand file tree Collapse file tree 2 files changed +32
-7
lines changed Expand file tree Collapse file tree 2 files changed +32
-7
lines changed Original file line number Diff line number Diff line change 154
154
alert ( "None selected" ) ;
155
155
return ;
156
156
}
157
- $ . each ( selected , function ( index , developer ) {
158
- $ . observable ( localDevelopers ) . remove ( developer ) ;
159
- $ . observable ( selected ) . remove ( developer ) ;
160
- } ) ;
157
+ $ . observable ( localDevelopers ) . remove ( selected ) ;
158
+ selected = [ ] ;
161
159
developers . refresh ( ) ;
162
160
} ) ;
163
161
Original file line number Diff line number Diff line change 95
95
} ,
96
96
97
97
remove : function ( index , numToRemove ) {
98
- // TODO implement $.type( index ) === "array"
98
+ if ( $ . type ( index ) === "array" ) {
99
+ // TODO there's probably a more efficient way to do this
100
+ var i ,
101
+ j ,
102
+ l ,
103
+ m ,
104
+ removed = [ ] ,
105
+ toRemove = index ;
106
+ for ( i = 0 , l = this . data . length ; i < l ; i ++ ) {
107
+ for ( j = 0 , m = toRemove . length ; j < m ; j ++ ) {
108
+ // TODO use an equal-method to compare objects, to allow custom matching on primary keys etc.
109
+ if ( toRemove [ j ] === this . data [ i ] ) {
110
+ removed . push ( {
111
+ index : i ,
112
+ item : this . data [ j ]
113
+ } ) ;
114
+ break ;
115
+ }
116
+ }
117
+ }
118
+ var removals = 0 ;
119
+ for ( i = 0 , l = removed . length ; i < l ; i ++ ) {
120
+ this . data . splice ( removed [ i ] . index - removals , 1 ) ;
121
+ removals += 1 ;
122
+ }
123
+ return this . trigger ( "remove" , { items : removed } ) ;
124
+ }
99
125
if ( $ . type ( index ) === "object" ) {
100
126
numToRemove = 1 ;
101
127
for ( var i = 0 , l = this . data . length ; i < l ; i ++ ) {
102
- if ( this . data [ i ] === index ) {
128
+ // TODO same as above
129
+ if ( this . data [ i ] === index ) {
103
130
index = i ;
104
131
break ;
105
132
}
106
133
}
107
134
108
135
}
109
- if ( ! numToRemove ) {
136
+ if ( ! numToRemove ) {
110
137
numToRemove = 1 ;
111
138
}
112
139
var items = this . data . slice ( index , index + numToRemove ) ;
You can’t perform that action at this time.
0 commit comments